主旨

Java 有兩套型別系統:原始型別(primitive)與其對應的物件型別(boxed primitive)。例如:

  • intInteger
  • doubleDouble
  • booleanBoolean

雖然 autoboxing 看似無縫,但事實上這兩種型別在「效能、null 安全性、== 比較」上都有重大差異。
原則很簡單:如果可以用 primitive,就不要用 boxed。