java jvm兩種存儲區的類型知識點講解

我們知道在jvm中存放瞭不少數據,那麼存放數據的地方叫做存儲區。想必大傢還不知道存儲區是分為兩種類型的,常量緩沖池和方法區。相信很多人還沒有接觸到這個概念,本篇對java中jvm的存儲區進行的內容的整理,下面一起來看看這兩種存儲取的概念和區別吧。

1、分類

JVM有兩種類型的存儲區:常量緩沖池和方法區。常量緩沖池用於存儲類名、方法名和字段名以及字符串常量。方法區用於存儲Java方法的字節碼。JVM規范中沒有規定這兩個存儲區域的具體實現。因此,Java應用程序的存儲佈局必須在運行過程中確定,這取決於具體平臺的實現。

JVM是對Java字節代碼定義的獨立平臺的規格說明,是Java平臺獨立性的基礎。目前JVM還存在一些限制和不足,需要進一步完善,但無論如何,JVM的思想都是成功的。

2、比較分析

將Java源程序想象為我們的C++源程序,Java源程序編譯後生成的字節代碼相當於C++源程序編譯後的80×86機器代碼(二進制程序文件),JVM虛擬機相當於80×86計算機系統在80x86CPU運行的是機器代碼,在Java解釋器運行的是Java字節代碼。

Java解釋器相當於運行Java字節碼的CPU,但這種CPU不是通過硬件實現的,而是通過軟件實現的。Java解釋器實際上是特定平臺下的應用程序。隻要實現瞭特定平臺下的解釋器程序,Java字節碼就可以通過解釋器程序在該平臺下運行,這是Java跨平臺的根本。目前,並非所有平臺下都有相應的Java解釋器程序,這也是Java不能在所有平臺下運行的原因,隻能在實現Java解釋器程序的平臺下運行。

知識點擴充:

JVM是Java Virtual Machine(Java虛擬機)的縮寫,JVM是一種用於計算設備的規范,它是一個虛構出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現的。Java虛擬機包括一套字節碼指令集、一組寄存器、一個棧、一個垃圾回收堆和一個存儲方法域。 JVM屏蔽瞭與具體操作系統平臺相關的信息,使Java程序隻需生成在Java虛擬機上運行的目標代碼(字節碼),就可以在多種平臺上不加修改地運行。JVM在執行字節碼時,實際上最終還是把字節碼解釋成具體平臺上的機器指令執行。

1、JVM是java的核心和基礎,在java編譯器和os平臺之間的虛擬處理器。它是一種利用軟件方法實現的抽象的計算機基於下層的操作系統和硬件平臺,可以在上面執行java的字節碼程序。

2、JVM的體系結構:

類裝載器(ClassLoader)(用來裝載.class文件)

執行引擎(執行字節碼,或者執行本地方法)

運行時數據區(方法區、堆、java棧、PC寄存器、本地方法棧)

到此這篇關於java jvm兩種存儲區的類型知識點講解的文章就介紹到這瞭,更多相關java之jvm兩種存儲區的類型內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: