Java数组及引用类型内存分配(3)

对于数组元素为引用类型在内存中的存储与基本类型不一样,此时数组元素仍然存放引用,指向另一块内存,在其中存放有效的数据。

Java数组及引用类型内存分配

谈到这里,不知是否有朋友要问:Java的多维数组是什么样的?我的回答是:可以有。为什么呢?从底层来看,数组元素可以存放引用类型,包含数组。也就是说在数组元素的内部还可以包含数组(如int[][] numbers = new int[length][]),也即二维数组可当作一维数组(数组长度为length)来处理,也可以同时指定多个维度的长度(如int[][] matrix = new int[length][width]),不过必须至少指定最左端的数组长度length。由此我们得出结论: 任何多维数组(维度为n,n>1)都当作一维数组,其数组元素为n-1维数组

public class TestMultiArray { public static void main(String[] args) { //1.定义二维数组 int[][] numbers; //2.分配内存空间 numbers = new int[3][]; //可以把numbers看作一维数组来处理 for(int i = 0;i < numbers.length;i++) { System.out.print(numbers[i] + ",");//null,null,null } System.out.println(""); //3.为数组元素指定值 numbers[0] = new int[2]; numbers[0][1] = 1; for(int i = 0;i < numbers[0].length;i++) { System.out.print(numbers[0][i] + ",");//0,1 } } }

Java数组及引用类型内存分配

最后,简单介绍一下Arrays(位于java.util下)的静态方法:binarySearch、copyOf、copyOfRange、equals、fill、sort、toString等方法(具体用法参见JDK)。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/a87321518d9bd5843010447806d3ddcc.html