实例化有什么区别?

Vic*_*Vic 4 java instance

假设我们有一个类World,我们已经声明了dreamWorld该类的实例.情况1如何与案例2不同,除了它的一条线更短?在第二种情况下实例化实际上有什么区别?我的意思是,dreamWorld在这两种情况下,afterall 都是一样的,对吧?

案例1:

void changeWorld(World outerWorld) {
    World dreamWorld;

    dreamWorld = outerWorld;
}
Run Code Online (Sandbox Code Playgroud)

案例2:

void changeWorld(World outerWorld) {
    World dreamWorld;

    dreamWorld = new World();
    dreamWorld = outerWorld;
}
Run Code Online (Sandbox Code Playgroud)

where outerWorldWorld在别处创建的类的对象,比如说,作为方法参数提供(我不确定它是如何提供的重要).

PS 谢谢你所有的提示和有用的回复,伙计们,对不起我的延迟感谢(我花了很多时间阅读一些我觉得有必要完全理解你的回复的文献).

Mur*_*nik 6

案例2毫无意义.您实例化一个新World对象,然后在分配时丢失对该行的引用dreamWorld = outerWorld,将其留给垃圾收集器进行收集.

编辑:
正如@Rob指出的那样,对前面提到的语句的一个警告是,World构造函数执行一些外部交互,实例化它仍然会产生影响.dreamWorld但是,将其分配是没有意义的,因为此引用将丢失.