Sự khác biệt chính - Người thu gom rác và Người phá hủy
Hầu hết các ngôn ngữ lập trình đều hỗ trợ Lập trình hướng đối tượng. Nó là một phương pháp luận để xây dựng một chương trình hoặc một phần mềm bằng cách sử dụng các đối tượng. Một đối tượng được tạo bằng cách sử dụng một lớp, vì vậy nó là một thể hiện của một lớp. Một lớp cung cấp mô tả về những gì đối tượng nên bao gồm. Khi tạo các đối tượng, bộ nhớ được cấp phát cho các đối tượng. Bộ nhớ được cấp phát sẽ được giải phóng vào cuối quá trình thực thi chương trình để sử dụng lại bộ nhớ đó cho một số đối tượng khác. Các ngôn ngữ lập trình như Java và C. NET sử dụng bộ thu gom rác để quản lý bộ nhớ trong khi các ngôn ngữ như C và C ++ yêu cầu người lập trình xử lý việc quản lý bộ nhớ. Lượng bộ nhớ cần thiết sẽ được cấp phát và khi kết thúc quá trình thực thi, bộ nhớ sẽ được giải phóng. Bộ thu gom rác và bộ hủy được sử dụng để giải phóng bộ nhớ. Sự khác biệt chính giữa bộ thu gom rác và bộ hủy là bộ thu gom rác là một phần mềm thực hiện quản lý bộ nhớ tự động trong khi bộ hủy là một phương thức đặc biệt được bộ thu gom rác gọi trong quá trình tiêu hủy đối tượng.
Công cụ thu gom rác là gì?
Một số ngôn ngữ lập trình có môi trường mã được quản lý. Trong ngôn ngữ lập trình Java và C, quản lý bộ nhớ tự động được thực hiện. Người lập trình không cần phải giải phóng bộ nhớ được sử dụng bởi các đối tượng. Họ sẽ dễ dàng phát triển các hệ thống thậm chí phức tạp hơn vì việc quản lý bộ nhớ được thực hiện tự động. Trong các ngôn ngữ lập trình như C, C ++ và Objective C, chương trình sẽ giải phóng bộ nhớ của các đối tượng trở lại hệ thống. Các ngôn ngữ như Java và Ccó thể tìm ra các đối tượng không còn được sử dụng nữa. Sau đó, chúng giải phóng bộ nhớ được cấp phát cho các đối tượng đó trở lại hệ thống.
Trong ngôn ngữ lập trình Cvà Java, nếu có một lớp gọi là Student, thì một đối tượng có thể được tạo bằng cách sử dụng Student s=new Student (); ‘Mới’ được sử dụng để tạo một thể hiện của lớp Sinh viên. Nó phân bổ bộ nhớ trong hệ thống. Ký tự ‘s’ đề cập đến khối bộ nhớ được cấp phát cho đối tượng đó. Môi trường ngôn ngữ xác định xem các đối tượng có đang được sử dụng hay không. Nếu chúng không được sử dụng thêm, bộ nhớ sẽ được giải phóng và có thể được sử dụng sau.
Hình 01: Bộ thu gom và tiêu hủy rác
Khi chạy một chương trình, các khối bộ nhớ được cấp phát từ nhóm bộ nhớ hệ thống. Sau đó, chương trình thực hiện các tác vụ bằng cách sử dụng bộ nhớ đó. Khi quá trình thực thi chương trình kết thúc, bộ thu gom rác sẽ tìm ra liệu các khối bộ nhớ được cấp phát cho chương trình có cần thiết hay không. Nếu chúng không được yêu cầu, các khối bộ nhớ đó sẽ được trả về hệ thống. Vì vậy, bộ thu gom rác có thể theo dõi các đối tượng được tạo trong chương trình. Các khối bộ nhớ không còn được yêu cầu sẽ được gửi trở lại vùng bộ nhớ hệ thống. Ưu điểm chính của quá trình này là xác nhận rằng lập trình viên không phải tập trung vào việc phân bổ bộ nhớ. Nó cân bằng giữa hiệu suất và việc sử dụng bộ nhớ.
Kẻ hủy diệt là gì?
Một hàm hủy là một hàm thành viên đặc biệt của một lớp. Nó được gọi bất cứ khi nào đối tượng đi ra khỏi phạm vi. Đối tượng có thể bị hủy khi một hàm kết thúc hoặc khi kết thúc quá trình thực thi chương trình. Hàm hủy có cùng tên với tên lớp. Hàm tạo được sử dụng để tạo đối tượng. Nó có thể chấp nhận các tham số. Hàm tạo cũng có thể có các giá trị trả về. Nhưng trong một Destructor, không có kiểu trả về hoặc chấp nhận các tham số. Một lớp chỉ có thể bao gồm một hàm hủy. Một hàm hủy được giới thiệu bằng cách sử dụng dấu ngã. Nếu tên lớp là Sinh viên, thì hàm hủy là ~ Sinh viên () {}.
Bộ thu gom rác tìm kiếm các đối tượng không cần thiết nữa. Nó đảm bảo rằng các đối tượng không còn được sử dụng bởi chương trình sẽ bị phá hủy. Nó gọi hàm hủy để giải phóng bộ nhớ và phân bổ tài nguyên. Bộ hủy rất hữu ích để giải phóng bộ nhớ, đóng tệp, giải phóng tài nguyên mạng và đóng các kết nối cơ sở dữ liệu. Trong hầu hết các ngôn ngữ lập trình, không cần thiết phải viết hàm hủy vì bộ thu gom rác tự gọi hàm tạo mặc định. Nếu lập trình viên đã thực hiện bất kỳ cấp phát bộ nhớ động nào bằng cách sử dụng con trỏ trong một ngôn ngữ như C ++, thì anh ta nên viết một hàm hủy để giải phóng bộ nhớ trước khi đối tượng bị hủy.
Điểm giống nhau giữa Máy thu gom rác và Máy tiêu hủy là gì?
Cả Bộ thu gom và Hủy rác đều được sử dụng để giải phóng bộ nhớ không còn cần thiết cho chương trình
Sự khác biệt giữa Công cụ thu gom và tiêu hủy rác là gì?
Người thu gom rác và Người phá hủy |
|
Trình thu gom rác là một phần mềm thực hiện quản lý bộ nhớ tự động. | Bộ hủy là một phương thức đặc biệt được bộ thu gom rác gọi trong quá trình hủy đối tượng. |
Loại | |
Trình thu gom rác là một phần mềm. | Hàm hủy là một phương thức. |
Tóm tắt - Người thu gom rác và Người phá hủy
Bộ thu dọn rác và bộ hủy là hai thuật ngữ liên quan đến việc giải phóng bộ nhớ. Bài viết này đã thảo luận về sự khác biệt giữa Trình thu gom rác và Trình hủy. Sự khác biệt giữa bộ thu gom rác và bộ hủy là bộ thu gom rác là một phần mềm thực hiện quản lý bộ nhớ tự động trong khi bộ hủy là một phương pháp đặc biệt được bộ thu gom rác gọi trong quá trình tiêu hủy đối tượng.
Tải xuống bản PDF của Garbage Collector vs Destructor
Bạn có thể tải xuống phiên bản PDF của bài viết này và sử dụng nó cho các mục đích ngoại tuyến theo ghi chú trích dẫn. Vui lòng tải xuống phiên bản PDF tại đây: Sự khác biệt giữa người thu gom rác và người tiêu hủy