#1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
Java虚拟机,是一个执行Java字节码文件的虚拟进程,Java源代码被编译器编译成字节码文件,
然后经过类加载和字节码校验后,在Java虚拟机中进行执行。Java应用程序可以通过Java虚拟机在不同的平台上运行,
是因为Java虚拟机知道硬件平台的底层指令长度和其他特性。
#2.JDK和JRE的区别是什么?
JRE:指的是Java开发运行环境,它包括了JVM和类库以及支持文件。已经开发完成的程序,使用jre就可以了。
JDK:指的是Java开发工具包,它包含了JRE,还有编译器以及其他工具,在开发中都要下载JDK
#3.”static”关键字是什么意思?Java中是否可以覆盖(override)一个static修饰的方法?
static关键字表明一个成员变量或者成员方法可以在没有所属的类的实例变量的情况下被访问。
Java中static修饰的方法不能够被覆盖,因为方法覆盖是基于运行时态绑定,而static编译是静态的。
static与类的任何实例都不相关,所以概念上不符合。
#4、是否可以在static环境中访问非static变量?
不可以,static是属于类的,它在所有实例中的值都是一样的,在类被加载运行时会对static进行初始化。
而非static变量必须通过类的实例来进行访问,若不经过类的实例化就访问非static变量编译器会报错,
因为这些变量还没有被创建出来。
#5.Java支持的数据类型有哪些?什么是自动拆装箱?
Java支持基本数据类型和引用数据类型。
基本数据有八种:
变量名称 占用字节数
byte 1
boolean 1
short 2
char 2
int 4
float 4
double 8
long 8
引用数据类型:
通过new关键字创建,String字符串和数组也是引用数据类型
包装类是基本数据类型对应的引用类型,
自动装箱是指:Java编译器在基本数据类型和对应的包装类之间做的一个转换,在给对应的包装类赋值时自动装换为该包 装类型 例如将int转换为integer类,double转换为Double类,反之就是自动拆箱