包装类-装箱和拆箱

包装类

特点:具有类的特点,可以调用相应类的方法
包装类是基于8种基本类型而封装的8个对象的包装类
基本类型包装类型
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean
装箱(基本类型转包装类型)
Integer num=10;
Integer num1=new Integer(10);
拆箱(包装类型转基本类型)
int num2=num;//自动类型转换
public class TestWraper {
	//基本类型、 包装类型转换 和String
	@Test
	public void test2() {
		//基本《-》String
		int i1 = 10;
		String s1 = String.valueOf(i1);
		int n1 = Integer.parseInt("12");
		System.out.println(s1);  //10
		System.out.println(n1);   //12
		
		//“1.23”
		double d1 = Double.parseDouble("1.23");
		System.out.println(d1);
		Integer i2 =100;
		System.out.println(i2.toString().length());  //3
	}
	
	//基本类型->包装类型转换
	@Test
	public void test1() {
		int i1=10;  // 基本类型
		Integer in1 = new Integer(i1);
		System.out.println(in1);  //10
		
		float f1 = 1.23f;
		Float fl1 = new Float(f1);
		System.out.println(fl1);   //1.23
		
		boolean b1 = true;
		Boolean bo1 = new Boolean(b1);
		System.out.println(bo1);   //true
		Boolean bo2 = new Boolean("falsesdfsd");
		System.out.println(bo2);   //false
	
		int n = in1.intValue();
		System.out.println(n);
		float f = fl1.floatValue();
		System.out.println(f);
		boolean b = bo1.booleanValue();
		System.out.println(b);
		jdk1.5
		//装箱(基本转包装) /    拆箱(包装转基本)   自动转换
		Integer in3 = 10;  //装箱
		int i3 = in3;      //拆箱
	}
}

1.装箱和拆箱:
	Integer i=10;//装箱:自动根据数值创建Integer对象将基本类型转换成包装器类型
	int n=i//拆箱:自动将包装器类型转换成基本数据类型
	
	1.1为什么需要装箱和拆箱?
			因为基本数据类型不是对象的情况下,就不能当成一个对象来使用,而基本数据类型
			装箱后就可以当做一个对象,来调用Object子类的接口而且基本数据类型是不能作为
			形参来使用的,虽然装箱和拆箱会稍微影响效率,但是提供了很多功能
			
	1.2装箱时调用的方法:
			装箱时自动调用的是valueOf(***)方法
			拆箱时自动调用的是***Value方法(***代表对应的基本数据类型)
			
	1.3 Integer的面试问题
			Integer i1=128;
			Integer i2=128;
				
			Integer i3=10;
			Integer i4=10;
				
			Integer i5=new Integer(100);
			Integer i6=new Integer(100);
				
			System.out.println(i1==i2);//false
			System.out.println(i3==i4);//true
			System.out.println(i5==i6);//false存在对象即是比较地址
			如果数值在[-128,127]之间则返回指向IntegerCache.cache中已经存在的对象;否则创建一个新对象
			Integer、Sort、Byte、Character、Long这几个类的valueOf方法是类似的
			Integer、Sort、Byte、Long包装类的缓存范围[-128,127]
			Character包装类缓存范围[0,127]
			Double、Float的valueOf方法的实现是类似的,因为值不是离散的是连续的,不能使用缓存保存,所以没有范围	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Carl·杰尼龟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值