探索Java工作原理之JVM內(nèi)存回收
你對JVM內(nèi)存回收的概念是否了解,這里和大家分享一下,為了提高Java語言的性能和健壯性,還引入了如垃圾回收機制等新功能,通過這些改進讓Java具有其獨特的工作原理。
深入探索Java工作原理:JVM內(nèi)存回收
Java語言引入了Java虛擬機,具有跨平臺運行的功能,能夠很好地適應(yīng)各種Web應(yīng)用。同時,為了提高Java語言的性能和健壯性,還引入了如垃圾回收機制等新功能,通過這些改進讓Java具有其獨特的工作原理。
1.Java虛擬機
Java虛擬機(JavaVirtualMachine,JVM)是軟件模擬的計算機,它可以在任何處理器上(無論是在計算機中還是在其他電子設(shè)備中)安全兼容地執(zhí)行保存在.class文件中的字節(jié)碼。Java虛擬機的“機器碼”保存在.class文件中,有時也可以稱之為字節(jié)碼文件。
Java程序的跨平臺特性主要是指字節(jié)碼文件可以在任何具有Java虛擬機的計算機或者電子設(shè)備上運行,Java虛擬機中的Java解釋器負責(zé)將字節(jié)碼文件解釋成為特定的機器碼進行運行。因此在運行時,Java源程序需要通過編譯器編譯成為.class文件。
Java虛擬機的建立需要針對不同的軟硬件平臺來實現(xiàn),既要考慮處理器的型號,也要考慮操作系統(tǒng)的種類。由此在SPARC結(jié)構(gòu)、X86結(jié)構(gòu)、MIPS和PPC等嵌入式處理芯片上,在UNIX、Linux、Windows和部分實時操作系統(tǒng)上都可實現(xiàn)Java虛擬機。
2.無用內(nèi)存自動回收機制
在程序的執(zhí)行過程中,部分內(nèi)存在使用過后就處于廢棄狀態(tài),如果不及時進行回收,很有可能會導(dǎo)致內(nèi)存泄漏,進而引發(fā)系統(tǒng)崩潰。在C++語言中是由程序員進行內(nèi)存回收的,程序員需要在編寫程序時把不再使用的對象內(nèi)存釋放掉,這種人為管理內(nèi)存釋放的方法往往由于程序員的疏忽而致使內(nèi)存無法回收,同時也增加了程序員的工作量。而在Java運行環(huán)境中,始終存在著一個系統(tǒng)級的線程,專門跟蹤內(nèi)存的使用情況,定期檢測出不再使用的內(nèi)存,并自動進行回收,避免了內(nèi)存的泄露,也減輕了程序員的工作量。
3.代碼安全性檢查機制
安全和方便總是相對矛盾的。Java編程語言的出現(xiàn)使得客戶端計算機可以方便地從網(wǎng)絡(luò)上上傳或下載Java程序到本地計算機上運行,但是如何保證該Java程序不攜帶病毒或者沒有其他危險目的呢?為了確保Java程序執(zhí)行的安全性,Java語言通過Applet程序來控制非法程序的安全性,也就是有了它才確保Java語言的生存。
【編輯推薦】
- JVM、JRE、JDK的區(qū)別和聯(lián)系
- 解決JVM最大內(nèi)存設(shè)置問題
- 實例解析Linux平臺的JVM性能評測
- 詳解Tomcat配置JVM參數(shù)步驟
- 深入學(xué)習(xí)JVM內(nèi)存設(shè)置原理和調(diào)優(yōu)