1. 程式人生 > >JVM執行時資料區簡單理解

JVM執行時資料區簡單理解

Public class HelloWrold{
//常亮、靜態變數
private final int i = 0;
private static int k = 0;

//成員變數
private Object obj = new Object();
private int sss = 0;

public void methodOne(int i){
//區域性變數
int j = 0;
int sum = i + j;
Object acb = obj;
long start = System.currentTimeMillis();
methodTwo
//TODO
return;
//正常
//異常
}

public void methodTwo(){
File file = new File();
//TODO
}

public static void methodThree(){
methodThree();
}

public static void main(String[] args){
methodThree();
}

}

先貼一段程式碼,

簡單分析

    





https://blog.csdn.net/wangjinlong_/article/details/80956541

參考資料:

某課堂某學院的公開課(避免廣告嫌疑),

java虛擬機器書

相關推薦

JVM執行資料簡單理解

Public class HelloWrold{ //常亮、靜態變數 private final int i = 0; private static int k = 0; //成員變數 private

一個“Hello World”理解JVM執行資料 侵立刪

轉自:https://mp.weixin.qq.com/s/as8iaQMoUcdL6iPdMrZOZg 先上一張JVM體系結構圖:     1)執行時資料區:經過編譯生成的位元組碼檔案(class檔案),由class loader(類載入子系統)載入後交給

JVMjvm執行資料

1、程式計數器 程式計數器(Program Counter Register)是一塊較小的記憶體空間,它的作用可以看做是當前執行緒所執行的位元組碼的行號指示器。在虛擬機器的概念模型裡(僅是概念模型,各種虛擬機器可能會通過一些更高效的方式去實現),位元組碼直譯器工作時就是通過改變這個

JVM 執行資料詳解

       1、PC暫存器(執行緒獨有):全稱是程式計數暫存器,它記載著每一個執行緒當前執行的JAVA方法的地址,如果是當前執行的是native方法,則程式計數器會是一個空地址。它的作用就是用來支援多執行緒,執行緒的阻塞、恢復、掛起等一系列操作。這

JVM執行資料-堆

基本概念     堆,jvm程序啟動時建立,為jvm程序的所有執行緒共享的區域,所有Java物件和陣列(jdk8+也包含字串常量)均在堆上分配記憶體,所以堆的大小決定了能存放多少Java物件,當堆滿或者無法容納新建立的物件時,則需要通過垃圾收集器進行垃

JVM執行資料-方法

基本概念      在hotspot jvm實現當中,在jdk8以前,方法區的實現為PermGen,即永久代,主要存放類的資訊,方法的資訊,常量池,靜態變數,符號解析;而jdk8+,則去除了PermGen,使用元空間MetaSpace代替,元空間使用的

jvm 執行資料、String 常量池

私有 - 程式計數器:記錄當前執行緒所執行位元組碼的行號指示器 - 虛擬機器棧:存放了當前執行緒呼叫方法的區域性變量表、運算元棧、動態連結、方法返回值等資訊(可以理解為執行緒 的棧) - 本地方法棧:為虛擬機器使用的Native方法提供服務 共享 - Java堆

JVM執行資料

JVM在執行java程式的過程中會把它所管理的記憶體劃分為若干個不同的資料區域。這些區域都有各自的用途,以及建立和銷燬的時間,有的區域隨著JVM程序的啟動而存在,有的區域則依賴使用者執行緒的啟動和結束而建立和銷燬。 JVM鎖管理的記憶體將會包括以下幾個執行時資料區域: (

JVM執行資料詳解

在Java虛擬機器中,堆(Heap)是可供各條執行緒共享的執行時記憶體區域,也是供所有類例項和陣列物件分配記憶體的區域。 Java堆在虛擬機器啟動的時候就被建立,它儲存了被自動記憶體管理系統(Automatic Storage Manageme

圖文並茂,帶你認識 JVM 執行資料

## 跨平臺的本質 關於 JVM, Java 程式設計師的最熟悉的一句話就是:一處編碼,到處執行,指的就是 Java 語言可以通過 JVM 實現跨平臺。而跨平臺到底跨越了什麼這個問題相信很少有人知道,接下來就跟我一起了解一下吧。 下圖展示了兩種不同的彙編風格,除此之外還有 ARM 彙編(主要應用於移動平

虛擬機器系列 | JVM執行資料

本文原始碼:[GitHub·點這裡](https://github.com/cicadasmile/java-base-parent) || [GitEE·點這裡](https://gitee.com/cicadasmile/java-base-parent) # 一、記憶體與執行緒 ## 1、記憶體結

深入理解JVM(一):執行資料

深入理解JVM(一):執行時資料區 執行時資料區 JVM在執行java程式的過程中,會把記憶體分為幾個不同的資料區域,如上圖所示。 程式計數器 雖然圖片中程式計數器所佔的面積比較大,但實際上程式計數器所佔的記憶體非常小,也是唯一一塊在所有JVM中都沒有規定OOM的區

Java虛擬機器(JVM原始碼):JDK10對Java虛擬機器執行資料的劃分(詳細圖解)

Java虛擬機器執行時資料區 為什麼要研究這個,因為JDK都已經發布到10了,必須要更新自己對Java虛擬機器新的認識。 一、執行時資料區的劃分 1.1 官方劃分 關於JDK10對執行時資料區的劃分,在官方文件說的非常清楚。 學習技術,一定要學會看第一手資料。 Ja

執行資料組成_深入JVM(一)

執行時資料區         JVM在執行java程式時,會把其所管理的記憶體劃分成多個區域,每個區域都有不同用途,每個區域的建立和銷燬時間也不同.這每塊記憶體都屬於執行時資料區域.         這些區域有程

JVM(一):JVM執行資料

由於Java程式是交由JVM執行的,所以我們在談Java記憶體區域劃分的時候事實上是指JVM記憶體區域劃分。在討論JVM記憶體區域劃分之前,先來看一下Java程式具體執行的過程: 如上圖所示,首先Java原始碼檔案(.java字尾)會被Java編譯器編譯為位元組碼檔案(.class字尾),

深入理解JVM-執行資料區域

JVM執行java程式是會把它管理的記憶體劃分為若干個不同的資料區域,如圖所示   程式計數器 1.是一塊較小的記憶體空間,可以看做是當前執行緒所執行的位元組碼的行號指示器; 2.JVM的多執行緒是通過執行緒輪流切換並分配處理器執行時間的方式來實現的,在任何一個確定的時刻,一個處理器(對

JVM執行資料區域 —— 程式計數器、Java虛擬機器棧、本地方法棧、Java堆、方法執行常量池

java虛擬機器執行時資料區域的概括圖如下所示: 下面將對執行時資料區進行講解 程式計數器 1、說明:程式計數器可以看做是當前執行緒所執行的位元組碼的行號指示器。其實通俗點講就是記錄class檔案執行到哪一行 2、注意的點: (1)因為CPU執

JVM(一):Run-Time Data Areas(執行資料)/ 記憶體區域

一:前言 特別說明:文章中引用的圖片是通過谷歌的方式找到的,當時並沒有找到圖片是否擁有版權,如果遇到了的話,請告知博主,我會將相應的圖片刪除。 本部落格主要總結的是JVM的Run Time Data Areas(執行時資料區),也就是我們常說的記憶體區域。借

JVM記憶體(執行資料)和直接記憶體 概念

JVM記憶體分為5塊,其中1--3為執行緒隔離,4、5為執行緒共享。執行緒隔離:1、程式計數器:分支,迴圈跳轉、異常處理、執行緒恢復等作用(唯一一個沒有規定outofmemoryError的記憶體區)。2、VM stack,虛擬機器棧:主要用來存放區域性變量表(八種基本資料型

JVM學習筆記(一)執行資料

執行時資料區     java虛擬機器在執行java程式的過程中會把所管理的記憶體劃分為若干個不同的資料區域。這些區域都有各自的用途,以及建立和銷燬的時間。 有的區域隨著虛擬機器程序的啟動而存在,隨虛擬機器程序的退出而銷燬; 有的區域則依賴使用者執行緒的啟