包装类和拆箱装箱
什么是包装类
- 基本数据类型所对应的引用数据类型
- 都是继承的Number类
用处
- 把原本放在栈中的数据放在堆中并且可以调用一些比较常用的方法eg.
装箱
- 用包装类的构造方法进行装箱 eg. new Integer(int value)
- 用包装类的方法装箱 eg. Integer.valueof(int value);
- 自动装箱
int age = 10; Integer integer4= age;
实际上自动装箱用的是Integer integer4 = Integer.valueOf(age)而不是构造方法
面试题 整数缓冲区
- 实际上valueOf()方法是用了Integer.cache()方法,而cache方法实际上是静态方法,即在类一加载的时候就在堆内有一块连续的数组的数据,而valueOf()会返回一个堆内地址赋给Integer类的对象;但是这个数组只从-128到127,如果超过这个范围,valueOf就不是返回在堆中已经创建的数组了,而是自己new一块地方返回给Integer类的对象


拆箱
- xxxValue()用于拆箱
- 自动拆箱
int age=integer4;
本文章使用limfx的vscode插件快速发布