Java的两个显著特性:
- 书写一次,到处运行,即有跨平台的能力;
- 垃圾收集,通过垃圾收集器回收分配内存;
JRE:Java运行环境,包括JVM和Java类库,以及一些模块;
JDK:JRE的一个超集,提供了更多工具,比如编译器、各种诊断工具;
Q:Java是解释执行的?
A:这个说法不太准确。。我们开发的代码,先通过 Javac 编译成字节码(bytecode),然后在运行时,通过 Java 虚拟机(JVM)内嵌的解释器将字节码转换成最终的机器码。常用的JVM,都提供了 JIT(Just-In-Time)编译器,即动态编译器,JIT能够在运行时将热点代码编译成机器码,这种情况下,部分热点代码就属于编译执行,不是解释执行了。
对 Java 平台的理解,可从以下几个方面说:
- Java 语言特性,包括泛型、Lambda等语言特性;
- 基础类库,包括集合、IO/NIO、网络、并发、安全等;日常工作中用的较多的类库,要总结一下;
- JVM的一些基础概念和机制,如 Java 的类加载机制,常用版本JDK内嵌的ClassLoader,例如Bootstrap、Application和Extension Class-loader;类加载过程、自定义ClassLoader、垃圾收集的基本原理、常见垃圾收集器。
- JDK的一些工具、Java领域的其他工具,如编译器、运行时环境、安全工具、诊断监控工具等。