Java內存分析

在Java中,內存的管理分爲: Stack(棧), Heap(堆), DataSegment(數據段), CodeSegment(代碼段)

Stack(棧): 基本數據類型(byte,short,int,long,char,float,double,boolean), 局部變量, 對象的引用地址

Heap(堆): 存放對象實例,new出來的東西放這裏
DataSegment(數據段): 靜態變量和字符串常量

CodeSegment(代碼段): 顧名思義存放代碼

wKioL1XUL-ODQNiNAALOjEBpj_4167.jpg










實例:

下面通過分析一個例子來說明java變量是怎麼存放在內存中的

Code segment:arraylistlist[]=new arraylist[2];

Arraylist[0]=2;arraylist[1]=3;arraylist[2]=4;

因爲list[]是一個變量,這是一個聲明我們放到棧中。

而後面每個數組實例化出來的變量,所以放到堆中。

而實實在在存在的變量的值都是常量,所以放在常量池中,也就是上圖中的datasegment。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章