People provided good points and recommendations, answering my question, answering the first part.
Turning to the second part of the question, I read on some forum:
A volatile declared long atomic (pre-Java 5 also) in the sense that it guarantees (for all JVM implementations) read or write directly to main memory instead of two 32-bit registers.
and
Pre-Java 5, volatile . , . , , JDK 1.4, , JDK 5, , -.
Java Language, Second Edition:
17.4
, , , .