Java工作原理

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語言的生存。