请教Java大神一个“对象赋值”的意义问题。

2025-04-05 19:58:02
推荐回答(1个)
回答1:

用这么多文字描述   ,还不如用代码去描述。  当你执行socket=socket0;以后   socket 跟socket0 是 一样的对象。但是当你socket0 = new Socket("localhost",新的端口号);以后  socket 不会成为新的new Socket。


import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

public class Test {

Socket socket;

public Test() throws UnknownHostException, IOException {
Socket socket0 = null;
socket = socket0;
System.out.println("执行socket = socket0;");
if (socket == socket0) {
System.out.println("socket 与 socket0一样");
} else {
System.out.println("socket 与 socket0  不同");
System.out.println("socket=" + socket);
System.out.println("socket0=" + socket0);
}


socket0 = new Socket("localhost", 80);
System.out.println("执行socket0 = new Socket(\"localhost\", 80);");
if (socket == socket0) {
System.out.println("socket 与 socket0一样");
} else {
System.out.println("socket 与 socket0  不同");
System.out.println("socket=" + socket);
System.out.println("socket0=" + socket0);
}
}

public static void main(String[] args) throws UnknownHostException, IOException {
Test test = new Test();
}

}