Open In App
Related Articles

Assigning values to static final variables in Java

Improve Article
Improve
Save Article
Save
Like Article
Like

Assigning values to static final variables in Java: 
In Java, non-static final variables can be assigned a value either in constructor or with the declaration. But, static final variables cannot be assigned value in constructor; they must be assigned a value with their declaration.
For example, following program works fine. 
 

Java




class Test {
 
    // i could be assigned a value here
    // or constructor or init block also.
    final int i;
    Test()
    {
        i = 10;
    }
 
    // other stuff in the class
}


If we make i as static final then we must assign value to i with the declaration. 
 

Java




class Test {
 
    // Since i is static final,
    // it must be assigned value here
    // or inside static block .
    static final int i;
    static
    {
        i = 10;
    }
 
    // other stuff in the class
}


Such behavior is obvious as static variables are shared among all the objects of a class; creating a new object would change the same static variable which is not allowed if the static variable is final.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
 

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Last Updated : 14 Sep, 2021
Like Article
Save Article
Previous
Next
Similar Reads
Complete Tutorials