谈谈你对Java平台的理解。
答:Java首先是一种面向对象的语言,语言特性有封装,继承,多态,泛型,Lamda表达式等;
第二个特性:支持跨平台,一次书写导出运行(write once,run anywhere),能够实现跨平台是因为JVM,编写源文件,
通过javac编译成字节码.class文件,然后JVM再翻译成对应的机器码来运行;
第三个特性:垃圾回收器(GC),程序员不用关注内存的分配和回收。
JRE是Java运行时环境,JDK包含JRE,并提供了很多工具,包括编译器,诊断工具如Jconsole,visualVM等
Java是解释执行吗?
答:不是特别准确,首先我们开发的源代码会通过javac编译成字节码,然后运行时通过JVM的解释器将字节码转成
最终的机器码,但是我们使用的JDK都提供了JIT(即时Just in Time)编译器,就是常说的动态编译器,JIT能够
在运行的时候将经常运行的热点代码编译成机器码,这时部分热点代码就是编译执行,而不是解释执行。
并且Java9提供了AOT编译器直接将所有代码编译成机器码执行。