Java面试题基础知识(①):
什么是Java虚拟机?为什么Java被称作”平台无关的编程语言“?
java虚拟机是一个可以执行java字节码的虚拟机进程。java源文件被编译成能被java虚拟机执行的总字节码文件。
Java被设计成允许应用程序被运用在人任何平台上,而不需要程序员为每一个平台独立重写或重新编译。java虚拟机让这个变成了可能,因为它知道底层硬件平台的指令长度和其他特性。
JDK和JRE的区别是什么?
JRE是java运行环境集,它包括Java虚拟机、Java核心类库和支持文件。它不包括开发工具(JDK)。
JDK是Java开发工具包,是完整的java软件开发工具(比如:javaDoc、java调试器),可以让开发者开发、编译、执行java应用程序。
”static“关键字是什么意思?Java中是否可以重写一个private或者一个static方法?
“static”关键字表明一个成员变量或者是成员方法可以没有所属的类的实例变量的情况下被访问。
Java中static方法不能被重写,因为方法重写是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。
Java中也不可以重写private修饰的方法,因为private修饰的变量和方法只能只能在当前类中使用,如果是其他的类继承当前类是不能访问到private变量或方法的,当然也不能重写。
是否可以在static环境中访问非static变量?
static在变量中属于类,它在所有的实例中的值是一样的。当类被Java虚拟机载入的时候,会对static变量进行初始化。如果代码中不用实例来访问非static的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。
Java支持的数据类型有哪些?
byte、short、int、long、float、double、char、boolean
自动装箱是Java编译器在基本数据类型和对应的对象包装类型之间做的一个装化。比如:把int转化为Integer,double转化为Double,等等。反之就是自动拆箱。