303 | 包装类

包装类 wrapper

包装类–针对八种基本数据类习性相应的引用类型
韩顺平java笔记

装箱和拆箱

  • 装箱: 基本类型->包装类型;拆箱:包装类型 ->基本类型
  • jdk5以前手动装箱和拆箱,jdk5以后自动装箱和拆箱
// 手动装箱
int n1 = 100;
Integer integer = Integer.valueOf(n1);
// 手动拆箱
int i = integer.intValue();
// 自动装箱
int n2 = 100;
Integer integer2 = n2; //底层仍使用的是 new Integer.valueOf
// 自动拆箱
int n3 = integer2; //底层仍使用的是 intValue方法
注意
Object obj1 = true? new Integer(1):new Double(2.0)
System.out.println(obj1); // 输出1.0,三元运算符是一个整体!!!!

包装类和String的转换

包装类(integer)-> String
Integer i = 100;
  • String str1 = i + "";
  • String str2 = i.toString();
  • String str3 = String.valueOf(str2);
String -> 包装类(integer)
String str1 = "1234";
  • Integer i1 = Integer.paeseInt(str1);// 自动装箱
  • Integer i2 = new Integer(str1);//构造器
  • Integer i3 = Integer.valueOf(str1);

Integer 常见题

public void method(){
	Integer i = new Integer(1);
	Integer j = new Integer(1);
	System.out.println(i==j) // false new的是两个不同对象

	Integer m = 1;
	Integer n= 1;
	System.out.println(m==n) // true 源码:在-128和127之间是直接返回类加载时已经创建好的对象,是同一个对象
	
	Integer m = 128;	
	Integer n= 128;
	System.out.println(m==n) // false 源码:不在范围内是new对象

	Integer x1 = 128;
	int y1 = 128;
	System.out.println(x1==y1) // true 因为有int基本类型在,判断的是值相等,而不是对象地址
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值