Bộ sưu tập rác trong Java là gì?

Mục lục:

Anonim

Bộ sưu tập rác trong Java là gì?

Thu gom rác trong Java là một quá trình mà các chương trình thực hiện quản lý bộ nhớ một cách tự động. Bộ thu gom rác (GC) tìm các đối tượng không sử dụng và xóa chúng để lấy lại bộ nhớ. Trong Java, việc cấp phát bộ nhớ động của các đối tượng được thực hiện bằng cách sử dụng toán tử mới sử dụng một số bộ nhớ và bộ nhớ vẫn được cấp phát cho đến khi có các tham chiếu cho việc sử dụng đối tượng.

Khi không có tham chiếu nào đến một đối tượng, nó được coi là không còn cần thiết nữa và bộ nhớ mà đối tượng chiếm giữ có thể được lấy lại. Không cần phải hủy một đối tượng một cách rõ ràng vì Java tự động xử lý việc hủy cấp phát.

Kỹ thuật thực hiện điều này được gọi là Thu gom rác . Các chương trình không cấp phát bộ nhớ cuối cùng có thể bị sập khi không còn bộ nhớ trong hệ thống để cấp phát. Các chương trình này được cho là bị rò rỉ bộ nhớ.

Việc thu gom rác trong Java diễn ra tự động trong suốt thời gian tồn tại của chương trình, loại bỏ nhu cầu phân bổ bộ nhớ và do đó tránh rò rỉ bộ nhớ.

Trong ngôn ngữ C, lập trình viên có trách nhiệm khử cấp phát bộ nhớ được cấp phát động bằng cách sử dụng hàm free (). Đây là nơi dẫn đầu việc quản lý bộ nhớ Java.

Lưu ý: Tất cả các đối tượng được tạo trong Phần Heap của bộ nhớ. Tìm hiểu thêm về điều này trong một hướng dẫn sau.

Ví dụ: Để tìm hiểu cơ chế thu gom rác trong Java

Bước 1) Sao chép mã sau vào trình chỉnh sửa.

sinh viên lớp {int a;int b;public void setData (int c, int d) {a = c;b = d;}public void showData () {System.out.println ("Giá trị của a =" + a);System.out.println ("Giá trị của b =" + b);}public static void main (String args []) {Student s1 = new Student ();Student s2 = new Student ();s1.setData (1,2);s2.setData (3,4);s1.showData ();s2.showData ();// Sinh viên s3;// s3 = s2;//s3.showData ();// s2 = null;//s3.showData ();// s3 = null;//s3.showData ();}}

Bước 2) Lưu, Biên dịch và Chạy mã. Như thể hiện trong sơ đồ, hai đối tượng và hai biến tham chiếu được tạo.

Bước 3) Dòng bỏ ghi chú # 20,21,22. Lưu, biên dịch và chạy mã.
Bước 4) Như thể hiện trong sơ đồ dưới đây, hai biến tham chiếu đang trỏ đến cùng một đối tượng.

Bước 5) Bỏ ghi chú dòng # 23 & 24. Biên dịch, Lưu & Chạy mã
Bước 6) Như hiển thị trong sơ đồ dưới đây, s2 trở thành null, nhưng s3 vẫn đang trỏ đến đối tượng và không đủ điều kiện để thu gom rác java.

Bước 7) Bỏ ghi chú dòng # 25 & 26. Lưu, Biên dịch & Chạy mã
Bước 8) Tại thời điểm này, không có tham chiếu nào trỏ đến đối tượng và đủ điều kiện để thu gom rác. Nó sẽ bị xóa khỏi bộ nhớ và không có cách nào lấy lại được.

Làm thế nào để xóa một đối tượng trong Java?

1) Nếu bạn muốn làm cho đối tượng của mình đủ điều kiện cho Bộ sưu tập rác, hãy gán biến tham chiếu của nó thành null.
2) Các kiểu nguyên thủy không phải là đối tượng. Chúng không thể được gán null.