java之包装类

包装类

1.所有基本数据类型的包装类

在java中,数据类型分为:基本数据类型和引用数据类型。而包装类就是对基本数据类型进行包装,使其具有引用数据类型的特征,并添加一些方法可供使用。

基本数据类型包装类型
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean
charCharacter

2.数据的装箱与拆箱

装箱:将基本数据类型转为包装类型

//1.用包装类的构造方法
Integer i = new Integer(10);

//2.使用valueOf方法
Integer i2 = Integer.valueOf(10);

拆箱:就是将包装类型转为基本数据类型

//1.intValue
int n = i.intValue();

自动装箱与自动拆箱
JDK1.4后,装箱和拆箱是可以自动完成的

//自动装箱
Integer i3 = 10;

//自动拆箱
int n2 = i3;

3.基本数据类型与字符串之间的转换

基本数据类型转为字符串类型

//1.此方法可以实现,但是不推荐使用(开辟新的空间)
String s = 10 + "";

//2.使用String类的valueOf方法
String s1 = String.valueOf(100);//"100"
String s2 = String.valueOf(false);//"false"

//3. Object类的toString方法
String s3 = Integer.valueOf(100).toString();

字符串类型转为基本数据类型

//1.包装类的parseXXX 方法
int i = Integer.parseInt("123");
System.out.println(i + 1);//输出124而不是1231说明转换成功

//2.包装类的valueOf方法
int i2 = Integer.valueOf("123");//这个隐藏实现了自动拆箱
System.out.println(i2 + 1);//输出124而不是1231说明转换成功

注意事项:

  • 字符串如果无法转型为想要的类型会抛出异常
//无法转为int类型,抛出了NumberFormatException异常
int i = Integer.parseInt("123a");
System.out.println(i);
  • 对于boolean的转型:只有true字符串能转为true,其他都为false
//字符串转为false
boolean b = Boolean.parseBoolean("123");
System.out.println(b);

//字符串true转为true,跟大小写无关,TrUe也能转换成功
boolean b2 = Boolean.parseBoolean("true");
System.out.println(b2);

4.案例

Integer a1 = Integer.valueOf(10);
Integer a2 = Integer.valueOf(10);
System.out.println(a1 == a2);//结果为true

Integer a3 = Integer.valueOf(200);
Integer a4 = Integer.valueOf(200);
System.out.println(a3 == a4);//结果为false

为什么结果会不同呢?
按住Ctrl点击valueOf看源码,可以知道,系统对-128到127做了特殊处理,将他们的Integer对象存在了一个数组中,每次都去取对应的Integer对象,所以每次取到的10的包装类型都是同一个,所以a1 == a2是true;而超过127的数,是没有做处理的,也就是做直接返回new Integer(),每次都产生一个新的对象,他们自然不是同一个对象了。所以a3 == a4是false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值