Volatile Keyword in Java — Java Technical Interview Questions & Answers
Volatile Keyword in Java
Volatile Keyword in Java
- Volatile Keyword is part of Java concurrency. A thread is a path of work inside a process. Create with Thread or Runnable, then call start() — not run(). run() only runs on the same thread.
- For Volatile Keyword: if two threads share data, synchronize or the result can be wrong. sleep pauses. join waits for another thread to finish. daemon threads die when all user threads finish.
- Volatile Keyword deadlock: two threads wait for each other’s lock forever. Avoid by locking in the same order. Don’t guess thread order — it can change every run.
- Let's take this on the board with one tiny Main class — no extra files. Volatile Keyword in Java — final, boolean, if, true are keywords used with normal meaning. Start from main, go line by line, and stop at each print. That output is the proof for Volatile Keyword.
Technical Interview Tip: Give 5 keywords from different groups: access, type, control, modifier, package.
Code Examples for Volatile Keyword in Java
Example
// Keywords in real code
public class Main {
public static void main(String[] args) {
final int MAX = 10; // final is a keyword
boolean ok = true; // boolean / true are keywords
if (ok) {
System.out.println("MAX = " + MAX);
}
}
}Volatile Keyword in Java — final, boolean, if, true are keywords used with normal meaning.
How to Explain Volatile Keyword in Java to an Interviewer
What is Volatile Keyword?
Volatile Keyword — thread = one path of work. start() schedules it. run() does not. Volatile Keyword — shared data needs synchronization. Volatile Keyword — sleep = pause. join = wait for other thread.
Why do we use Volatile Keyword in Java?
Makes the program clearer or safer Volatile Keyword — thread = one path of work. start() schedules it. run() does not.
Write one small example of Volatile Keyword.
Show syntax Say what prints
What mistake do beginners make with Volatile Keyword?
Only the name, no example Volatile Keyword — calling run() instead of start(). Deadlock = locks in wrong order.
Where is Volatile Keyword used in a real program?
Day-to-day Java code