This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
The volatile keyword has to do with multi-threading. It's a bit hard to explain, but it gives you certain guarantees with regard to multiple threads, for example that when one thread has changed the value of a volatile variable, its new value is immediately visible to other threads (with non-volatile variables this is not always the case because of certain optimizations that the JVM might do). Section 184.108.40.206 of the Java Language Specification explains what it means exactly. If you want to know more about the subject, the book Java Concurrency in Practice is a very good book about multi-threading in Java.