- vừa được xem lúc

Java SE 8 Oracle Certified Associate 1Z0-808 - Câu hỏi 6

0 0 12

Người đăng: LDT

Theo Viblo Asia

1. Câu hỏi

2. Phân tích

Đây cũng là 1 câu hỏi khó, cần hiểu rõ về cách quản lý bộ nhớ, HEAP, STACK và cả hàm clone() của object image.png

Giải thích theo hình bên trên.

  1. ArrayList<Counter> original = new ArrayList<>(); => Tạo 1 ArrayList object [Giả thiết ở địa chỉ 15EE00] và biến 'original' trở đến địa chỉ này.

  2. original.add(new Counter(10)); => Tạo 1 Counter object [Giả thiết ở địa chỉ 25AF06]. Set phần tử index 0 chỉ vào 25AF06.

  3. ArrayList<Counter> cloned = (ArrayList<Counter>) original.clone(); => Xem chi tiết hàm clone của ArrayList

Returns a shallow copy of this ArrayList instance. (The elements themselves are not copied.)

original.clone() Tạo ra 1 Object mới, [Giả thiết ở địa chỉ 45BA12] và copy nội dung của ArrayList tại [15EE00].

Khi đó original != cloned nhưng original.get(0) == cloned.get(0). 4. cloned.get(0).count = 5; => cloned.get(0) tham chiếu đến 25AF06, khi đó cloned.get(0).count = 5; sẽ sửa giá trị tại vùng nhớ đó.

  1. System.out.println(original); Vì original vẫn dùng vùng nhớ {25AF06} nên sử dụng giá trị được update.

Đáp án: image.png

3. Kết luận

Bạn có thể gõ code vào IDE để chạy lại và kiểm tra Source cho câu hỏi

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tổng hợp các bài hướng dẫn về Design Pattern - 23 mẫu cơ bản của GoF

Link bài viết gốc: https://gpcoder.com/4164-gioi-thieu-design-patterns/. Design Patterns là gì. Design Patterns không phải là ngôn ngữ cụ thể nào cả.

0 0 302

- vừa được xem lúc

Học Spring Boot bắt đầu từ đâu?

1. Giới thiệu Spring Boot. 1.1.

0 0 277

- vừa được xem lúc

Cần chuẩn bị gì để bắt đầu học Java

Cần chuẩn bị những gì để bắt đầu lập trình Java. 1.1. Cài JDK hay JRE.

0 0 50

- vừa được xem lúc

Sử dụng ModelMapper trong Spring Boot

Bài hôm nay sẽ là cách sử dụng thư viện ModelMapper để mapping qua lại giữa các object trong Spring nhé. Trang chủ của ModelMapper đây http://modelmapper.org/, đọc rất dễ hiểu dành cho các bạn muốn tìm hiểu sâu hơn. 1.

0 0 194

- vừa được xem lúc

[Java] 1 vài tip nhỏ khi sử dụng String hoặc Collection part 1

. Hello các bạn, hôm nay mình sẽ chia sẻ về mẹo check String null hay full space một cách tiện lợi. Mình sẽ sử dụng thư viện Lớp StringUtils download file jar để import vào thư viện tại (link).

0 0 71

- vừa được xem lúc

Deep Learning với Java - Tại sao không?

Muốn tìm hiểu về Machine Learning / Deep Learning nhưng với background là Java thì sẽ như thế nào và bắt đầu từ đâu? Để tìm được câu trả lời, hãy đọc bài viết này - có thể kỹ năng Java vốn có sẽ giúp bạn có những chuyến phiêu lưu thú vị. DJL là tên viết tắt của Deep Java Library - một thư viện mã ng

0 0 139