gpt4 book ai didi

java - 实例化有什么区别?

转载 作者:搜寻专家 更新时间:2023-11-01 01:32:31 25 4
gpt4 key购买 nike

假设我们有一个类 World 并且我们已经声明了该类的一个实例 dreamWorldCase 1Case 2 除了少了一行之外有何不同?在第二种情况下实例化实际上有什么区别?我的意思是,毕竟 dreamWorld 在这两种情况下都是一样的,对吧?

案例 1:

void changeWorld(World outerWorld) {
World dreamWorld;

dreamWorld = outerWorld;
}

案例 2:

void changeWorld(World outerWorld) {
World dreamWorld;

dreamWorld = new World();
dreamWorld = outerWorld;
}

outerWorld 是在别处创建的 World 类的一个对象,比如说,作为方法参数提供(我不确定它的提供方式是否重要).

附言伙计们,感谢你们所有及时而有帮助的回复,抱歉我迟来的感激之情(我花了一些时间阅读了一些文献,我认为这些文献对于完全理解你们的回复是必要的)。

最佳答案

情况 2 毫无意义。您实例化了一个新的 World 对象,然后在稍后分配 dreamWorld = outerWorld 时丢失了对它的引用,将其留给垃圾收集器收集。

编辑:
正如@Rob 指出的那样,对上述声明的警告是在 World 的构造函数执行一些外部交互的情况下,实例化它仍然会产生影响。然而,将它分配给 dreamWorld 是没有意义的,因为这个引用将会丢失。

关于java - 实例化有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36221407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com