數組長度爲0和數組爲null的區別(最詳細易懂)

數組長度爲0和數組爲null的區別(最詳細易懂)

拿以下四句代碼舉例

1int[] array;               //只聲明數組,未賦初值。2int[] array = null;        //數組爲null。3int[] array = {};          //數組長度爲0。4int[] array = new int[0];  //數組長度爲0。

解析:
(1)array聲明時就在棧內存中開闢一塊4byte空間,但是隻是聲明array,並沒有給array裝進具體的數組地址。
注意:在棧中開闢的這塊4byte空間是array本身這個數組指針變量的地址。

( 32位環境下, int型指針變量佔4字節內存 )

(2)給array賦一個null,相當於還是沒有給它數組地址,也就是沒有開闢一塊數組的內存。

相當於array做好了準備接一個數組的地址,還是沒有給,有在搞它。

(3)這次給array賦了一個數組的地址,但是這個數組{}是裏面沒有值,長度爲0的數組,但是確實在內存裏開闢了一塊數組的空間。

有了數組,也有了數組地址,但是沒給數組裝進數值。

(4)和(3)本質是一樣的,都是給array賦了一塊長度爲0的數組地址。但是new int[0] 是在堆裏面開闢了一塊空間。

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