要想搞清楚int和integer的区别,需要先搞清楚什么叫包装类。
虽然 Java 语言是典型的面向对象编程语言,但其中的 8 种基本数据类型并不支持面向对象的编程机制,基本类型的数据不具备“对象”的特性--不携带属性、没有方法可调用。沿用它们只是为了迎合人类根深蒂固的习惯,并的确能简单、有效地进行常规数据处理。这种借助于非面向对象技术的做法有时也会带来不便,比如引用类型数据均继承了Object 类的特性,要转换为 String 类型时只要简单调用 Object 类中定义的 toString()即可,而基本数据类型转换为 String 类型则要麻烦得多。为解决此类问题,Java语言引入了封装类的概念,在 JDK 中针对各种基本数据类型分别定义相应的引用类型,并称之为包装类(Wrapper Classes) 。
下表描述了基本数据类型及对应的包装类: