广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

干货:Java面试问题

作者:邓华发布时间:2020-10-25分类:Java技术浏览:1140


导读:Java常见的面试问题,快来Get!!!

1.解释JDK,JRE和JVM?


1.png


2.在Java中解释public static void main(String args [])。

Java中的main()是任何Java程序的入口点。它总是写为public static void main(String [] args)。

public:public是访问修饰符,用于指定谁可以访问此方法。Public表示任何类都可以访问此方法。

static:它是java中的关键字,标识它是基于类的。main()在Java中被设为静态,因此无需创建Class的实例即可对其进行访问。如果main不是静态的,那么编译器将抛出错误,因为JVM在创建任何对象之前调用main(),并且只能通过该类直接调用静态方法。

void:这是方法的返回类型。Void定义了不会返回任何值的方法。

main:这是JVM搜索的方法的名称,它是仅具有特定签名的应用程序的起点。这是主要执行发生的方法。

String args []:这是传递给main方法的参数。


3.为什么Java是平台独立的?

Java之所以被称为平台无关的,是因为Java的字节码可以在任何系统上运行,而不管其底层操作系统什么。


4.为什么Java不是100%面向对象的?

Java不是100%面向对象的,因为它使用了不是对象的八种原始数据类型,例如布尔值,字节,字符,整数,浮点数,双精度型,长型,短型。


5.Java中的包装器类是什么?

包装器类将Java原语转换为引用类型(对象)。每个原始数据类型都有一个专用于它的类。这些称为包装器类,因为它们将原始数据类型“包装”到该类的对象中。请参考下图,该图显示了不同的原始类型,包装器类和构造函数参数。


6.Java中的构造函数是什么?

在Java中,构造函数是指用于初始化对象的代码块。它必须与该类具有相同的名称。而且,它没有返回类型,并且在创建对象时会自动调用它。

有两种类型的构造函数:

**默认构造函数:**在Java中,默认构造函数是不接受任何输入的构造函数。换句话说,默认构造函数是无参数构造函数,如果用户没有定义其他构造函数,则默认情况下将创建该构造函数。其主要目的是用默认值初始化实例变量。而且,它主要用于对象创建。

参数化构造函数: Java中的参数化构造函数是能够使用提供的值初始化实例变量的构造函数。换句话说,采用参数的构造函数称为参数化构造函数。

7.Java中的单例类是什么?如何使单例类成为单例?


Singleton类是在一个给定的时间在一个JVM中只能创建一个实例的类。可以通过将构造函数设为私有来使类成为单例。

8.Java中的数组列表和向量有什么区别?

8.png 


9.在Java中equals()和==有什么区别?

Equals()方法在Java的Object类中定义,用于检查由业务逻辑定义的两个对象的相等性。

Java中的“ ”或相等运算符是Java编程语言提供的二进制运算符,用于比较基元和对象。*public boolean equals(Object o)*是Object类提供的方法。默认实现使用运算符比较两个对象。例如:方法可以像String类一样被覆盖。equals()方法用于比较两个对象的值。


10.Java中的堆和堆栈内存有何区别?

堆和堆栈内存之间的主要区别是:

10.png    


11. 什么是Java包?列出软件包的各种优点。

Java中的程序包是捆绑在一起的相关类和接口的集合。通过使用软件包,开发人员可以轻松地将代码模块化并优化其重用。而且,包中的代码可以由其他类导入并重新使用。下面我列出了它的一些优点:

软件包有助于避免名称冲突

它们提供了更容易的代码访问控制

包还可以包含隐藏类,这些隐藏类对外部类不可见,仅在包内使用

创建适当的层次结构,使查找相关类更加容易


12.为什么在Java中不使用指针?

Java不使用指针,因为它们不安全并且会增加程序的复杂性。由于Java以其简单的代码而闻名,因此添加指针的概念将是矛盾的。此外,由于JVM负责隐式内存分配,因此,为了避免用户直接访问内存,在Java中不建议使用指针。


13.Java中的JIT编译器是什么?

JIT代表Java中的即时编译器。它是一个程序,有助于将Java字节码转换为直接发送到处理器的指令。默认情况下,JIT编译器在Java中启用,并且在调用Java方法时被激活。然后,JIT编译器将被调用方法的字节码编译为本地机器代码,“及时”编译以执行。编译完该方法后,JVM会直接调用该方法的已编译代码,而不是对其进行解释。这就是为什么它经常在运行时负责Java应用程序的性能优化的原因。


14.Java中的访问修饰符是什么?

在Java中,访问修饰符是特殊的关键字,用于限制对另一个类中的类,构造函数,数据成员和方法的访问。Java支持四种类型的访问修饰符:

(1)默认

(2)私人的

(3)受保护的

(4)公开的

14.png


15.定义一个Java类。

Java中的类是包含所有数据的蓝图。一个类包含用于描述对象行为的字段(变量)和方法。让我们看一看一个类的语法。

15.png


16.Java中的对象是什么,如何创建?

对象是具有状态和行为的现实世界实体。一个对象具有三个特征:

State

Behavior

Identity

使用’new’关键字创建对象。例如:

ClassName obj = new ClassName();


17.什么是面向对象编程?

面向对象的编程或通常称为OOP的编程模型或方法是围绕对象而不是逻辑和函数来组织程序。换句话说,OOP主要集中在需要操作的对象上,而不是逻辑上。这种方法对于大型和复杂代码的程序是理想的,并且需要主动更新或维护。


18.Java中OOP的主要概念是什么?

面向对象编程或OOP是一种与以下概念相关的编程样式:

*继承:*继承是一个类在其中获取另一类的属性的过程。

封装: Java中的封装是一种将数据和代码打包为单个单元的机制。

*抽象:*抽象是向用户隐藏实现细节并仅向用户提供功能的方法。

*多态性:*多态性是变量,函数或对象采取多种形式的能力。


19.局部变量和实例变量有什么区别?

在Java中, 局部变量通常在方法,构造函数或块内使用 ,并且仅具有局部作用域。因此,该变量只能在块的范围内使用。拥有局部变量的最大好处是该类中的其他方法甚至都不知道该变量。

19-1.png

而Java中的 实例变量是绑定到其对象本身的变量。这些变量在类内声明,但在方法外声明 。该类的每个对象都将在使用它时创建它自己的变量副本。因此,对该变量所做的任何更改都不会反映在该类的任何其他实例中,而只会绑定到该特定实例。

19.png


20.区分Java中的构造函数和方法?


20.png


21.Java中的final关键字是什么?

final是Java中的一个特殊关键字,用作非访问修饰符。最终变量可以在不同的上下文中使用,例如:

最终变量

当final关键字与变量一起使用时,其值一旦分配就无法更改。如果没有值分配给最终变量,则仅使用类构造函数可以将值分配给它。

最终方法

当方法声明为final时,继承类不能覆盖该方法。

最终类

在Java中将一个类声明为final时,任何子类类都不能对其进行扩展,但可以扩展其他类。


22.break和continue语句有什么区别?


中断示例:

示例继续:


23.什么是Java中的无限循环?举例说明。

无限循环是Java中的一个指令序列,当不满足功能退出要求时,它会无限循环。这种类型的循环可能是编程错误的结果,也可能是基于应用程序行为的故意行为。一旦应用程序退出,无限循环将自动终止。

例如:

23.png


24.Java中的this()和super()有什么区别?

在Java中,super()和this()都是用于调用构造函数的特殊关键字。

24.png


25.区分Java中的静态方法和非静态方法。

26.png


26.什么是Java中的构造函数链接?

在Java中,构造函数链接是相对于当前对象从另一个构造函数调用一个构造函数的过程。构造器链接只有通过继承才能实现,在传统中,子类构造器负责首先调用超类的构造器。构造函数链中可以有任意多个类。构造器链接可以通过两种方式实现:

在同一类中使用this()

从基类使用super()


27.String,StringBuilder和StringBuffer之间的区别。

28.png    


28.Java中的类加载器是什么?

该 Java类加载器是JVM(Java虚拟机)是负责加载类文件的一个子集。每当执行Java程序时,类加载器就会首先加载它。Java提供了三个内置的类加载器:

引导类加载器

扩展ClassLoader

系统/应用程序类加载器


29.为什么Java字符串本质上是不可变的?

在Java中,字符串对象本质上是不可变的,这仅意味着一旦创建了String对象,就无法修改其状态。每当您尝试更新该对象的值而不是更新该特定对象的值时,Java都会创建一个新的字符串对象。Java String对象是不可变的,因为通常将String对象缓存在String池中。由于字符串文字通常在多个客户端之间共享,因此来自一个客户端的操作可能会影响其余客户端。它增强了应用程序的安全性,缓存,同步和性能。


30.数组和数组列表有什么区别?

31.png


31.Java中的Map是什么?

在Java中,Map是Util程序包的接口,它将唯一键映射到值。Map接口不是主要Collection接口的子集,因此,其行为与其他Collection类型几乎没有什么不同。以下是Map界面的一些特征:

地图不包含重复的键。

每个键最多可以映射一个值。


标签:北大青鸟学ITIT培训JAVA工作JAVAJAVA自学JAVA学什么


Java技术排行
标签列表
网站分类
文章归档
最近发表