一。虛擬機的工作機制
(1) :通過 ClassLoader 尋找和裝載 class 文件 (2) :解釋字節碼成為指令并執行,提供 class 文件的運行環境 (3) :進行運行期間垃圾回收 (4) :提供與硬件交互的平臺
二。Java 從代碼到運行的全過程
1.創建類:創建Java類文件,文件名(文件后綴名為java)必須跟其中一個類名完全一致,只有該類可以帶public修飾符,一個類文件中最多只有一個類被public修飾(內部類不算)
類包含如下部分:①包(package)定義,②引用(import)的別的類,③類定義
2.編譯:將類文件編譯成JVM可以識別的字節碼文件,文件以class為后綴名
3.類裝載ClassLoader:類裝載就是JVM把二進制文件加載到內存中
4.字節碼(byte-code)校驗:JVM對class文件進行字節碼校驗,保證代碼的安全性
5.解釋:解釋器解釋加載后的字節碼文件
6.運行:由運行環境中的 Runtime 對代碼進行運行
三。Java 的垃圾回收機制
1.目的:取消分配已分配的內存,即釋放內存
2.方式:有系統級線程自動追蹤內存分配情況,并自動回收
3.提示:
(1) :在 Java 里面,垃圾回收是一個自動的系統行為,程序員不能控制垃圾回收的功能和行為。比如垃圾回收什么時候開始,什么時候結束,還有到底哪些資源需要回收等,都是程序員不能控制的。 (2) :有一些跟垃圾回收相關的方法,比如:System.gc() , 記住一點,調用這些方法,僅僅是在通知垃圾回收程序, 至于垃圾回收程序運不運行, 什么時候運行, 都是無法控制的。 (3) :程序員可以通過設置對象為 null(后面會講到)來標示某個對象不再被需要了,這只是表示這個對象可以被回收了,并不是馬上被回收。
四。Java 的安全機制
(1) :第一關:編寫的代碼首先要被編譯成為 class 文件,如果代碼寫得有問題,編譯期間就會發現,然后提示有編譯錯誤,無法編譯通過。 (2) :第二關:通過編譯關后,在類裝載的時候,還會進行類裝載檢查,把本機上的類和網絡資源類相分離,在調入類的時候進行檢查,因而可以限制任何“特洛伊木馬”的應用。 (3) :第三關:類裝載后,在運行前,還會進行字節碼校驗,以判斷你的程序是安全的。 (4) : 第四關: 如果你的程序在網絡上運行, 還有沙箱 (Sand Box) 的保護, 什么是沙箱呢?就是如果你的程序沒有獲得授權, 只能在沙箱限定的范圍內運行, 是不能夠訪問本地資源的,從而保證安全性。
五。path、classpath、JAVA_HOME 各自的含義和配置方式
PATH :提供給操作系統尋找到 Java 命令工具的路徑。通常是配置到 JDK 安裝路徑/bin JAVA_HOME :提供給其它基于 Java 的程序使用, 讓它們能夠找到 JDK 的位置。 通常配置到 JDK 安裝路徑。注意:這個必須書寫正確,全部大寫,中間用下劃線。 CLASSPATH :提供程序在運行期尋找所需資源的路徑,比如:類、文件、圖片等等。
新聞熱點
疑難解答