3

假设您在 java 中有这段代码:联系人由姓名和号码组成,电话簿来自联系人数组。

//set -> 这个方法是真的复制并创建新的内存位置还是只是指向内存?

public void setContact(Contact[] contact)
{
    this.contact =  contact; // <----this
}

谢谢。

4

2 回答 2

2

数组是对象,而对象引用在 Java 中是按值传递的。因此,调用此方法this.contact会生成对作为参数传递的联系人数组的引用的副本。不复制数组元素。不制作数组的副本。

于 2012-10-21T15:15:44.467 回答
0

通过使用它,您正在设置对堆栈中堆中的对象的引用,即您的对象在堆中并且您的引用在堆栈中

只有通过使用 new 关键字,您才能获得在堆中获取空间的新对象

于 2012-10-21T15:24:47.433 回答