java jvm兩種存儲區(qū)的類型知識點講解
我們知道在jvm中存放了不少數(shù)據(jù),那么存放數(shù)據(jù)的地方叫做存儲區(qū)。想必大家還不知道存儲區(qū)是分為兩種類型的,常量緩沖池和方法區(qū)。相信很多人還沒有接觸到這個概念,本篇對java中jvm的存儲區(qū)進行的內(nèi)容的整理,下面一起來看看這兩種存儲取的概念和區(qū)別吧。
1、分類
JVM有兩種類型的存儲區(qū):常量緩沖池和方法區(qū)。常量緩沖池用于存儲類名、方法名和字段名以及字符串常量。方法區(qū)用于存儲Java方法的字節(jié)碼。JVM規(guī)范中沒有規(guī)定這兩個存儲區(qū)域的具體實現(xiàn)。因此,Java應(yīng)用程序的存儲布局必須在運行過程中確定,這取決于具體平臺的實現(xiàn)。
JVM是對Java字節(jié)代碼定義的獨立平臺的規(guī)格說明,是Java平臺獨立性的基礎(chǔ)。目前JVM還存在一些限制和不足,需要進一步完善,但無論如何,JVM的思想都是成功的。
2、比較分析
將Java源程序想象為我們的C++源程序,Java源程序編譯后生成的字節(jié)代碼相當(dāng)于C++源程序編譯后的80x86機器代碼(二進制程序文件),JVM虛擬機相當(dāng)于80x86計算機系統(tǒng)在80x86CPU運行的是機器代碼,在Java解釋器運行的是Java字節(jié)代碼。
Java解釋器相當(dāng)于運行Java字節(jié)碼的CPU,但這種CPU不是通過硬件實現(xiàn)的,而是通過軟件實現(xiàn)的。Java解釋器實際上是特定平臺下的應(yīng)用程序。只要實現(xiàn)了特定平臺下的解釋器程序,Java字節(jié)碼就可以通過解釋器程序在該平臺下運行,這是Java跨平臺的根本。目前,并非所有平臺下都有相應(yīng)的Java解釋器程序,這也是Java不能在所有平臺下運行的原因,只能在實現(xiàn)Java解釋器程序的平臺下運行。
知識點擴充:
JVM是Java Virtual Machine(Java虛擬機)的縮寫,JVM是一種用于計算設(shè)備的規(guī)范,它是一個虛構(gòu)出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現(xiàn)的。Java虛擬機包括一套字節(jié)碼指令集、一組寄存器、一個棧、一個垃圾回收堆和一個存儲方法域。 JVM屏蔽了與具體操作系統(tǒng)平臺相關(guān)的信息,使Java程序只需生成在Java虛擬機上運行的目標代碼(字節(jié)碼),就可以在多種平臺上不加修改地運行。JVM在執(zhí)行字節(jié)碼時,實際上最終還是把字節(jié)碼解釋成具體平臺上的機器指令執(zhí)行。
1、JVM是java的核心和基礎(chǔ),在java編譯器和os平臺之間的虛擬處理器。它是一種利用軟件方法實現(xiàn)的抽象的計算機基于下層的操作系統(tǒng)和硬件平臺,可以在上面執(zhí)行java的字節(jié)碼程序。
2、JVM的體系結(jié)構(gòu):
類裝載器(ClassLoader)(用來裝載.class文件)
執(zhí)行引擎(執(zhí)行字節(jié)碼,或者執(zhí)行本地方法)
運行時數(shù)據(jù)區(qū)(方法區(qū)、堆、java棧、PC寄存器、本地方法棧)
到此這篇關(guān)于java jvm兩種存儲區(qū)的類型知識點講解的文章就介紹到這了,更多相關(guān)java之jvm兩種存儲區(qū)的類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot攔截器不攔截靜態(tài)資源,只攔截controller的實現(xiàn)方法
這篇文章主要介紹了springboot攔截器不攔截靜態(tài)資源,只攔截controller的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07java使用CountDownLatch實現(xiàn)多線程協(xié)作
在多線程編程中,經(jīng)常需要實現(xiàn)一種機制來協(xié)調(diào)多個線程的執(zhí)行,以確保某些操作在所有線程完成后再進行,CountDownLatch?就是?Java?并發(fā)包中提供的一種同步工具,下面我們就來看看如何使用CountDownLatch實現(xiàn)多線程協(xié)作吧2023-11-11Springboot AOP對指定敏感字段數(shù)據(jù)加密存儲的實現(xiàn)
本篇文章主要介紹了利用Springboot+AOP對指定的敏感數(shù)據(jù)進行加密存儲以及對數(shù)據(jù)中加密的數(shù)據(jù)的解密的方法,代碼詳細,具有一定的價值,感興趣的小伙伴可以了解一下2021-11-11Spring Boot定時任務(wù)單線程多線程實現(xiàn)代碼解析
這篇文章主要介紹了Spring Boot定時任務(wù)單線程多線程實現(xiàn)代碼解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08基于SpringBoot項目遇到的坑--Date入?yún)栴}
這篇文章主要介紹了SpringBoot項目遇到的坑--Date入?yún)栴},具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10maven profile自動切換環(huán)境參數(shù)的2種方法詳解
這篇文章主要給大家介紹了關(guān)于maven profile自動切換環(huán)境參數(shù)的2種方法,文中通過示例代碼將這兩種方法介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04