Imagine you have a row of empty labeled jars on a shelf.
Before you can taste what's inside, you have to put something in first — that's exactly how variables work in Java.
Every variable is a jar with a name, and the assignment operator `=` is your way of filling it.
When you write `int score = 95;`, you're creating a jar called `score` and dropping the value 95 inside.
The right side of the `=` is always evaluated first — Java figures out what that expression boils down to as a single value, then stores it on the left.
So `int total = score + 5;` doesn't store the formula; it calculates 100 and stores *that*.
Change `score` later, and `total` stays 100.
This trips up almost everyone at first.
One critical rule: you can never use a jar before you've filled it.
Java will refuse to compile if you try to read from an uninitialized variable.
And for reference types — variables that point to objects rather than holding simple numbers — you can assign them `null`, which is Java's way of saying "this jar is intentionally empty; it doesn't point to anything yet." Think of `null` as a label on an empty jar reading *"nothing here."* Understanding that the right side resolves to a single value before anything gets stored is the key insight that unlocks nearly every assignment problem you'll see on the exam.