JVM(Java虛擬機)的特點和加載機制如下:
特點:
- 獨立性:JVM是一個獨立的計算機平臺,它可以運行在不同的操作系統上,提供了對Java程序的跨平臺支持。
- 自動內存管理:JVM通過垃圾回收機制自動管理內存,程序員不需要手動分配和釋放內存。
- 安全性:JVM具有強大的安全性控制機制,可以在運行時對Java程序進行驗證、授權和保護。
- 高性能:JVM通過即時編譯技術將Java字節碼轉換為本地機器碼,提高了程序的執行效率。
- 動態性:JVM支持動態加載和卸載類,可以在運行時動態添加、修改和刪除類。
加載機制:
JVM的加載機制是將Java字節碼(編譯后的.class文件)加載到內存中并執行的過程。加載機制分為三個階段:
- 類加載:JVM根據類的全限定名查找并加載字節碼文件,將字節碼文件轉換為JVM內部的數據結構,并在方法區創建對應的Class對象。
- 鏈接:鏈接將類和類之間的關系建立起來,包括驗證、準備和解析三個階段。
- 驗證:對字節碼進行驗證,確保符合JVM規范,并且不會危害JVM的安全性。
- 準備:為類的靜態變量分配內存,并設置默認初始值。
- 解析:將符號引用轉換為直接引用,即將類、方法和字段的符號引用解析為內存地址的直接引用。
- 初始化:在初始化階段,JVM開始執行類的靜態初始化器()方法,該方法由編譯器自動收集類中的所有靜態變量賦值動作和靜態代碼塊合并產生。
通過類加載機制,JVM可以實現動態加載類、按需加載類和實現類似插件機制的功能。