Có bốn loại tham chiếu khác nhau dựa trên cách thức thu thập dữ liệu.
- Tham khảo mạnh mẽ
- Tham chiếu yếu
- Tham chiếu mềm
- Tham chiếu bóng ma
Tham khảo mạnh mẽ
Nó là loại đối tượng tham chiếu mặc định. Không thể thu thập một đối tượng có tham chiếu mạnh đang hoạt động. Chỉ có thể nếu biến được tham chiếu mạnh trỏ tới null. Hãy để chúng tôi xem một ví dụ -
Ví dụ
class Demo { //Some functionality } public class Demo_example{ public static void main(String[] args){ Demo my_inst = new Demo(); my_inst = null; } }
Tham chiếu yếu
Chúng không phải là lớp mặc định của đối tượng tham chiếu, do đó cần phải được chỉ định rõ ràng. Nó thường được sử dụng với WeakHashmap, để tham chiếu đến các đối tượng mục nhập. Các tham chiếu yếu như vậy được Máy ảo Java đánh dấu thu thập rác. Các tham chiếu như vậy được tạo bằng lớp ‘java.lang.ref.WeakReference ’.
Hãy để chúng tôi xem một ví dụ -
Ví dụ
import java.lang.ref.WeakReference; class Demo{ public void display_msg(){ System.out.println("Hello"); } } public class Demo_sample{ public static void main(String[] args){ Demo inst = new Demo(); inst.display_msg(); WeakReference<Demo> my_weak_ref = new WeakReference<Demo>(inst); inst = null; inst = my_weak_ref.get(); inst.display_msg(); }
Đầu ra
Hello Hello
Một lớp có tên là Demo có một hàm tên là ‘display_msg’. Hàm này hiển thị một thông báo có liên quan. Trong một lớp khác có tên là ‘Demo_sample’, hàm chính được định nghĩa và một thể hiện của lớp Demo được tạo. Hàm ‘display_msg’ được gọi trên phiên bản. Yếu tố tham chiếu đến phân loại Demo được tạo và nội dung Demo được gán cho null, và hàm được gọi lại trên nó. Đầu ra có liên quan được hiển thị trên bảng điều khiển.