文章目录
这里简单概述一下二位数组的用法,各个地方的意义,和可能造成的问题,java新手,有错请联系
定义
一个二维数组可以说是一维数组的嵌套。就是在一个一维数组里再套一个一维数组。
形式
作为二维数组,要了解其各个写法。
1. String [][] string1 = new String[4][5];
2. String [][] string2 = new String [4][];
3. String [][] string 3 = {{},{}};
4. String [][] string 4 = new String[][]{{},{}};
意义
1. 行和列
这个在做算法题或者平常的考试中会经常用到,第一个值代表行,第二个值是列。 这里要注意使用的时候不要造成行列的下标越界。
行是 如形式中1 : 可以使用 string1.length 来获取行数
列是 如 形式中1 : 可以使用string1[1].length 来获取列数
2. 地址和值
从另一方面说,数组中第一个值存储的是地址,第二个值存储的是在值(这里把一维数组看成一整个值),即 由地址指向一维数组。
这就出现一个问题,当为形式2的时候,即 存在第一个值,不存在第二个值。那是不是说,你有一个地址,但是这个地址指向的空间没值,
并且因为你是一维数组整体是空,所以会出现咱们常说的空指针异常。
简单来说,第一个值就像这个地基,在这个地基上要盖名为多个一维数组的楼,一维数组上的值则为一个个房间。但是当房客(这里指
运行时候的计算机)去这个地基上看房的时候,发现这个地方,只有一个地基在那里,甚至烂尾楼都没有,也就看不了里面的房子(这里
就不是一维数组的默认值),所以只能指着地基那片空地在那里报警察,说诈骗,然后警察来了(返回给计算机空指针异常,警告你了)。
在形式1,3,4中 不会出现这种情况。