Java allows the creation of blank finals, which are fields that are declared as final but are not given an initialization value.

In all case, the blank final must be initialized before it is used, and the compilers ensures this. However, blank finals provide much more

flexibility in the use of the final key word.

since, for example, a final field inside a class can now be different for each object, and yet it retains its immutable quality.

Blank finals must be initialized in the constructor