Final in Java is used to declare a class that can’t be subclassed, a method that can’t be overridden, or …
A final variable means the value won’t change, but the value can still be determined at run time:
final int i; if ( j > 0 ){ i =1; } else { i = 2; }
You get a compile time error if the final variable isn’t definitely unassigned anytime you assign to it:
final int i; if(j>0){ i=1; } if(a<10){ i=1; }
In C#, a "const" must be determined at compile time.