數組的使用及問題

一、Java虛擬機中內存劃分

1、寄存器

2、本地方法區

3、方法區

4、棧內存

    存儲的是局部變量(函數中定義的變量,函數上的參數,語句中的變量),而且局部變量的作用域一結束,該局部變量所佔自動釋放。

5、堆內存

    用於存儲數組和對象,也就是實體(封裝多個數據的),凡是new建立的均存儲在堆內存中。

堆內存特點:

① 每個實體(存儲多個數據)都有一個首地址值
② 堆內存中每個變量都會有默認初始化值,根據定義的類型不同數值不同,整數:0  小數:0.0或0.0f

  boolean:false  char "\u0000" 
③ 具有垃圾回收機制

二、數組使用的內存情況


三、數組有關問題

1、當打印數組的首地址時,在控制檯上顯示:[I@128f6ee
    [代表是數組型實體,I代表實體中的數據類型是int型,@後面的是哈希值

2、ArrayIndexOutOfBoundsException:

int[] arr = new int[3];
System.out.println(arr[3]);
運行上述程序時,虛擬機會提示“Array Index Out Of Bounds Exception:”,即訪問到數組中不存在的角標時,發生該異常。

3、Null Pointer Exception

int[] arr = new int[3];
arr = null;
System.out.println(arr[0]);
運行上述程序時,虛擬機會提示“Null Pointer Exception:”,即當引用型變量沒有任何實體指向時,還在用其操作實體。就會發生該異常。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章