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

Can an arraylist be empty?

563


What is the indent key?

585


Write the algorithm to check the number non-leaf nodes in a tree.

583


What language is java written?

533


How to invoke external process in java.

559






what are the states associated in the thread? : Java thread

586


How many arguments can a method have java?

540


What is type inference in java8?

573


What is qualitative variable?

516


What is the difference between @before and @beforeclass annotation?

528


What is finalize()? Is finalize() similar to a destructor?

536


What is a native method in java programming?

522


Explain about main thread in java?

606


What is fundamental datatype?

523


Explain the JDB in depth & command line.

565