我正在对数组进行一些练习,并且在按元素逐个复制之后,系统提示我返回对数组的引用。这到底是什么意思?
我的代码如下:
public static int[] cloneArray(int array[])
{
int[] arraycopy = new int[array.length];
for(int i = 0; i < array.length; i++)
{
arraycopy[i] = array[i];
}
return arraycopy;
}
我不知道我应该返回什么作为“引用”:我应该返回一个int数组还是一个int?每当我尝试打印数组时,我都会得到一个奇怪的字符和数字组合(除非我调用Arrays.toString())。
答案 0 :(得分:6)
“返回对数组的引用”只是表示“返回一个数组”。
Java只返回值,它们是基元或对象引用(即对于对象,值是参考)。
虽然Java是基于C的,但它并没有像C那样使用指针等等。
答案 1 :(得分:1)
在Java中,数组和对象不像int这样的基本类型。请考虑以下代码:
public class MyClass {
public static int method1(int ar[]) {
int x = ar[1];
ar[1] = 3;
return x;
}
}
现在假设在其他地方,执行以下代码:
int abcd[] = new int[3];
abcd[0] = 0;
abcd[1] = 1;
abcd[2] = 2;
int d = MyClass.method1(abcd);
System.out.println(abcd[1]);
会打印什么?它不是1,而是3.这是因为该方法没有给出数组中的数据,它被告知数组的位置。换句话说,它传递了一个引用。因为它使用了引用,所以更改数组索引的值会在调用它的代码中更改其值。如果method1将int作为参数,则不会发生这种情况。
基本上,在Java中,方法不接受数组作为参数或返回数组。它们仅使用对数组的引用。对象也是如此(除了通过值传递的字符串)。
答案 2 :(得分:0)
在Java中,只能通过引用访问对象。只需返回Array对象。