Java是面向对象的一款编程语言,而创建一个对象是都是在堆中申请一块存储区域用于存放,然后通过栈中的引用来指向这个对象。然而我们在使用int 这种变量数据的时候为其申请对象这样是很浪费资源的,所以Java就像c++提供基本数据类型,如int,char等,直接在栈上存储,方便使用,使得Java运行更加高效。
当然前面也提到了Java是面向对象的语言,然而基本数据类型确不是对象,这在使用的时候有很多不方便,使用Java将每种基本数据类型设计相应的对应类,而这些对应的代表类就被称为包装类。
包装类可以自动装箱和自动拆箱
我们在实例化一个包装类可以用创建基本类型的写法是因为包装类可以自动装箱等价于new一个关键类,当包装类与数值型相比较时会自动拆箱转换成数值型与其比较。
int型中-128到127是先加载在缓存中的对象,所以每个数值对应一个对象,一旦超过这个数值范围,就会新建一个integer对象来存储,所以比较时候同一个数值会对应不同的对象。