Dọn dẹp: kết thỳc và thu rỏc

Một phần của tài liệu Lập trình hướng đối tượng trong Java (Trang 75 - 77)

1. Phương thức finalize

Java khụng cú phương thức hủy bỏ. Phương thức finalize tương tự như phương thức hủy bỏ của C++, tuy nhiờn nú khụng phải là phương thức hủy bỏ. Sở dĩ nú khụng phải là phương thức hủy bỏ vỡ khi đối tượng được hủy bỏ thỡ phương thức này chưa chắc đó được gọi đến. Phương thức này được gọi đến chỉ khi bộ thu rỏc của Java được khởi động và lỳc đú đối tượng khụng cũn được sử dụng nữa. Do vậy phương thức finalize cú thể khụng được gọi đến.

2. Cơ chế gom rỏc của java

Người lập trỡnh C++ thường sử dụng toỏn tử new để cấp phỏt động một đối tượng, nhưng lại thường quờn gọi toỏn tử delete để giải phúng vựng nhớ này khi khụng cũn dựng đến nữa, điều này làm rũ rỉ bộ nhớ đụi khi dẫn đến chương trỡnh phải kết thỳc một cỏch bất thường, quả thật đõu là một điều tồi tệ. Trong java ta khụng cần quan tõm đến điều đú, java cú một cơ chế thu rỏc tự động, nú đủ thụng minh để biết đối tượng tượng nào khụng dựng nữa, rồi nú tự động thu hồi vựng nhớ dành cho đối tượng đú.

Trong ngụn ngữ C++ khi một đối tượng bị phỏ huỷ, sẽ cú một hàm được gọi tự động, hàm này được gọi là huỷ tử hay cũn gọi là hàm huỷ, thụng thường

hàm hàm huỷ mặc định là đủ là đủ để dọn dẹp, tuy nhiờn trong một số trường hợp thỡ hàm huỷ mặc định lại khụng thể đỏp ứng được, do vậy người lập trỡnh C++, phải viết ra hàm huỷ riờng để làm việc đú, tuy nhiờn java lại khụng cú khỏi niệm hàm huỷ hay một cỏi gỡ đú tương tự.

BÀI 3 CÁC THÀNH PHẦN TĨNH

Một phần của tài liệu Lập trình hướng đối tượng trong Java (Trang 75 - 77)