I'm reading "Effective Java Second Edition" by Joshua Bloch and im confused by below statement with regard to concurrency -
"The language specification gaurantees that reading or writing a variable is atomic unless the variable is of type long or double[JLS, 14.4.7]. In other words, reading a variable other than a long or double is gauranteed to return a value that was stored into that variable by some thread, even if multiple threads modify the variable concurrently and without synchronization."
This is stated on last paragraph of page 259 in case anyone has book on hand.
Will the variable referred to not always have a value even if multiple threads are modifying it ?