1.java平台的显著特性。
java是一种面向对象的语言,显著特性有两个方面:
(1)书写一次,到处运行(即java的跨平台特性)。java的跨平台特性与java虚拟机的存在密不可分,在不同的运行环境中有不同的JDK,比如Windows和Linux环境下分别需要安装不同的JDK,起关键性作用的就是JVM的二次编译(二次编译时JVM解释器把字节码文件变异成最终机器码,一次编译是javac把java源码编译成字节码)。
(2)java的垃圾回收机制。程序员不需要自己操心内存的分配和回收(但是回收机制还是应该理解的)。
2.如何理解“java是解释执行”这句话。
这句话其实是不太正确的。通常情况下java执行的顺序是:java源码(通过javac)——>字节码(通过JVM解释器)——>最终机器码。
上面是通常情况下的。但是JVM提供了JIT编译器(动态编译器),JIT能够在运行时将热点代码(什么是热点代码?)编译成机器码,这种情况下部分热点代码就属于编译执行。
所以是属于编译和解释的混合执行。
3.熟悉java平台需要了解哪些方面。
(1)基本的语言特性:面向对象、反射、泛型、lambda表达式。
(2)java类库:核心类库和安全类库等(集合、网络、并发、安全)。
(3)java虚拟机:垃圾收集器、运行机制、动态编译等。
(4)一些辅助工具
4.JIT compiler
(1)C1对应client模式,适用于启动速度敏感的应用,如桌面系统
(2)C2对应server模式,适用于长时间运行的服务器端。
(其实我对这个也不太了解,回头了解的深了再来补上)
5.java虚拟机启动时候指定的执行参数。
“-Xint”jvm不编译,只解释执行。“-Xcomp”jvm关闭解释器,不进行解释执行(这种方式启动比较慢)。“-Xmixed”是解释和编译的混合模式(jdk8就是使用的这种模式)
6.AOT编译方式。
AOT编译方式是直接将字节码编译成机器代码(其实不太懂。。。)
结尾:内容参考来自杨晓峰老师的《java核心技术36讲》和网络其他地方。
如对内容有疑惑欢迎探讨学习。