Câu hỏi

Trong Java khối finally khác phương thức finalize() như thế nào?

Câu trả lời

Trong Java, khối finally và phương thức finalize() đều liên quan đến quá trình xử lý và dọn dẹp tài nguyên, nhưng chúng có mục đích và cách sử dụng khác nhau:

Khối finally:

  • Mục đích: Khối finally được sử dụng trong quản lý ngoại lệ, cụ thể là với các khối try-catch. Nó chứa mã sẽ được thực thi bất kể ngoại lệ có xảy ra hay không trong khối try.
  • Cách sử dụng: Khối finally thường được sử dụng để dọn dẹp tài nguyên, như đóng kết nối mạng, đóng luồng nhập/xuất (I/O streams), hoặc giải phóng bất kỳ tài nguyên nào khác mà phương thức đã mở hoặc sử dụng, đảm bảo rằng tài nguyên được giải phóng đúng cách ngay cả khi có ngoại lệ xảy ra.
  • Ví dụ:
    try {
        // Mã có thể phát sinh ngoại lệ
    } catch (Exception e) {
        // Xử lý ngoại lệ
    } finally {
        // Dọn dẹp tài nguyên, mã này sẽ được thực thi bất kể ngoại lệ có xảy ra hay không
    }

Phương thức finalize():

  • Mục đích: Phương thức finalize() là một phương thức được định nghĩa trong lớp Object, và nó được gọi bởi Garbage Collector của Java trước khi đối tượng bị thu gom rác. Mục đích của nó là cho phép một đối tượng thực hiện dọn dẹp cuối cùng trước khi bị hủy h...
Bạn cần đăng nhập để xem