二维数组的静态初始化和动态初始化(重点)

静态初始化:           

Int[][] arr = new int[][]{

{1,2,3},{4,5},{6}

};

 

在二维数组中的显示为:

二维数组的静态初始化和动态初始化(重点)_第1张图片

静态定义二维数组,是一边定义一边确定二维数组的大小,因为静态定义二维数组,在定义时就赋值了,已经知道了赋值的情况,所以不会出现数组范围开大的情况,数组范围开大情况不会出现,所以就不会出现系统将没赋值的位置初始值变为0的情况.开辟的数组空间与数组元素的多少,大小有关.总之开辟的空间会正正好好,不多不少.

二维数组的静态初始化和动态初始化(重点)_第2张图片



  动态初始化:

Int[][] arr = new int[3][3];

 arr[0][1] = 1

 arr[0][2] = 2

 arr[0][3] = 3

 arr[1][0] = 4

 arr[1][1] = 5

 arr[2][0] = 6

 

在二维数组中的显示:

二维数组的静态初始化和动态初始化(重点)_第3张图片

动态定义二维数组时,在不知道所要赋值的情况下会提前确定二维数组的大小,在堆中开辟空间.

例如:

int[][] arr = new int[4][5];//定义一个长度为4的二维数组,里面每个一维数组的长度为5.没有赋值的位置,系统会自动初始化为0,如下图:

 

开辟的空间:

情况一:多出很多无用空间;

情况二:也有可能正正好好(3*3的矩形全部被人为赋予初值,这样就不会被系统赋为0)

二维数组的静态初始化和动态初始化(重点)_第4张图片


你可能感兴趣的:(Java基础学习)