Tất cả những gì bạn cần biết về Final, Final và Final trong Java



Bài viết này về Final, Cuối cùng và Finalize trong Java sẽ cung cấp cho bạn danh sách đầy đủ về sự khác biệt giữa các từ khóa Final, Cuối cùng và Finalize cùng với các triển khai thực tế.

Nếu bạn có bất kỳ kinh nghiệm nào trước đây về , thì bạn có thể nhận thấy rằng những người phỏng vấn có xu hướng hỏi những câu hỏi phức tạp thường được chọn lọc từ những khái niệm cơ bản. Một câu hỏi thường được đặt ra là phân biệt giữa cuối cùng, cuối cùng và cuối cùng trong . Thông qua phương tiện của bài viết này, tôi sẽ vẽ ra một ranh giới rõ ràng giữa cuối cùng, cuối cùng và cuối cùng trong Java để giúp bạn có được những hiểu biết tốt hơn.

Trong bài viết này, tôi sẽ đề cập đến các chủ đề sau:





Vì vậy, hãy bắt đầu với từ khóa đầu tiên trong số cuối cùng, cuối cùng và cuối cùng trong Java.

Từ khóa cuối cùng

Trong Java, final là một từ khóa cũng có thể được sử dụng như một công cụ sửa đổi quyền truy cập. Nói cách khác, từ khóa cuối cùng được sử dụng để hạn chế quyền truy cập của người dùng. Nó có thể được sử dụng trong các ngữ cảnh khác nhau như:



  1. Biến cuối cùng
  2. Phương pháp cuối cùng
  3. Lớp cuối cùng

Với mỗi điều này, từ khóa cuối cùng có tác dụng khác nhau. Bây giờ chúng ta hãy xem nó ảnh hưởng như thế nào đến từng cái một.

1. Kết thúc biến

Bất cứ khi nào từ khóa cuối cùng trong được sử dụng với một biến, trường hoặc tham số, điều đó có nghĩa là khi tham chiếu được truyền vào hoặc quá trình khởi tạo được thực hiện thì giá trị của nó không thể thay đổi trong suốt quá trình thực thi chương trình. Trong trường hợp a mà không có bất kỳ giá trị nào được khai báo là cuối cùng thì nó được gọi là biến cuối cùng trống / chưa được khởi tạo và chỉ có thể được khởi tạo thông qua một phương thức khởi tạo.

Bây giờ chúng ta hãy xem một ví dụ.



public class A {int var1 = 123 // khai báo các biến cuối cùng final int var2 = 345 final int var3 // Cố gắng khởi tạo một biến cuối cùng trống var = 555 // Lỗi A () {var1 = 111 // Không có lỗi var2 = 333 // Lỗi biên dịch // Khởi tạo biến cuối cùng trống var3 = 444 // Không có lỗi} // truyền tham số cuối cùng void avg (int param1, final int param2) {param1 = 2345 // Không có lỗi param2 = 1223 // Lỗi biên dịch} // khai báo các trường cuối cùng void show () {final int fieldVal = 300000 fieldVal = 400000 // Error}}

Vì vậy, đây là tất cả về cách từ khóa cuối cùng ảnh hưởng đến một biến, bây giờ hãy xem cách một phương pháp bị ảnh hưởng bởi nó.

2. Phương pháp cuối cùng

Trong Java, bất cứ khi nào một phương thức được khai báo là cuối cùng, nó không thể được bởi bất kỳ lớp con nào trong suốt quá trình thực hiện chương trình.

Hãy xem một ví dụ.

// FINAL METHOD class A {final void method_abc () {System.out.println ('Đây là một phương thức cuối cùng và không thể bị ghi đè')} void method_xyz () {System.out.println ('Đây là một phương thức bình thường và có thể bị ghi đè ')}} lớp B mở rộng A {void method_abc {// Lỗi thời gian biên dịch} void method_xyz () {System.out.println (' Đây là phương thức được ghi đè trong lớp B ')}}

Cho đến bây giờ bạn đã thấy kết quả của việc khai báo một biến và một phương thức cuối cùng, bây giờ hãy tiến xa hơn và xem điều gì sẽ xảy ra khi một lớp được khai báo là cuối cùng trong Java.

3. Lớp cuối cùng

Trong Java, bất cứ khi nào một lớp được khai báo là cuối cùng, nó không thể . Điều này là do, khi một lớp được khai báo là cuối cùng, tất cả các thành viên dữ liệu và phương thức chứa trong lớp sẽ được khai báo ngầm là cuối cùng. Ngoài ra, khi một lớp được khai báo là cuối cùng thì nó không thể được khai báo là trừu tượng nữa. Nói cách khác, một lớp có thể là một trong hai, cuối cùng hoặc trừu tượng.

Hãy xem một ví dụ.

// FINAL CLASS cuối cùng lớp A {// lớp body} lớp B mở rộng A {// Lỗi biên dịch // lớp thân}

Tôi hy vọng bây giờ, bạn đã hiểu rõ ràng hoạt động của từ khóa cuối cùng. Vì vậy, bây giờ chúng ta hãy tiếp tục với bài viết này về cuối cùng, cuối cùng và hoàn thiện trong Java để tìm hiểu vai trò của từ khóa cuối cùng.

Cuối cùng là Chặn

Trong Java, cuối cùng là một khối tùy chọn được sử dụng cho . Nó thường được đặt trước bởi một khối try-catch. Cuối cùng khối được sử dụng để thực thi một mã quan trọng như dọn dẹp tài nguyên hoặc giải phóng bộ nhớ, v.v. Một khối cuối cùng sẽ được thực thi bất kể thực tế có xử lý ngoại lệ hay không. Vì vậy, gói các mã dọn dẹp trong một khối cuối cùng được coi là một phương pháp hay. Bạn cũng có thể sử dụng nó với một khối thử mà không cần bất kỳ khối bắt nào cùng với nó.

Bây giờ chúng ta hãy xem một ví dụ về điều tương tự.

class A {public static void main (String args []) {try {System.out.println ('Try Block') ném new Exception ()} catch (Exception e) {System.out.println ('Catch Block') } cuối cùng {System.out.println ('Khối cuối cùng')}}}

Cho đến bây giờ, tôi đã thảo luận về các từ khóa cuối cùng và cuối cùng trong Java. Bây giờ chúng ta hãy làm sáng tỏ từ khóa cuối cùng trong số ba từ khóa đó là từ khóa finalize trong Java.

Hoàn thiện phương pháp

Finalize là một phương thức non-static được bảo vệ được định nghĩa trong lớp Object và do đó có sẵn cho bất kỳ và tất cả các đối tượng trong Java.Phương pháp này làđược gọi bởi bộ thu gom rác trước khi một đối tượng bị phá hủy hoàn toàn.Đôi khi,một có thể phải hoàn thành một số nhiệm vụ quan trọng như đóng một kết nối đang mở, giải phóng tài nguyên, v.v. trước khi nó bị phá hủy. Nếu những tác vụ này không được thực hiện, nó có thể làm giảm hiệu quả của chương trình. Do đó,bộ thu gom rác gọi nó cho các đối tượng không được tham chiếu nữa và đã được đánh dấu để thu gom rác.

Phương thức này được khai báo là bảo vệ để hạn chế việc sử dụng nó từ bên ngoài lớp. Nhưng bạn có thể ghi đè nó từ bên trong lớp để xác định các thuộc tính của nó tại thời điểm thu gom rác.

tạo một tham số trong hoạt cảnh

Hãy xem một ví dụ tương tự.

public class A {public void finalize () throws Throwable {System.out.println ('Object bị phá hủy bởi Garbage Collector')} public static void main (String [] args) {Edureka test = new Edureka () test = null System.gc ()}}

Với điều này, chúng ta sẽ kết thúc bài viết này về cuối cùng, cuối cùng và hoàn thiện trong Java. Để kết thúc điều này, tôi đã thêm một so sánh giữa tất cả ba từ khóa sẽ giúp bạn tìm nạp những khác biệt chính trong nháy mắt.

Bảng so sánh - Từ khóa cuối cùng so với cuối cùng và cuối cùng trong Java

Hệ số Sau cùng Cuối cùng Hoàn thiện
Định nghĩa Final là một từ khóa và được sử dụng làm công cụ sửa đổi quyền truy cập trong JavaCuối cùng là một khối trong Java được sử dụng để xử lý ngoại lệFinalize là một phương thức trong Java được sử dụng để thu gom rác
Ứng dụng Final trong Java được sử dụng với các biến, phương thức và lớp để đặt quyền truy cậpCuối cùng khối được sử dụng cùng với khối thử và bắtPhương thức Finalize trong Java được sử dụng với các đối tượng không còn được sử dụng
Chức năng Biến cuối cùng trong Java là một hằng có giá trị không thể thay đổi sau khi được gán.

Các lớp con của nó không thể ghi đè phương thức cuối cùng trong Java.

Lớp cuối cùng trong Java không thể được kế thừa bởi bất kỳ lớp con nào.

Cuối cùng, khối trong Java giúp dọn dẹp các tài nguyên đã được sử dụng trong khối tryPhương thức Finalize giúp dọn dẹp các hoạt động cho đối tượng trước khi nó bị hủy bởi bộ thu gom rác
Chấp hành Nó được thực thi khi nó được gọi bởi trình biên dịchThực thi ngay sau khi thực thi khối try-catchNó thực thi ngay trước khi một đối tượng bị phá hủy

Tôi hy vọng thông qua Final, Final và Finalize trong Java này, tôi có thể hiểu rõ các khái niệm và giúp bạn thêm giá trị vào kiến ​​thức của mình.

Nếu bạn tìm thấy bài viết này về “Cuối cùng, Cuối cùng và Hoàn thiện trong Java ' liên quan, thích hợp, kiểm tra của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Có một câu hỏi cho chúng tôi? Hãy đề cập đến nó trong phần bình luận của điều này Cuối cùng, Cuối cùng và Hoàn thiện trong Java và chúng tôi sẽ liên hệ lại với bạn.