The volatile keyword in Java signals that a variable is being stored in memory. Every thread that accesses a volatile variable will read it from main memory ensuring all threads see the same value for the volatile variable.