java中二維數組內存分配


區分三種初始化方式:

格式一:

    數據類型[][] 數組名 = new 數據類型[m][n];

          m:表示這個二維數組有多少個一維數組。
          n:表示每一個一維數組的元素有多少個。

    //例:int arr[][]=new int[3][2];

    如下圖

 

 

格式二:

    數據類型[][] 數組名 = new 數據類型[m][];
      m:表示這個二維數組有多少個一維數組。
      列數沒有給出,可以動態的給。這一次是一個變化的列數。

如下圖

格式三:
    基本格式:
      數據類型[][] 數組名 = new 數據類型[][]{{元素1,元素2...},{元素1,元素2...},{元素1,元素2...}};
    簡化版格式:
      數據類型[][] 數組名 = {{元素1,元素2...},{元素1,元素2...},{元素1,元素2...}};

如下圖:

內存分配詳解:

引用類型的默認值為null,定義二維數組時,會在堆內存為其分配內存空間(必須知道二維數組的行數,即一維數組的個數,才能夠為其分配內存空間),首先給一個地址值0x001給arr,然后為二維數組里的一維數組分配內存空間,分別給一個地址值給一維數組,即0x0001給arr[0],0x0002給arr[1],0x0003給arr[2]。如果arr[3][]第二個元素值沒有給出(相當於里面的一維數組的元素個數不知道),即以格式2定義二維數組,那么就無法為一維數組靜態的分配內存空間了,即打印出來的arr[0],arr[1],arr[2]地址值是默認值null,可以動態的為其分配內存空間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM