面向对象系列九
包装类变量
一、装箱
1.实例化包装对象
2.静态缓存池
3.写法
二、拆箱
包装类变量
每个基本数据类型都有对应的基本类型的包装类变量,将基本数据类型通过对应的包装类对象载入着进入到类与对象面向对象体系
一、装箱
Integer.valueOf(int)
—> return Integer
实例化创建这个整数对应的包装似复刻变量对象
1.实例化包装对象
实例化包装类对象时,可以通过new Integer(int)实例化创建一个包含这个整数的包装类的似复刻变量,但我们一般都使用Integer类变量里面的静态方法valueOf(int)来实例化创建包上它这个整数的包装类对象
2.静态缓存池
每个包装类变量里面都有一个静态的数组引用变量成员cache[],它指向一个-128到127整数对应好已创建的包装类似复刻变量的似复刻变量引用数组,共装有256个已创好的包装类似复刻变量引用,直接已经创好可以直接供对应的-128~127这些整数使用的
用Integer.valueOf(int) 调用创建-128~127对应的包装似复刻变量的时候,它是直接返回数组引用里指向的对应已创好的似复刻变量引用,因此调用valueOf取包装类对象时-128~127整数的对应包装类对象是不用去创建直接取到的效率会很快,如果调用valueOf创建对象的数字在-128~127以外的,就会去new创建新的包装类对象去实现包装
3.写法
Integer iger = 10;其实是省略了Integer静态方法valueOf的调用
—> Integer.valueOf(10) return Integer,即实现了自动装箱
二、拆箱
iger.intValue()
—> return int
将此包装类对象里面装的基本类型数据返回
此方法是非静态方法,使用时也是省略隐式写的:
double a = iger;省略了它非静态方法的调用
—> double a = iger.intValue() return int
包装类里面只有它对应基本类型数据的转化方法,即iger只有intValue整型包装类转对应整型数据的方法,它这里是先通过iger.intValue()返回了整数10,然后整数10进行了int向double的隐式类型提升