The keyword "final" in Java is used in many  ways with a main reason that the tagged with final key word can't be extended when it s a class or can't be overridden when it s method or can't be changed when it is a field/variable.

the method or a field declared with final can't be instantiated or overridden. 

This code explain brief, abut final method

public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
process("hi eclipse calling from static");
process_final pf = new process_final();
System.out.println("final field" +pf.w);
//pf.w = 13;
System.out.println("protected field : " +pf.n2);
static void process(String str)
class process_final
final int w = 12;
private int n1 = 10;
protected int n2 = 14;
public final void final_method()
System.out.println("final method : " +n2);