我正在努力学习Java。
我有一个自定义类,它具有属性:
public class Person{
private String name;
}
我还有另一门课,我在那里:
public class foo{
private Person guy;
public void setGuy(Person guy){
this.guy = guy;
}
public Person getGuy(){
return guy;
}
void someMethod(){
Person anotherGuy = new Person();
anotherGuy = getGuy();
}
}
当我使用getGuy()
方法时我很困惑。
我认为当我这样做时:
Person anotherGuy = new Person();
anotherGuy = getGuy();
我创建了一个新对象,它与 Guy 具有相同的值。但看起来 anotherGuy 实际上是一个指向 Guy 的指针。 所以
Person anotherGuy = getGuy();
和上面两行,做的事情完全一样吗?我很困惑。那么如何在内存中创建一个全新的对象呢?
最佳答案
So
Person anotherGuy = getGuy();
and the above 2 lines, do the exact same thing?
不,另一个版本首先创建一个新的 Person() 对象,然后丢弃它(这只是浪费内存和处理器周期)。
关于java - 使用 new 初始化变量,然后进行赋值和在初始化时仅赋值之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7531459/