包装类和拆箱装箱

什么是包装类

  • 基本数据类型所对应的引用数据类型
  • 都是继承的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插件快速发布