- 相關推薦
Java工作原理
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,下面一起去了解一下Java工作原理吧,希望對大家有幫助!
Java語言引入了Java虛擬機,具有跨平臺運行的功能,能夠很好地適應各種Web應用。同時,為了提高Java語言的性能和健壯性,還引入了如垃圾回收機制等的新功能,通過這些改進讓Java具有其獨特的工作原理。
Java虛擬機(JVM)
Java虛擬機(Java Virtual Machine,JVM)是軟件模擬的計算機。JVM是Java平臺的核心,它可以在任何處理器上(無論是在計算機中還是在其他電子設備中)安全、兼容地執行保存在.class文件中的字節碼。Java虛擬機的“機器碼”保存在.class文件中,有時也可以稱為字節碼文件。
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語言的生存。
【Java工作原理】相關文章:
Java原理面試題07-13
教你JAVA語言快速排序的原理10-04
深入解析hashmap,java實現原理08-08
java插入法排序原理06-03
深入理解Java事物原理與應用09-18
冒泡排序的原理以及java代碼實現08-17
總結Java垃圾回收器的方法和原理06-17
Java 隊列實現原理及簡單實現代碼09-13
冒泡排序算法原理及JAVA實現代碼方法10-16