Java多维数组被视为基元或对象

时间:2012-03-10 08:01:01

标签: java object parameters multidimensional-array primitive

int[][] matrix = new int[10][10];是原始的还是被视为对象?当我将它作为参数发送给函数时,是否发送它的引用(如对象)或其值(如原语)?

3 个答案:

答案 0 :(得分:6)

每个Java数组都是一个Object。将它作为参数传递时,将引用的副本传递给数组。

答案 1 :(得分:5)

数组是对象。数组数组也是对象。 Java本身并不具有多维数组,只支持数组数组。

int [][] foo = {{1}, {2,2}, {3,4,5}};
if (foo instanceof int[][]) { // can only use instanceof with objects
}
System.out.println(foo.getClass()); // has object methods

答案 2 :(得分:2)

在java中,数组是完整的对象。话虽如此,java中的所有原语和对象引用总是按值传递,而不是通过引用传递。对于对象,对象引用按值传递。这个和通过引用传递的区别是微妙但重要的。