Sự khác biệt giữa vứt bỏ () và hoàn thiện ()

Mục lục:

Sự khác biệt giữa vứt bỏ () và hoàn thiện ()
Sự khác biệt giữa vứt bỏ () và hoàn thiện ()

Video: Sự khác biệt giữa vứt bỏ () và hoàn thiện ()

Video: Sự khác biệt giữa vứt bỏ () và hoàn thiện ()
Video: 6 Khác biệt giữa người Ngu Dốt và kẻ Khôn Ngoan GIÁ NHƯ BIẾT SỚM HƠN! 2024, Tháng bảy
Anonim

Sự khác biệt chính - vứt bỏ () so với hoàn thiện ()

Sự khác biệt chính giữa dispose () và finalize () là dispose () phải được lập trình viên gọi một cách rõ ràng trong khi finalize () được gọi bởi bộ thu gom rác trước khi hủy đối tượng.

Disose () là một phương thức để đóng hoặc giải phóng các tài nguyên không được quản lý như tệp, luồng do một đối tượng nắm giữ. Finalize là một phương thức để thực hiện các hoạt động dọn dẹp tài nguyên không được quản lý của đối tượng hiện tại trước khi đối tượng bị phá hủy.

vứt bỏ () là gì?

Một trong những lợi thế quan trọng nhất của. NET framework là nó cung cấp tính năng thu gom rác tự động. Nó tự động giải phóng bộ nhớ của các đối tượng không được sử dụng. Trong các ngôn ngữ lập trình như C và C ++, lập trình viên phải tự xử lý việc quản lý bộ nhớ. Nhưng trong các ngôn ngữ như Cđược xây dựng trên. NET framework cung cấp bộ thu gom rác. Nó giúp quản lý bộ nhớ. Nó không thể được sử dụng để giải phóng tài nguyên bộ nhớ không được quản lý. Phương thức dispose () có thể được sử dụng để đạt được tác vụ này.

Sự khác biệt giữa dispose () và finalize ()
Sự khác biệt giữa dispose () và finalize ()

Phương thức dispose () có thể được sử dụng để giải phóng các tài nguyên như kết nối cơ sở dữ liệu, trình xử lý tệp, v.v. Phương thức này không được gọi tự động. Do đó, lập trình viên nên thực hiện phương pháp này. Ngay sau khi phương thức này được gọi, bộ nhớ cho tài nguyên không được quản lý cụ thể sẽ được giải phóng. Phương thức này được khai báo trong giao diện IDisposable.

Finalize () là gì?

Phương thức finalize chỉ được gọi bởi bộ thu gom rác khi tham chiếu đến một đối tượng không được sử dụng thêm. Phương thức này được gọi ngay trước khi hủy đối tượng. Phương thức này được thực hiện với sự trợ giúp của hàm hủy. Phương thức finalize được định nghĩa trong lớp java.lang.object. Phương thức này được khai báo là được bảo vệ. Nó không được khai báo là public để tránh bị các lớp khác truy cập. Nhìn chung, phương pháp finalize có thể giảm thiểu hiệu suất của chương trình vì nó không giải phóng bộ nhớ ngay lập tức.

Sự giống nhau giữa vứt bỏ () và hoàn thiện () là gì?

Cả hai phương pháp hủy () và finalize () đều có thể được sử dụng để giải phóng bộ nhớ được cấp cho tài nguyên không được quản lý

Sự khác biệt giữa vứt bỏ () và hoàn thiện () là gì?

vứt bỏ () so với cuối cùng ()

Disose () là một phương thức để đóng hoặc giải phóng các tài nguyên không được quản lý như tệp, luồng do một đối tượng nắm giữ. Finalize là một phương thức để thực hiện các thao tác dọn dẹp tài nguyên không được quản lý của đối tượng hiện tại trước khi đối tượng bị phá hủy.
Mục tiêu
Phương pháp xử lý được sử dụng để giải phóng các tài nguyên không được quản lý khi nó được gọi. Phương thức finalize được sử dụng để giải phóng các tài nguyên không được quản lý trước khi đối tượng bị phá hủy.
Giao diện xác định hoặc Lớp
Việc vứt bỏ () được định nghĩa trong giao diện IDisposable. finalize () được định nghĩa trong lớp java.lang.object.
Phương pháp mời
Phương thức xử lý do người lập trình gọi ra. Phương thức finalize được gọi bởi bộ thu gom rác.
Công cụ chỉ định quyền truy cập
Phương thức xử lý là công khai. Phương thức hoàn thiện cuối cùng được bảo vệ.
Tốc độ
Phương pháp xử lý được gọi ngay lập tức. Phương thức cuối cùng được gọi từ từ.
Hiệu suất
Việc vứt bỏ sẽ không giảm thiểu hiệu suất của chương trình. Phương thức hoàn thiện có thể giảm thiểu hiệu suất của chương trình.

Tóm tắt - vứt bỏ () so với cuối cùng ()

Bài viết này đã thảo luận về sự khác biệt giữa các phương pháp vứt bỏ và hoàn thiện trong C. Sự khác biệt giữa dispose () và finalize () là, dispose () phải được lập trình viên gọi một cách rõ ràng trong khi finalize () được gọi bởi bộ thu gom rác trước khi hủy đối tượng.

Đề xuất: