In Java I have 2 Data Types 1) primitive (built-in) int, double, char, etc 2) Object (created) by calling a constructor (new) an Object starts out as "null" this has several effect in our code 1) I will NEVER get a NullPointException when using a primitive I WILL get a NullPointException when using a Object 2) I MUST construct and Object I just start using a primitive 3) I can check primitive for equality using '==' I MUST call a method to check Object for equality this check: String s ... String t ... if (s == t) <- is checking are they the same address (object) in memory if (s.equals(t)) <- is calling a method to check contents