Hi Jagan ,
for static final variables , you must keep 2 points in mind .
1. They can be either initialized at the time of declaration
OR
2. They can be initialized inside static block .
Reasons...........
1. final variables , whether instance or static , do not get default values .
2. You must know that instance initializer block is executed while creation of new object. If it is static final variable then it can be invoked without creating single object , which means that without single execution of instance initializer block.
If it is the case what would be the value of static final variable which is neither initialized at the time of declaration nor in static block.
That is why
Java restricts programmers that static final variables must be initialized at one of these two places .