我最近开始重构我的Java代码。这一切都运行良好,直到后来,我注意到我的一些对象丢失“正确的参考”,即它成为的情况下,对象是“通过值”,而不是“通过引用” 。请注意,我确实知道Java始终是pass-by-value,并且仅通过内存地址传递来模拟传递引用(这就是为什么我引用这两个短语的原因)。对象之间的区别o = makeMeAnObjectPlease();和Object o = new Object();
我的问题是:是否有
Object o = new Object();
和
Object o = makeMeAnObjectPlease();
其中
public Object makeMeAnObjectPlease()
{
Object c = new Object();
return c;
}
而且通过差异,我的意思之间的差异将o
Object o = makeMeAnObjectPlease()
后指该与在makeMeAnObjectPlease()
内创建的内存地址相同?还有更多的区别吗?
你可能想看看这个问题的答案:http://stackoverflow.com/questions/40480/is-java-pass-by-reference – Natix