Understanding finally, final, and finalize in Java
1. The final Keyword
The final keyword in Java is used to declare constants, prevent method overriding, and prevent inheritance. Here's how it works:
-   Final Variable: A variable declared as finalcannot be changed once initialized.
-   Final Method: A method declared as finalcannot be overridden by subclasses.
-   Final Class: A class declared as finalcannot be extended.
Example of final
        final int MAX_VALUE = 100; // constant value
        final void display() { ... } // cannot be overridden
        final class Constants { ... } // cannot be subclassed
2. The finally Block
The finally block is used in exception handling. It follows a try block and executes regardless of whether an exception is thrown or caught. This block is typically used for cleanup operations like closing database connections or file streams.
Example of finally
try {
        // code that may throw an exception
    } catch (Exception e) {
        // handle the exception
    } finally {
        // cleanup code that runs always
        System.out.println("This will always execute.");
    }
3. The finalize Method
The finalize method is a protected method of the Object class that is called by the garbage collector before an object is removed from memory. It's used for releasing resources or performing cleanup operations before the object is reclaimed.
Example of finalize
protected void finalize() throws Throwable {
    // cleanup code
    super.finalize();
}
Conclusion
In summary, final is a keyword for declaring constants and restricting inheritance, finally is used for executing a block of code after a try block, and finalize is a method for cleanup before an object is garbage collected. Understanding these concepts is essential for effective Java programming.
 

 
    
Top comments (2)
Never implement
finalizealso because it`s deprecated since JDK9 (docs.oracle.com/javase/9/docs/api/...) and very likely you will do the implementation wrong... also check youtube.com/shorts/esvDd8jTkHcthat is true, finalize is deprecated in java 9.