Java運行時數(shù)據(jù)區(qū)

Java運行時數(shù)據(jù)區(qū)

1.程序計數(shù)器:是一塊較小的的內(nèi)存空間,是當前程序所執(zhí)行的字節(jié)碼的行號指示器。字節(jié)碼解釋器的工作時就是通過改變這個計數(shù)器的值來選取下一條需要執(zhí)行的字節(jié)碼指令,分支,循環(huán),跳轉(zhuǎn),異常處理

2.Java虛擬機棧:每個方法在執(zhí)行時都會創(chuàng)建一個幀棧,用于存儲局部變量表,操作數(shù)棧,動態(tài)鏈接方法出口等。

3.本地方法棧:與虛擬機棧比較相似,主要為虛擬機使用到的native方法服務。

4.java堆:此區(qū)主要用于存儲對象。java虛擬機規(guī)范中說,所有對象示例以及數(shù)組都要在堆上分配,但是隨著JIT編譯器的發(fā)展與逃逸技術的逐漸成熟,棧上分配,標量替換等,不是所有的對象都在堆上分配 。?

5.方法區(qū),與堆一樣,是線程共享的內(nèi)存區(qū)域,用于存儲被虛擬機加載的類信息,常量,靜態(tài)變量,即時編譯后的代碼等數(shù)據(jù)。對于HotSpot來說也叫永久帶。

6.運行時常量池:是方法區(qū)的一部分。class文件除了有類的版本,字段,方法,接口等描述信息外,還有一項信息是常量池,用于存放編譯期間生成的各種字面量和符號引用。注意:String的intern()方法(intern用來返回常量池中的某字符串,如果常量池中已經(jīng)存在該字符串,則直接返回常量池中該對象的引用。否則,在常量池中加入該對象,然后返回引用)

7.直接內(nèi)存

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Java內(nèi)存模型 Java內(nèi)存模型,就是Java程序運行時的內(nèi)存模型。而Java代碼是在Java虛擬機上運行的,由...
    獅_子歌歌閱讀 1,507評論 1 2
  • 讀《深入理解Java虛擬機》讀書筆記 程序計數(shù)器: 為了保證程序能夠連續(xù)地執(zhí)行下去,處理器必須具有某些手段來確定下...
    HWilliamgo閱讀 189評論 0 0
  • 程序計數(shù)器:是線程私有的,是一塊較小的內(nèi)存空間,當前線程所執(zhí)行的字節(jié)碼的行號指示器。JAVA虛擬機的多線程是通過線...
    彬榮閱讀 198評論 0 0
  • Java虛擬機在執(zhí)行java程序的過程中會把它所管理的內(nèi)存劃分為若干個不同的數(shù)據(jù)區(qū)域.根據(jù) <<java虛擬機規(guī)范...
    JimmieYang閱讀 3,233評論 0 10
  • 出門在外,無外乎就是衣食住行。那么我們租房的時候主要在乎的最重要的就是吃飯的問題。而集悅城的特殊之處就在于,這里是...
    274Kwater閱讀 692評論 2 1

友情鏈接更多精彩內(nèi)容