笔记(九):包装类

什么是包装类

每个基本数据类型对应一个包装类
包装类对象就是基本数据类型的对象形式

基本数据类型基本类型父类
intjava.lang.Integerjava.lang.Number
longjava.lang.Longjava.lang.Number
doublejava.lang.Doublejava.lang.Number
shortjava.lang.Shortjava.lang.Number
floatjava.lang.Floatjava.lang.Number
bytejava.lang.Bytejava.lang.Number
charjava.lang.Characterjava.lang.Object
booleanjava.lang.Booleanjava.lang.Object

为什么需要包装类

基本数据类型不能直接参与引用类型的使用或计算
使用包装类将基本数据类型转换为引用数据类型,可以参与到其他引用类型的使用

包装类的使用

包装类与基本数据类型的转换

package com.tedu.pack;
/**
 * 包装类
 * 包装类是为了解决基本数据类型值不能作为对象参与程序开发的问题的
 * 有了包装类,就可以将数值放入对应的包装类中,既转换为对象爱的形式
 * 所有的包装类都是在java.lang包下
 * 包装类的名称,除了int和char都是首字母大写即可
 * int----->Integer
 * char--->Character
 * @author Wildmess
 *
 */
public class IntegerDemo1 {
	public static void main(String[] args) {
		int n1 = 100;
		int n2 = 129;
		/*
		 * 基本数据类型转换为包装类对象
		 */
		Integer i1 = Integer.valueOf(n1);
		Integer i2 = Integer.valueOf(n1);
		System.out.println(i1 == i2 );
		
		/*
		 * Integer中有一个1字节的缓存
		 * 如果值在-128~127之间,直接用缓存保存,否则才是对象形式
		 */
		Integer i3 = Integer.valueOf(n2);
		Integer i4 = Integer.valueOf(n2);
		System.out.println(i3 == i4 );
		
		Double d1 = Double.valueOf(n1);
		Double d2 = Double.valueOf(n1);
		System.out.println(d1 == d2 );//false
		System.out.println(d1.equals(d2));
		
		/*
		 * 包装类转换为基本数据类型
		 */
		int m1 = i1.intValue();
		System.out.println(m1);
		int m2 = i3.intValue();
		System.out.println(m2);
		
		double dd = d1.doubleValue();
		System.out.println(dd);
		
		byte b1 = i1.byteValue();
		byte b2 = i3.byteValue();
		System.out.println(b1);
		System.out.println(b2);//溢出
	}
}

包装类的功能

package com.tedu.pack;
/**
 * 展示包装类中常用的功能和转换时发生的异常
 * @author Wildmess
 *
 */
public class IntegerDemo2 {
	public static void main(String[] args) {
		//获得int类型的最大值
		int imax = Integer.MAX_VALUE;
		System.out.println(imax);
		//获得int类型的最小值
		int imin = Integer.MIN_VALUE;
		System.out.println(imin);
		//获得long类型的最大值
		long lmax = Long.MAX_VALUE;
		System.out.println(lmax);
		
		//将String转化为int类型
		//1、
		String s = "123";
		int d1 = Integer.valueOf(s);
		System.out.println(d1);
		//PS:
		//将字符串转换为数值类型的时候可能发生转换异常
		//NumberFormatException
		//故要使用这种方法,必须保证s中的都是int类型的数据
		//2、(推荐)
		int d2 = Integer.parseInt(s);
		System.out.println(d2);		
	}
}

自动装箱

package com.tedu.pack;
/**
 * 装箱:将基本数据类型的数值,存放在对应它的包装类中
 * 拆箱:从包装类对象中,获得这个基本数据类型的数值
 * JDK1.5时,Java编译器就可以自动拆装箱了
 * 为了简化开发时基本数据类型和其包装类的转换
 * @author Wildmess
 *
 */
public class IntegerDemo3 {
	public static void main(String[] args) {
		int a = 1;
		/*
		 * 这里触发了自动装箱特性,编译器咋i编译时
		 * 会将这里的代码改为:
		 * Integer i = Integer.valueOf(a);
		 * 将基本数据类型转换为包装类
		 */
		Integer i = a;
		/*
		 * 下面代码触发了自动拆箱特性,编译器会改为:
		 * a = i.intValue();
		 * 将包装类转换为对应的基本类型
		 */
		a=i;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值