JAVA CORE - Trang 180

www.updatesofts.com

!

"

+

&

pháp duy nhất cho vấn đề này. Một đối tượng trở nên thích hợp cho sự dọn rác nếu không
có tham chiếu đến nó, hoặc nếu nó đã đăng ký rỗng.

Sự dọn rác thực thi như là một luồng riêng biệt có quyền ưu tiên thấp. Bạn có thể

viện dẫn một phương thức gc() của thể nghiệm để viện dẫn sự dọn rác. Tuy nhiên, bạn
không thể dự đoán hoặc bảo đảm rằng sự dọn rác sẽ thực thi một cách trọn vẹn sau đó.

Sử dụng câu lện sau để tắt đi sự dọn rác trong ứng dụng:

Java –noasyncgc ….

Nếu chúng ta tắt đi sự dọn rác, chương trình hầu như chắc chắn rằng bị treo do bởi

việc đó.

Phương thức finalize() (hoàn thành)

Java cung cấp một con đường để làm sạch một tiến trình trước khi điều khiển trở lại

hệ điều hành. Điều này tương tự như phương thức phân hủy của C++

Phương thức finalize(), nếu hiện diện, sẽ được thực thi trên mỗi đối tượng, trước khi

sự dọn rác.

Câu lệnh của phương thức finalize() như sau:

protected void finalize() throws Throwable

Tham chiếu không phải là sự dọn rác; chỉ các đối tượng mới được dọn rác

Lấy thể nghiệm:

Object a = new Object();

Object b = a;

a = null;

Ở đây, nó sẽ sai khi nói rằng “b” là một đối tượng. Nó chỉ là một đối tượng tham

chiếu. Hơn nữa, trong đoạn mã trích trên mặc dù “a’ được đặt là rỗng, nó không thể được
dọn rác, bởi vì nó vẫn còn có một tham chiếu (b) đến nó. Vì thế “a” vẫn còn với đến được,
thật vậy, nó vẫn còn có phạn vi sử dụng trong phạm vi chương trình. Ở đây, nó sẽ không
được dọn rác.

Tuy nhiên, trong ví dụ cho dưới đây, giả định rằng không có tham chiếu đến “a” tồn

tại, đối tượng “a” trở nên thích hợp cho garbage collection.

Object a = new Object();

a = null;

Một ví dụ khác:

Object m = new Object();

Object m = null;

Đối tượng được tạo ra trong sự bắt đầu có hiệu lực cho garbage collection

Object m = new Object();

M = new Object();

Bây giờ, đối tượng căn nguyên có hiệu lực cho garbage collection, và một đối tượng

mới tham chiếu bởi “m” đang tồn tại.

Bạn có thể chạy phương thức garbage collection, nhưng không có banỏ đảm rằng

nó sẽ xảy ra.

Chương trình 8.8 điển hình cho garbage collection.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.