Java包装类

包装类

8个基本类型都有对应的包装类型,以方便基本类型也能继承Object类,以方便使用。

类型转换

自动拆箱和自动装箱

JDK 1.5以后提供了自动装箱和自动拆箱。

Integer x = 2;     // 装箱
int y = x;         // 拆箱

由于自动装箱,在需要Integer对象类型的参数时,填入int类型的参数会自动装箱为Integer类型;
由于自动拆箱,在需要int类型的参数时,填入Integer对象的参数会自动拆箱为int类型。

基本类型、包装类、String类型之间的转换

函数类型构造函数valueOftoStringxxxValueparseXxx
所属类包装类&String包装类&String包装类&String包装类包装类
参数类型基本类型;char[],byte[],int,StringBuilder基本类型;Object基本类型,空;空String类
返回值类型得到本类型得到本类型得到String类得到基本类型得到基本类型

由上表可知:
1、构造函数和valueOf都是包装类或String类到本类的转换
2、toString()为了得到String类型
3、只有包装类的函数可以直接得到基本类型,xxxValue()和parseXxxx()分别实现包装类的String类向基本类型的转换
4、包装类的valueOf()调用了自己的构造函数
  String的valueOf()调用包装类的toString();(避免了异常)
  所以本质上,得到包装类和String类就是根据包装类的构造函数String类的toString()

比较操作

  • 包装类引用和基本类型比较
Integer a = new Integer(6);
System.out.println(a>5.0); //输出true
  • 包装类引用间比较
    包装类实际上是引用类型,只有两个包装类引用指向同一个对象时才会返回true,如:
Integer a = 128;
Integer b = 128;
System.out.println(a==b)//输出false

  但是,Integer内有一个cache缓存数组,缓存了-128127之间的整数。如果把-128127之间的整数自动装箱成Integer,实际上是直接指向cache数组中同一个元素。所以:

Integer a =2;
Integer b = 2;
System.out.println(a==b);	//输出true
  • 两个基本类型的比较
    包装类都提供的对应基本类型的比较函数:compare(基本类型1,基本类型2),如:
System.out.println(Boolean,compare(true,false)); //输出1
System.out.println(Boolean,compare(true,true));  //输出0
System.out.println(Boolean,compare(false,true)); //输出-1

参考文献

https://blog.csdn.net/u013453970/article/details/47414553 包装类

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值