Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设您在 java 中有这段代码:联系人由姓名和号码组成,电话簿来自联系人数组。
//set -> 这个方法是真的复制并创建新的内存位置还是只是指向内存?
public void setContact(Contact[] contact) { this.contact = contact; // <----this }
谢谢。
数组是对象,而对象引用在 Java 中是按值传递的。因此,调用此方法this.contact会生成对作为参数传递的联系人数组的引用的副本。不复制数组元素。不制作数组的副本。
this.contact
通过使用它,您正在设置对堆栈中堆中的对象的引用,即您的对象在堆中并且您的引用在堆栈中
只有通过使用 new 关键字,您才能获得在堆中获取空间的新对象