Wish to have some nice time? Check out what I'm reading online!

Explain the Final Keyword in Java.

May 22nd, 2008
  • A java variable can be declared using the keyword final. Then the final variable can be assigned only once.
  • A variable that is declared as final and not initialized is called a blank final variable. A blank final variable forces the constructors to initialise it.
  • Java classes declared as final cannot be extended. Restricting inheritance!
  • Methods declared as final cannot be overridden. In methods private is equal to final, but in variables it is not.
  • final parameters – values of the parameters cannot be changed after initialization. Do a small java exercise to find out the implications of final parameters in method overriding.
  • Java local classes can only reference local variables and parameters that are declared as final.
  • A visible advantage of declaring a java variable as static final is, the compiled java class results in faster performance.

A discussion inviting controversy on java final keyword:

‘final’ should not be called as constants. Because when an array is declared as final, the state of the object stored in the array can be modified. You need to make it immutable in order not to allow modifcations. In general context constants will not allow to modify. In C++, an array declared as const will not allow the above scenario but java allows. So java’s final is not the general constant used across in computer languages.

A variable that is declared static final is closer to constants in general software terminology. You must instantiate the variable when you declare it static final.

Definition as per java language specification (third edition) – 4.12.4 is “A final variable may only be assigned to once.”(§4.1.2)

Java language specification tries to redefine the meaning of constant in the following way!
We call a variable, of primitive type or type String, that is final and initialized with a compile-time constant expression (§15.28) a constant variable. Whether a variable is a constant variable or not may have implications with respect to class initialization (§12.4.1), binary compatibility (§13.1, §13.4.9) and definite assignment (§16).

can you send me some of the sample program in java to explain java final

serin on December 19th, 2009 4:36 pm

please send me my mail id to what is final key word? and example java program esay to understand

vivek on December 21st, 2009 2:41 pm

java final nicely explained

gurjit on December 28th, 2009 1:27 pm

thanks for the explanation on final keyword in java. please send me more about applet

khalid ali on January 19th, 2010 5:55 am

please send to my mail id some of the sample programs of java using final keyword.

sanjay on January 26th, 2010 6:12 pm

I’ve used variations of question on java final on many interviews – it’s surprising how many head-scratchings you get from something like:

private final List list = new ArrayList();
list.add(“value”);

– does the above work? (e.g. does final keyword make the java collection immutable) or other variations like declaring method inputs final, etc.

Jason Shao on February 12th, 2010 4:09 pm

exelent defination for java final

Anonymous on February 23rd, 2010 3:23 pm

jason – private final List list here you are just making a reference list as final, the class ArrayList is not immutable so to have a immutable class you have to have all references immutable too…making it just final won’t make it immutable.

puran on March 19th, 2010 6:56 pm

Brief, to-the-point article. Thanks!

Hope this code helps:

class Another
{
final int xyz;
public Another()
{
xyz=1000;
}
public void display()
{
System.out.println(“XYZ=”+xyz);
}
}

public class FinalTest
{
static final int y=3;

public FinalTest()
{

}
static
{
System.out.println(“Just for fun…”);
}

public static void main(String[] args)
{
final int x=5;
System.out.println(“X=”+x);
System.out.println(“Y=”+y);

Another ano=new Another();
ano.display();
}

}

MiJ on March 31st, 2010 4:43 am

Good desc on java final keyword.. very useful .. :)

naveen on April 19th, 2010 3:45 pm

Simple explanation …easy understandable…

srinivas on May 10th, 2010 11:05 am

its really good stuff on one desk to get on for beginer’s knowledge

rahul singh on May 12th, 2010 8:58 am

can any one tel me for how to write a program for multiplication of 200 numbers wid another 200 numbers….plz……help or either giv some basic idea for hw to make dis program …m nt geting it

hitasha on May 23rd, 2010 3:01 pm

gud….got basic information about final keyword from it……thank u….

anusha on June 2nd, 2010 1:33 pm

thanks guys.

Joe on June 2nd, 2010 2:22 pm

firstly thanks on the explanation on java final keyword. because u explain terms in jsp and servlet very simple language.
please tell me about scriptless jsp.

pankaj on June 26th, 2010 10:24 am

very nicely explain…thanksss

debojit dey on July 16th, 2010 8:32 pm

I want to java program examples on final keywords

durgaprasad on July 17th, 2010 5:50 am





hidden and gravatar enabled.