java的基本面试问题有哪些?
1.什么是Java虚拟机?Java为什么被称为“平台无关编程语言”?
Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成可由Java虚拟机执行的字节码文件。
Java旨在允许应用程序在任何平台上运行,而不需要程序员单独重写或重新编译每个平台。Java虚拟机使这成为可能,因为它知道指令长度和底层硬件平台的其他特征。
2.关键词“静态”是什么意思?你能在Java中重写私有或静态方法吗?
“static”关键字表示成员变量或成员方法可以在没有其所属类的实例变量的情况下被访问。
Java中的静态方法不能被重写,因为方法重写是基于运行时动态绑定的,而静态方法是在编译时静态绑定的。静态方法与该类的任何实例都不相关,因此它在概念上不适用。
3.3有什么区别。JDK和JRE?
Java运行时环境(JRE)是一个将执行Java程序的Java虚拟机。它还包含执行applet所需的浏览器插件。Java开发工具包(JDK)是一个完整的Java软件开发包,包括JRE、编译器和其他工具(如JavaDoc、Java调试器),允许开发人员开发、编译和执行Java应用程序。
4.我可以在静态环境中访问非静态变量吗?
静态变量属于Java中的类,它们的值在所有实例中都是相同的。当Java虚拟机加载一个类时,静态变量被初始化。如果您的代码试图访问没有实例的非静态变量,编译器将报告一个错误,因为这些变量尚未创建,也没有与任何实例关联。
5.Java支持哪些数据类型?什么是自动拆卸箱?
Java语言支持的8种基本数据类型有:
字节
短的
(同Internationalorganizations)国际组织
长的
漂浮物
两倍
布尔型
茶
自动打包是Java编译器在基本数据类型和相应的对象打包类型之间进行的转换。比如:把int转换成Integer,double转换成double,等等。反之,则是自动拆包。
6.Java支持多重继承吗?
不,Java不支持多重继承。每个类只能继承一个类,但是可以实现多个接口。
在7.Java什么是建造师?什么是构造函数重载?什么是复制构造函数?
创建新对象时,调用构造函数。每个类都有一个构造函数。在程序员没有为该类提供构造函数的情况下,Java编译器为该类创建一个默认的构造函数。
构造函数重载类似于Java中的方法重载。可以为一个类创建多个构造函数。每个构造函数必须有自己唯一的参数列表。
Java不像C++那样支持复制构造函数,这是不同的,因为如果你不写自己的构造函数,Java不会创建默认的复制构造函数。
在8.Java,方法覆盖和方法重载是什么意思?
当同一个类中的两个或多个方法具有相同的方法名但不同的参数时,就会发生Java中的方法重载。相反,方法覆盖意味着子类重新定义父类的方法。方法重写必须具有相同的方法名、参数列表和返回类型。一个覆盖图可能不会限制对它所覆盖的方法的访问。
9.接口和抽象类的区别是什么?
Java提供并支持抽象类和接口的创建。它们的实现有* * *相似之处,但不同之处在于:
接口中的所有方法都是隐含抽象的。抽象类可以包含抽象和非抽象方法。
一个类可以实现很多接口,但是只能继承一个抽象类。
如果一个类想要实现一个接口,它必须实现该接口声明的所有方法。但是,一个类可能不会实现抽象类声明的所有方法。当然,在这种情况下,类也必须声明为抽象的。
抽象类可以在不提供接口方法实现的情况下实现接口。
默认情况下,Java接口中声明的变量是final。抽象类可以包含非最终变量。
默认情况下,Java接口中的成员函数是公共的。抽象类的成员函数可以是私有的、受保护的或公共的。
接口是绝对抽象的,不能实例化。抽象类也不能被实例化,但是如果它包含main方法,就可以被调用。
10.什么是值传递和引用传递?
对象通过值传递,这意味着传递对象的副本。因此,即使更改了对象的副本,也不会影响源对象的值。
当对象通过引用传递时,意味着传递的不是实际的对象,而是对象的引用。因此,对被引用对象的外部更改将反映在所有对象上。
最后祝你面试顺利!