You've probably seen a tutorial that goes: "int stores numbers, String stores text, boolean is true or false — moving on!" And then you're left writing code, wondering why Java has 8 integer-ish things, why your float math is slightly wrong, or the difference between a field and a local variable actually is.

This isn't that tutorial.

We're going deep — memory sizes, JVM storage, when to pick what, and the stuff even experienced devs sometimes get fuzzy on. Buckle up.

What Even Is a "Data Type"?

Before we split into primitive vs non-primitive, let's just get this straight.