Java学习之二维数组定义与内存分配详解

时间:2023-11-24 22:22:26

二维数组:就是元素为一维数组的一个数组。



格式1:

数据类型[][] 数组名 = new 数据类型[m][n];



m:表示这个二维数组有多少个一维数组。

n:表示每一个一维数组的元素有多少个。



注意:

A:以下格式也可以表示二维数组

a:数据类型 数组名[][] = new 数据类型[m][n];

b:数据类型[] 数组名[] = new 数据类型[m][n];

B:注意下面定义的区别

int x;

int y;

int x,y;



int[] x;

int[] y[];

int[] x,y[];

格式2:

数据类型[][] 数组名 = new 数据类型[m][];



m:表示这个二维数组有多少个一维数组。

列数没有给出,可以动态的给。这一次是一个变化的列数。

格式3:

基本格式:

数据类型[][] 数组名 = 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,可以动态的为其分配内存空间。

Java学习之二维数组定义与内存分配详解

Java学习之二维数组定义与内存分配详解

Java学习之二维数组定义与内存分配详解