JVM深入淺出 -- Java記憶體分配機制
Java存放物件、變數等資訊需要分配記憶體進行儲存,分配及儲存區原理如下:
1.暫存器
它是唯一位域處理器內部的儲存區。所以它是最快的,數量也是極其有限的,並且和 C,C++不一樣的是,Java暫存器是根據程式需求進行分配的,你不能控制、也不能向它“建議“分配方式。在 java 中暫存器對於程式設計師來說是感受不到其存在的。
2.棧
位於隨機訪問儲存器(RAM)中,但透過堆疊指標可以從處理器獲得直接支援。它的執行速度僅次於暫存器。儲存在它內部的項的生命週期對與棧來說必須是透明的,並根據其生命週期堆疊指標進行上下移動(向下分配記憶體,向上釋放記憶體)。所以其靈活性不高,適合儲存一些基本型別(如:boolean、byte、char、short、float、int、long、double)。它的宣告方式
int i = 0;
1
2
的意思是:不是用 new 來建立變數,二是建立一個並非是引用的“自動”變數。這個變數直接儲存“值”,並置於堆疊中。
3.堆
位於隨機訪問儲存器(RAM)中,用於存放所有的 Java 物件(透過 new 關鍵字產生的都是物件,new 關鍵字的意思是“給我一個物件”=號左邊為物件的一個引用)。它不需要知道儲存的資料在堆中的生命週期,因而更加靈活。如果可以在棧中儲存物件的話,堆進行儲存分配和清理要比用棧花費更多的時間。
4.常量儲存
由於常量永遠不會改變,所以它通常存放在程式程式碼內部。在嵌入式系統中,常量本身會和其他部分隔離開,所以在這種情況下可以選擇將常量放在只讀儲存器(ROM)中。
5.非RAM儲存
透過將物件轉化成可以存放在其他媒介(硬碟)上的事務,在需要時,它們可恢復成常規的、基於RAM的物件。
如流物件和持久化物件。在 流物件 中,物件轉換為位元組流被髮送給另一臺機器。在 持久化物件 中,物件被存放於磁碟上。因此,即使程式終止,它們依然可以保持自己的狀態。
Java 本身提供了輕量級的持久化支援,但是可以透過 JDBC 及 Hibernate 進行大量資料的持久化。
作者:大齊老師
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/132/viewspace-2820091/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- jvm:記憶體模型、記憶體分配及GC垃圾回收機制JVM記憶體模型GC
- 深入淺出Java記憶體模型Java記憶體模型
- 淺談JVM記憶體分配與垃圾回收JVM記憶體
- 8.JVM記憶體分配機制超詳細解析JVM記憶體
- 【Java】 記憶體分配全面淺析Java記憶體
- 淺析java記憶體管理機制Java記憶體
- JVM記憶體分配機制與回收策略選擇-JVM學習筆記(2)JVM記憶體筆記
- jvm記憶體管理機制JVM記憶體
- JVM的藝術-物件建立與記憶體分配機制深度剖析JVM物件記憶體
- 【記憶體管理】頁面分配機制記憶體
- 深入淺出記憶體馬(一)記憶體
- 深入淺出JVM(十四)之記憶體溢位、洩漏與引用JVM記憶體溢位
- Python如何管理記憶體?記憶體分配機制是什麼?Python記憶體
- 垃圾收集機制與記憶體分配策略記憶體
- 深入理解JVM虛擬機器-物件引用,GC與記憶體分配回收JVM虛擬機物件GC記憶體
- JVM GC 與 記憶體分配策略JVMGC記憶體
- 深入淺出Netty記憶體管理 PoolChunkNetty記憶體
- Linux:深入淺出 Linux 共享記憶體Linux記憶體
- 深入理解Java虛擬機器 --- 記憶體分配與回收策略Java虛擬機記憶體
- 淺談JVM記憶體結構 和 Java記憶體模型 和 Java物件模型JVM記憶體Java模型物件
- JVM 之 記憶體分配與回收策略JVM記憶體
- JVM垃圾回收和記憶體分配策略JVM記憶體
- Java記憶體管理機制Java記憶體
- 深入理解JVM記憶體回收機制(不包含垃圾收集器)JVM記憶體
- JVM自動記憶體管理機制 二JVM記憶體
- JVM記憶體回收機制——哪些記憶體需要被回收(JVM學習系列2)JVM記憶體
- 深入理解JVM虛擬機器-JVM記憶體區域與記憶體溢位JVM虛擬機記憶體溢位
- 深入理解golang:記憶體分配原理Golang記憶體
- JVM——垃圾收集器與記憶體分配JVM記憶體
- Java的記憶體 -JVM 記憶體管理Java記憶體JVM
- java-方法記憶體分配Java記憶體
- java基礎-記憶體分配Java記憶體
- v8記憶體分配淺談記憶體
- Netty 中的記憶體分配淺析Netty記憶體
- 一文洞悉JVM記憶體管理機制JVM記憶體
- 深入理解JVM(一)JVM記憶體模型JVM記憶體模型
- 深入理解JVM(一)——JVM記憶體模型JVM記憶體模型
- 深入理解JVM(③)學習Java的記憶體模型JVMJava記憶體模型