用这么多文字描述 ,还不如用代码去描述。 当你执行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();
}
}