【发布时间】:2012-10-21 15:13:00
【问题描述】:
假设您在 java 中有这段代码: 联系人由姓名和号码组成,电话簿由联系人数组组成。
//set -> 这个方法是真的复制并创建新的内存位置还是只是指向内存?
public void setContact(Contact[] contact)
{
this.contact = contact; // <----this
}
谢谢。
【问题讨论】:
假设您在 java 中有这段代码: 联系人由姓名和号码组成,电话簿由联系人数组组成。
//set -> 这个方法是真的复制并创建新的内存位置还是只是指向内存?
public void setContact(Contact[] contact)
{
this.contact = contact; // <----this
}
谢谢。
【问题讨论】:
数组是对象,在Java中对象引用是按值传递的。因此调用此方法会使this.contact 成为对作为参数传递的联系人数组的引用的副本。不复制数组元素。没有复制数组。
【讨论】:
通过使用它,您可以设置对堆栈中堆中对象的引用 即您的对象在堆中,而您的引用在堆栈中
仅通过使用 new 关键字,您将获得在堆中获取空间的新对象
【讨论】: