1, 垃圾回收機制僅僅作用于堆內(nèi)存,與棧內(nèi)存無關(guān);
2, 棧:stack 棧的存取速度比堆快,效率高 保存局部變量和對象的引用值
3, 堆:保存較大的變量
4, 棧有一個很重要的特殊性,就是存在棧中的數(shù)據(jù)可以共享
編譯器處理int a = 3 時,首先會在棧中創(chuàng)建一個變量為a的引用,然后查找棧中是否存在3這個值,如果不存在,就將3存放進來;
處理b = 3時,也是這樣,因為之前將3存放進來了,所以此時編譯器只需將創(chuàng)建b這個變量再指向3就行了(有利于節(jié)省空間)。
這個時候就出現(xiàn)a和b同時指向3的情況,但不影響他們的使用。如果此時又定義a = 4;,則需將4存放進內(nèi)存,由a指向4,a值的修改不會影響到b值。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
內(nèi)存的劃分: 1 ,寄存器。 2 ,本地方法區(qū)。 3 ,方法區(qū)。 4 ,棧內(nèi)存。 存儲的都是局部變量。 而且變量所屬的作用域一旦結(jié)束,該變量就自動釋放。 5 ,堆內(nèi)存。 存儲是數(shù)組和對象(其實數(shù)組就是對象) 凡是 new 建立在堆中。 特點: 1 ,每一個實體都有首地址值。 2 ,堆內(nèi)存中的每一個變量都有默認初始化值,根據(jù)類型的不同而不同。整數(shù)是 0 ,小數(shù) 0.0 或者 0 .0f, boolean false char '\u0000' 3 ,垃圾回收機制。 |
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:http://www.cnblogs.com/ganchuanpu/p/6092217.html