包装类

概述:java是面向对象语言,在实际的开发中经常需要把基本数据类型转为对象。所以包装类(Wrapper class)的作用就是把基本类型转为包装类型(对象)。

关于基本类型和包装类型请看表格:

基本类型

包装类型

byte

Byte

short

Short

int

Integer

long

Long

float

Float

double

Double

boolean

Boolean

char

Character

除Boolean和Charcater以外,其它六个包装类都继承了Number类

让我们查看Number类的源码,在idea中按照下图操作。

查看Number类的所有方法

图中六个方法都是抽象方法,所有继承的包装类必须重写。

示例:

装箱拆箱

概述:JDK1.5后提供的功能。

  • 自动装箱:基本类型转包装类型。

  • 自动拆箱:包装类型转基本类型。

示例:

==运算结果不一致是因为自动装箱的方法Integer.valueOf()。

我们去查看源码:

看到有一个IntegerCache再点进去

看到一个缓存数组,这些源码的意思是系统初始化时,会创建一个值在[-128,127]之间的数组,如果值是在这个范围内,则对象地址值一致(同一个对象)反之就是别的对象。

所以代码中a和b的对象值不一致,结果为false。

示例:

Last updated

Was this helpful?