Arun Singh Raaj wrote: . . . A blank final variable : . . .
That isn't blank; that field is initialised before the constructor completes. This is a blank field:-The compiler won't like that and that class won't compile as it stands.
If multiple users . . . are accessing this variable concurrently . . . then how would they assign their own values to this variable?
You can't assign a final field twice; it will fail to compile.See, final variables, so final that you can even use the variable in a λ, and see it will reliably count to 200,000,000 showing you whether it is thread‑safe or not.
I think it is in his book Core Java SE9 for the Impatient that Cay Horstmann points out that sort of race condition occurs much worse with modern multi‑core processors than it used to with single‑core processors. Yes, that is the right reference: page 345.
"final" simply means you can assign a value exactly once. Either when the variable is declared or in a constructor (but not both). It is then forever after immutable. Not quite like "const" in C, but close. You can also declare method-local variables as final, but they are destroyed when you exit the method or block you declared them in.
But final is only a modifier for variables. The actual variable may be immutable, but if it's a member variable, you have a separate copy of it for each instance of the class. If you declare it "static final", then there will be one and only one instance of that variable for all instances of the class (and for access in a static context). No difference between final static and ordinary static except for its mutability.
Blitzlügen - Lies or information broadcast, but when called out the broadcaster does little or nothing is done to correct them, thus allowing those who wish to believe to accept them as truth.
Lügensturm - A barrage of Blitzlügen fired in such quick succession that it is essentially impossible to correct them all.