Java程式為了提高程式的效率,就對資料進行了不同的空間分配:
具體的劃分是如下的5個記憶體分配方式:
1.堆疊:存放的是局部變數
2.堆:存放的是所有new出來的東西
3.方法區:
4.本地方法區:(和系統相關)
5.暫存器:(CPU使用)
局部變數:在方法定義或方法宣告上的變數都稱為局部變數
堆記憶體的特性:
1.每一個new出來的東西都有位址值
2.每個變數都有預設值
# byte,short,int,long 為0
float,double 為0.0
char“\u0000”等同於空
引用類型為null
3.使用完畢就會變成垃圾,但是並沒有立即回收,會在垃圾回收器空閒的時候回收。
堆疊記憶體的特性:
資料離開作用域就釋放
陣列名的值是位址,陣列元素(即陣列名稱[索引])的值是數組中儲存資料的值。
int[] arr3 = arr; //這是給了arr的位址給了arr3,現在arr和arr3個位址相同。
ArrayIndexOutOfBoundsException:陣列索引越界例外
原因:存取了不存在的索引
NullPointerException:空指標例外
原因:數組名的值是null,不再指向位址值。而你也使用陣列名存取了它的元素。
陣列屬性:length,用於取得陣列的長度。
格式:陣列名.length
以上是Java記憶體分配的詳細內容。更多資訊請關注PHP中文網其他相關文章!