摘要:虛擬機執行程序時,會把虛擬機管理的內存劃分成不同的區域,用于處理程序運行過程中不同的數據。各個線程之間的程序計數器互不影響,獨立存儲。虛擬機棧線程私有每個方法在執行時都會創建一個棧幀。
Java虛擬機執行Java程序時,會把虛擬機管理的內存劃分成不同的區域,用于處理程序運行過程中不同的數據。
程序計數器 線程私有對于一個處理器,只會執行一個線程的指令。線程并不是一直獨享CPU的,多個線程通過切換的方式,實現一段時間內的同時執行。因此,為了線程切換后能恢復到切換前的執行位置,每個線程都需要有個獨立的空間來記錄執行位置,即程序計數器。各個線程之間的程序計數器互不影響,獨立存儲。
內存空間小程序計數器中存儲的為當前線程執行的指令:
如果當前執行的是Java方法,程序計數器記錄的是正在執行的虛擬機字節碼指令地址
如果執行的是Native方法,程序計數器記錄的值為空
沒有OutOfMemoryError情況唯一在虛擬機規范中沒有規定任何OutOfMemoryError情況的區域。
虛擬機棧 線程私有每個方法在執行時都會創建一個棧幀。棧幀存儲了局部變量表、操作數棧、動態鏈接、方法出口等信息。方法從調用到執行完成對應了棧幀在虛擬機棧的入棧到出站過程。
StackOverflowError異常棧是有深度(大小)的,當線程請求的棧深度大于了虛擬機允許的深度,則throw StackOverflowError。
OutOfMemoryError異常如果虛擬機棧可動態擴展,當無法申請到足夠的內存,則throw OutOfMemoryError。
堆堆是Java人員經常提及的一塊內存區域,也是關注最多的一塊區域。堆具有一下特點:
通常是虛擬機管理的最大的一塊區域
被所有線程共享
垃圾收集器管理的主要區域
OutOfMemoryError異常
從內存回收的角度來看,Java對可以分為新生代和老年代。
方法區方法區是所有線程共享的內存區域,用來存儲已經被虛擬機加載的類信息、常量、靜態變量、即時編譯器編譯后的代碼等數據。方法區無法滿足內存分配需求時,也會拋出OutOfMemoryError異常。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/69021.html
摘要:下面的截圖內容來自從規范我們可以看到,規范要求的運行時數據區域有程序計數器虛擬機棧堆方法區本地方法棧運行時常量池這及部分。查了一下,還是沒有查到官方對于運行時數據區域的說明,但是許多博客都指出將字符串常量池移動到了堆中。 不少java程序員一提JVM運行時數據區域,就會說堆和棧,當然也有java程序員給出方法區、虛擬機棧、本地方法棧、堆、程序計數器這個答案,但是還有人給出永久代、虛擬機...
摘要:框架說明開發者都知道會執行字節碼。但是可能大多數人都不知道一個事實是的實現,它分析字節碼,解釋并執行代碼。執行引擎字節碼加載到運行時數據區后,會被執行引擎執行。解釋器更快的解釋字節碼,但是執行非常慢。垃圾收集收集并移除不再被使用的對象。 JVM框架說明 java開發者都知道JRE(Java Runtime Environment)會執行字節碼。但是可能大多數人都不知道一個事實:JRE是...
摘要:對字節碼文件進行解釋執行,把字節碼翻譯成相關平臺上的機器指令。使用命令可對字節碼文件以及配置文件進行打包可對一個由多個字節碼文件和配置文件等資源文件構成的項目進行打包。和不存在永久代這種說法。 Java技術體系 從廣義上講,Clojure、JRuby、Groovy等運行于Java虛擬機上的語言及其相關的程序都屬于Java技術體系中的一員。如果僅從傳統意義上來看,Sun官方所定義的Jav...
摘要:方法區在實際內存空間站可以是不連續的。這一規定,可以說是給了虛擬機廠商很大的自由。但是值得注意的是,堆其實還未每一個線程單獨分配了一塊空間,這部分空間在分配時是線程獨享的,在使用時是線程共享的。 在我的博客中,之前有很多文章介紹過JVM內存結構,相信很多看多我文章的朋友對這部分知識都有一定的了解了。 那么,請大家嘗試著回答一下以下問題: 1、JVM管理的內存結構是怎樣的? 2、不同的...
摘要:編譯器只需面向,生成能理解的代碼或字節碼文件。源文件經編譯器,編譯成字節碼程序,通過將每一條指令翻譯成不同平臺機器碼,通過特定平臺運行。漲見識,字節碼執行過程分析。解決辦法減少默認棧的容量來換取更多的線程支持。 前言 JVM是java的核心和基礎,在java編譯器和os平臺之間的虛擬處理器。它是一種基于下層的操作系統和硬件平臺并利用軟件方法來實現的抽象的計算機,可以在上面執行java的...
閱讀 1840·2021-11-23 09:51
閱讀 1294·2021-11-18 10:02
閱讀 971·2021-10-25 09:44
閱讀 2109·2019-08-26 18:36
閱讀 1630·2019-08-26 12:17
閱讀 1154·2019-08-26 11:59
閱讀 2751·2019-08-23 15:56
閱讀 3363·2019-08-23 15:05