程式執行過程中堆記憶體的簡單分析
阿新 • • 發佈:2019-01-01
JAVA語言中除基本型別之外的變數型別,都稱之為引用型別。 JAVA中物件是通過引用reference對其操作的。 新建物件時,引用型別的資料都是null,基本資料型別 int 是 0 string 是null boolean 是false (預設初始化) 方法:引數傳遞的值是 值傳遞。 區域性變數 必須初始化,成員變數會被系統預設初始化。 棧:自動分配連續的空間,後進先出,一般用來放置區域性變數,資料使用完畢之後,會自動釋放 堆:不連續,用來放置 new出來的物件,堆中的資料都會有預設初始化值。引用型別的資料都是null,基本資料型別 int 是 0 string 是null boolean 是false (預設初始化) 方法區:屬於堆的一部分,存放類的資訊(程式碼)、static變數、常量池(字串常量)等 解析: 1、主函式中定義一個 int x=3; 主函式載入時,主函式就在記憶體中的棧中 開闢一個空間,此空間中就會定義一個變數 ,並且賦值為3. 2、主函式中建立一個 int[] x=new int[3]; 左邊 int[] x,在棧記憶體中定義了一個變數 x, new int[3],在堆記憶體中開闢了一個空間,每個在堆記憶體中存在的資料都會有一個地址值。 = 時,就將x的引用指向了new 物件在堆記憶體中的地址值。 注:操作物件就是操作地址。 例子: //通過類載入器 Class LOader載入Student類,載入後,在方法區中就有了Student中的類的資訊 Student s1=new Student(); s1.name="張三";