java jvm中的堆,棧等內存分配

Content Introduce

Java程序都運行在JVM虛擬機內部

JVM內存 內存占用 釋放 優(yōu)點 缺點 共享 超出
堆區(qū)(heap) new創(chuàng)建的對象 虛擬機GC 靈活 效率低 全局共享 OOM
棧區(qū)(stack) 存儲局部變量,引用變量 自動釋放 效率高 內存有限(遞歸小心) 單獨線程共享 SOF
靜態(tài)區(qū)(static) 全局 static 數據,常量 整個運行期間 共享給所有 加大內存負擔 全局共享

由于mk的語法原因上面不能寫全馏慨,更加詳細的埂淮,見下圖


heapAndstack.png

其中靜態(tài)區(qū)其實叫方法區(qū),又叫no-heap 非堆區(qū)写隶,它與Java堆一樣倔撞,是各個線程共享的內存區(qū)域,它用于存儲已被虛擬機加載的類信息慕趴、常量痪蝇、靜態(tài)變量、即時編譯器編譯后的代碼等冕房。

數據躏啰。

sample

public class Sample() {
    int s1 = 0;
    Sample mSample1 = new Sample();

    public void method() {
        int s2 = 1;
        Sample mSample2 = new Sample();
    }
}

Sample mSample3 = new Sample();

說明:

Sample 類的局部變量 s2 和引用變量 mSample2 都是存在于棧中,但 mSample2 指向的對象是存在于堆上的毒费。
mSample3 指向的對象實體存放在堆上丙唧,包括這個對象的所有成員變量 s1 和 mSample1愈魏,而它自己存在于棧中觅玻。

Detailed description

棧內存, 在函數中定義的一些基本類型的變量和對象的引用變量都是在函數的棧內存中分配。當在一段代碼塊中定義一個變量時培漏,java就在棧中為這個變量分配內存空間溪厘,當超過變量的作用域后,java會自動釋放掉為該變量分配的內存空間牌柄,該內存空間可以立刻被另作他用畸悬。

堆內存用于存放由new創(chuàng)建的對象和數組。在堆中分配的內存珊佣,由java虛擬機自動垃圾回收器來管理蹋宦。在堆中產生了一個數組或者對象后,還可以在棧中定義一個特殊的變量咒锻,這個變量的取值等于數組或者對象在堆內存中的首地址冷冗,在棧中的這個特殊的變量就變成了數組或者對象的引用變量,以后就可以在程序中使用棧內存中的引用變量來訪問堆中的數組或者對象惑艇,引用變量相當于為數組或者對象起的一個別名蒿辙,或者代號拇泛。

引用變量是普通變量,定義時在棧中分配內存思灌,引用變量在程序運行到作用域外釋放俺叭。而數組&對象本身在堆中分配,即使程序運行到使用new產生數組和對象的語句所在地代碼塊之外泰偿,數組和對象本身占用的堆內存也不會被釋放熄守,數組和對象在沒有引用變量指向它的時候,才變成垃圾甜奄,不能再被使用柠横,但是仍然占著內存,在隨后的一個不確定的時間被垃圾回收器釋放掉课兄。這個也是java比較占內存的主要原因牍氛,********實際上,棧中的變量指向堆內存中的變量烟阐,這就是 Java 中的指針!

參考:
http://blog.csdn.net/codeemperor/article/details/51514448
http://www.cnblogs.com/whgw/archive/2011/09/29/2194997.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末搬俊,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子蜒茄,更是在濱河造成了極大的恐慌唉擂,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件檀葛,死亡現場離奇詭異玩祟,居然都是意外死亡,警方通過查閱死者的電腦和手機屿聋,發(fā)現死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門空扎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人润讥,你說我怎么就攤上這事转锈。” “怎么了楚殿?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵撮慨,是天一觀的道長。 經常有香客問我脆粥,道長砌溺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任变隔,我火速辦了婚禮规伐,結果婚禮上,老公的妹妹穿的比我還像新娘弟胀。我一直安慰自己楷力,他們只是感情好喊式,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著萧朝,像睡著了一般岔留。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上检柬,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天献联,我揣著相機與錄音,去河邊找鬼何址。 笑死里逆,一個胖子當著我的面吹牛,可吹牛的內容都是我干的用爪。 我是一名探鬼主播原押,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼偎血!你這毒婦竟也來了诸衔?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤颇玷,失蹤者是張志新(化名)和其女友劉穎笨农,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體帖渠,經...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡谒亦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了空郊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片份招。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖渣淳,靈堂內的尸體忽然破棺而出脾还,到底是詐尸還是另有隱情伴箩,我是刑警寧澤入愧,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站嗤谚,受9級特大地震影響棺蛛,放射性物質發(fā)生泄漏。R本人自食惡果不足惜巩步,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一旁赊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧椅野,春花似錦终畅、人聲如沸籍胯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杖狼。三九已至,卻和暖如春妖爷,著一層夾襖步出監(jiān)牢的瞬間蝶涩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工絮识, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留绿聘,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓次舌,卻偏偏與公主長得像熄攘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子彼念,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內容