首頁  >  文章  >  Java  >  Java記憶體分配

Java記憶體分配

巴扎黑
巴扎黑原創
2017-06-26 10:20:361648瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn