Java的特性:
- 面向对象:封装、继承、多态
- 平台无关性
原理(Java代码的执行过程):C/C++的编译是直接把代码翻译成机器码,而 java 的编译是先通过 javac 工具编译成字节码(.class)文件。JVM 再对(.class)文件读取一条、编译一条(二次编译)、执行一条。到这里 Java 是解释执行 - 垃圾回收
Java 通过垃圾搜集器回收分配内存,到部分情况下,程序员不需要自己操心内存的分配和回收。
JRE:
- Java 的基本运行环境。包含 JVM 和 Java 类库。
JDK:
- Java 的开发工具。在 JRE 的基础上包含了更多工具。
- 比如 Java 8 的 JIT 。JDK8 的 Java是混合编译。原因在于 JIT (编译执行)会将某些运行特别的代码编译成与本地平台相关的机器码,因此 Java 程序会越运行越快。
- Java 9 提供了 AOT 编译器,运行时通过工具直接将字节码编译成机器码执行。
Java 的类加载机制:
- 加载过程:加载、验证、链接、初始化