• jvm是什么?java为什么跨平台?

  • jvm可以理解为一个可以解释运行字节码文件的虚拟机进程。
    java的跨平台指的就是.class字节码文件的跨平台,.class字节码文件是与平台无关的),.class文件运行在jvm上,java解释器(jvm的一部分)会将其解释成对应平台的机器码执行,而在不同平台上生成的.class文件都是一样的,.class文件再由对应平台的jvm解释成对应平台的机器码执行。

  • jre与jdk区别?

  • jre(Java运行环境)包括jvm,Java核心类库(lang,util,io,sql,text,sql,awt Java.开头的是核心类库,javax开头的是官方拓展包,com或者org开头的是组织或机构的拓展包 ),不包含Java开发工具,是Java程序用户专用。 jdk(Java开发工具包)包括jre和Java开发工具(例如Javac 编译器,Javadoc 生成开发文档,jdb Java调试工具【断点等】),是开发人员专用。

  • why static方法访问非static变量报错?

  • static修饰的成员在Java中是属于类的,它在所有的实例中的值是一样的。当类被Java虚拟机载入的时候,会对static变量进行初始化。如果你的代码尝试不用实例来访问非static的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。

  • 自动装箱与拆箱?

  • 自动装箱是Java编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如:把int转化成Integer,double转化成Double,等等。反之就是自动拆箱。