01/10/2018, 08:59
Cho em hỏi về hàm clone() trong java với ạ
Cho em hỏi là khi sử dụng hàm clone thì nó tạo ra 1 đối tượng độc lập hoàn toàn với đối tượng ban đầu không ạ. Em có đọc trên mạng thì người ta bảo không , nhưng lúc em test lại thì chưa thấy sự không độc lập giữa chúng.
Code của em ạ:
ai giải đáp thắc mắc này cho em với ạ.
Em cám ơn
Bài liên quan
thể thử trường hơp dưới xem
mục đích của clone là tạo ra 1 đối tượng độc lập với đối tượng ban đầu , ví dụ như bên c có con trỏ thì con trỏ 1 trỏ đến vùng nhớ 1 , giờ tạo con trỏ 2 trỏ đến vùng nhớ 2 nhưng vùng nhớ này sao chép hoàn toàn dữ liệu từ vùng nhớ 1 sang , để giải quyết cái này người ta có 2 cách deep copy và shadow copy , trong java nó cung cấp 1 interface Cloneable để ta thực hiện việc copy
cái này mình thấy 2 cái list đó nó cùng tham chiếu đến 1 vùng nhớ chứ đâu phải clone đâu nhỉ…
Vậy câu lệnh trên không phải clone mà là tham chiếu đến 1 vùng nhớ ạ ??
Nó clone cai list nhưng giữ tham chiếu đên element, nhưng nếu em thay Person bằng kiểu Interger, String thì nó sẽ ra ket qua khac
Do Integer va String điều là immuable.
mình đan giải thích cái ý này
va
sẽ khác nhau đấy