當前位置:才華齋>計算機>java語言>

Java工作原理

java語言 閱讀(1.7W)

Java是一門面向物件程式語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,下面一起去了解一下Java工作原理吧,希望對大家有幫助!

Java工作原理

Java語言引入了Java虛擬機器,具有跨平臺執行的功能,能夠很好地適應各種Web應用。同時,為了提高Java語言的效能和健壯性,還引入瞭如垃圾回收機制等的新功能,通過這些改進讓Java具有其獨特的工作原理。

 Java虛擬機器(JVM)

Java虛擬機器(Java Virtual Machine,JVM)是軟體模擬的計算機。JVM是Java平臺的核心,它可以在任何處理器上(無論是在計算機中還是在其他電子裝置中)安全、相容地執行儲存在s檔案中的位元組碼。Java虛擬機器的“機器碼”儲存在s檔案中,有時也可以稱為位元組碼檔案。

Java虛擬機器的簡歷需要針對不同的軟硬體平臺來實現,既要考慮處理器的型號,也要考慮作業系統的種類。由此在SPARC結構、X86結構、MIPS和PPC等嵌入式處理晶片上,在UNIX、Linux、Windows和部分實時作業系統上都可以實現Java虛擬機器。

為了讓編譯產生的位元組碼能更好的解釋與執行,把Java虛擬機器分成了6個部分:JVM直譯器、JVM指令系統、暫存器、棧、儲存區和碎片回收區。

JVM直譯器:虛擬機器處理欄位碼的CPU。

JVM指令系統:該系統和計算機很相似,一條指令由操作碼和運算元兩部分組成。操作碼為8位二進位制數,主要是為了說明一條指令的功能,運算元可以根據需要而定,JVM有256種不同的操作指令。

暫存器:JVM有自己的虛擬暫存器,這樣就可以快速地與JVM的直譯器進行資料交換。為了功能的需要,JVM設定了4個常用的32位暫存器:pc(程式計數器)、optop(運算元棧頂指標)、frame(當前執行環境指標)和vars(指向當前執行環境中第一個區域性變數的指標)。

JVM棧:是指令執行時資料和資訊儲存的場所的'控制中心,它提供給JVM直譯器運算所需要的資訊。

儲存區:JVM儲存區用於儲存編譯過的位元組碼等資訊。

碎片回收區:JVM碎片回收是指將使用過的Java類的具體例項從記憶體中進行回收,這就使得開發人員避免自己程式設計控制記憶體的麻煩和危險。隨著JVM的不斷升級,其碎片回收的技術和演算法也更加合理。JVM 1.4.1版後產生了一種分代收集技術,簡單來說就是依據物件在程式中生存的時間劃分成代,以此為標準進行碎片回收。

無用記憶體自動回收機制

在程式的執行過程中,部分記憶體在使用過後就處於廢棄狀態,如果不及時進行回收,很有可能導致記憶體洩露,進而引發系統崩潰。在C++語言中是由程式設計師進行記憶體回收的,程式設計師需要在編寫程式時把不再使用的物件記憶體釋放掉,這種人為管理記憶體釋放的方法往往會因程式設計師的疏忽而致使記憶體無法回收,同時也增加程式設計師的工作量。而在Java執行環境中,始終存在著一個系統級的執行緒,專門跟蹤記憶體的使用情況,定期檢測出不再使用的記憶體,並自動進行回收,避免了記憶體的洩露,也減輕了程式設計師的工作量。

程式碼安全性檢查機制

安全和方便總是相對矛盾的。Java程式語言的出現使得客戶端計算機可以方便的從網路中上傳或下載Java程式到本地計算機上執行,但是如何保證該Java程式不攜帶病毒或沒有其他危險目的呢?為了確保Java程式執行的安全性,Java語言通過Applet程式來控制非法

程式的安全性,也就是有了它才確保了Java語言的生存。