一、棧 1.消失的方式不同:方法變數隨著棧方法的釋放而釋放 2.存儲的位置不同,預設複製的處理機制不同:不會給方法的屬性附初值,可以理解為類中的方法中的屬性為局部變數,無法給局部變數附初值,類的狀態由類的成員變數的值來體現,所以稱類是有狀態的對象,而方法中的變數不能預設附初值,則屬於無狀態,而且存儲 ...
一、棧
1.消失的方式不同:方法變數隨著棧方法的釋放而釋放
2.存儲的位置不同,預設複製的處理機制不同:不會給方法的屬性附初值,可以理解為類中的方法中的屬性為局部變數,無法給局部變數附初值,類的狀態由類的成員變數的值來體現,所以稱類是有狀態的對象,而方法中的變數不能預設附初值,則屬於無狀態,而且存儲的空間是在棧方法區內。
二、堆
1.成員變數不會隨著沒有引用的存在而消失,會等著jvm的垃圾回收裝置來回收,即jvm的gg
2.對實例化的對象的成員屬性附初值
3.只要是new的,記憶體會開闢新的空間
4.擦除引用,即使引用名為null,如下:
package com.dreamly.day01; /** * @author dreamly * */ public class ArrayTest01 { public static void main(String[] args) { int[] x=new int[3]; x[0]=2; x=null;//擦除掉與實例對象的聯繫,即不保存地址值。 } }