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 的類加載機制:
- 加載過程:加載、驗證、鏈接、初始化