Hãy tha thứ cho tôi nếu đây là một bản sao, tôi dường như không thể tìm thấy bất cứ điều gì giải thích những gì tôi nhìn thấy tốt.java null sao chép tham chiếu
Các chương trình sau đây:
Object a = new Object();
Object b = a;
System.out.println("a: " + a);
System.out.println("b: " + b);
a = null;
System.out.println("a: " + a);
System.out.println("b: " + b);
sản lượng này:
a: [email protected]
b: [email protected]
a: null
b: [email protected]
Nhưng TẠI SAO?!? Tôi rất bối rối vì điều này. Không nên "b" được tham chiếu "a"? Vì vậy, nếu "a" không còn tham chiếu bất cứ điều gì khác (ví dụ: null) thì không nên "b"? Tôi rõ ràng là thiếu một cái gì đó cơ bản ở đây.
Xin cảm ơn trước.
EDIT # 1
Tôi nghĩ rằng những gì đã ném tôi ra là tôi đang in ra địa chỉ. Đối với một số lý do, trong tâm trí của tôi, tôi đã in ra một số giá trị ma thuật chỉ ra con trỏ \ tham chiếu - khi trong thực tế thiết lập b = a
là không làm cho họ giống nhau, nó chỉ đơn giản là tạo ra một con trỏ mới đến cùng một vị trí trên heap. Tôi mong điều này giúp được người nào khác.
Cảm ơn bạn. Cho đến nay giải thích rõ ràng nhất - tôi biết tôi đã thiếu một cái gì đó khá rõ ràng; hoặc có lẽ tôi cần một người bồi dưỡng, DOH! – javamonkey79
Rất vui khi nó xuất hiện rõ ràng :) – MByD