What are the uses of final, finally and finalize in java?

Answer Posted / javamasque

final: It is used to stop modifying further. It is used before class (top-level/inner), variable (class/instance) and method.
If class become final, it never be sub-classed.
If variable become final, it never be modified through the program or application.
If method become final, it never be override.

finally: It is used to release resources with try or try-catch block. It is always executed block irrespective of throw or return statement. It can be only stopped with infinite loop or System.exit(0). Previously file handling code used finally block to close InputStream or OutputStream object. Now finally block is not used to close these object. They are implicitly auto closed as they are implementing AutoClosable interface.

finalize(): As we override the protected finalize method to release resources. It is the final step where we can release resource (means either nullify the object or close the stream objects etc.). It is called before GC .But issue is the below points,
•There is no guarantee that it will be called or if called the resource will be released by GC immediately.
•We should not completely rely on this way of releasing memory.
•We can urge JVM to execute our finalize method with below statements but it has no guarantee that the objects will be freed immediately by GC.
System.runFinalization() OR Runtime.getRuntime().runFinalization()

Is This Answer Correct ?    5 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What is a container in a gui?

736


What are strings in physics?

770


What are synchronized methods ?

834


How does linkedhashmap work in java?

704


Why enumeration is faster than iterator?

717


What are the parts of methodology?

747


What is visibility mode?

733


Can a class be private or protected in java?

801


What is the largest number a double can hold?

785


If you do not want your class to be inherited by any other class. What would you do?

781


What is the difference between this() and super() in java?

774


What is a finally block? Is there a case when finally will not execute?

754


What are the different access modifiers available in java?

799


Why is the main method declared static?

856


Can a constructor call another constructor?

763