java包装类

1. java对于8个基本类型分别定义了对应的包装类,而包装类出现的原因是为了解决基本类型不能参与面向对象开发的问题。

public static void main(String[] args) {
		dosome("abc");
		dosome(new Point(1,2));
		int i=1;
		/*
		 * java的8个基本类型:byte、short、int、long、float、double、char、boolean
		 * 是以值的形式直接存在的,所以他们并没有面向对象的特性,自然也不继承自Object.
		 * 所以不能使用多态,用Object的角度去接受基本类型
		 */
		Integer ii=new Integer(i);
		dosome(ii);

	}
	public static void dosome(Object obj){
		
	}

2. Number: 数字类型的包装类继承自Number,其提供了如:intValue,doubleValue这样的方法,作用是可以将当前包装类表示的数字以其他数字类型的形式返回。

		/*
		 * 将基本类型转换为包装类有两种方式:
		 * 1.调用构造方法
		 * 2.调用静态方法valueOf(推荐)
		 */
		
		/*法一,不推荐
		Integer i1=new Integer(123);
		Integer i2=new Integer(123);
		System.out.println(i1==i2);//false
		System.out.println(i1.equals(i2));//true*/
		//法二,推荐
		Integer i1=Integer.valueOf(127);//数字的范围只能在-128到127之间 
		Integer i2=Integer.valueOf(127);
		System.out.println(i1==i2);//true
		System.out.println(i1.equals(i2));//true
		//转回基本类型
		int i=i1.intValue();
		System.out.println(i1);//127
		double d=i1.doubleValue();
		System.out.println(d);//127.0
		byte b=i1.byteValue();
		System.out.println(b);//127
  1. 数字类型包装类都支持两个常量:MAX_VALUE,MIN_VALUE,分别保存了对应基本类型的最大值与最小值。
		//获取int最大值,最小值
		int imax=Integer.MAX_VALUE;
		int imin=Integer.MIN_VALUE;
		System.out.println("imax:"+imax);//imax:2147483647
		System.out.println("imin:"+imin);//imin:-2147483648
		
		//获取double最大值和最小值
		double dmax=Double.MAX_VALUE;
		double dmin=Double.MIN_VALUE;
		System.out.println("dmax:"+dmax);
		System.out.println("dmin:"+dmin);

4. parseXXX(String str): 包装类提供了一个静态方法parseXXX(String str),可以将给定的字符串转换为对应的基本类型,前提是该字符串必须正确的描述基本类型可以保存的值。

		String str="123";
		int i=Integer.parseInt(str);
		System.out.println(i+1);//124
		/*错误原因:该字符串必须正确的描述基本类型可以保存的值
		  String str="a";
		  int i=Integer.parseInt(str);
		  System.out.println(i+1);*/
		/*错误原因:该字符串必须正确的描述基本类型可以保存的值
		  String str="123.124";
		  int i=Integer.parseInt(str);
		  System.out.println(i+1);*/
		 

		
		double d=Double.parseDouble(str);
		System.out.println(d+1);//124.0

5. JDK1.5之后推出了一个新的特性:自动拆装箱

		/*
		 * 自动拆装箱是编译器认可,而不是虚拟机认可。
		 * 编译器在将源程序编译时自动补充代码来完成基本类型与包装类之间的转换
		 * 
		 * 下面触发了自动拆箱:
		 * 在class文件中,下面的代码被编译器改为
		 * int i=new Integer(1).intValue();
		 */
		int i=Integer.valueOf(1);//用基本类型去接收引用类型
		
		/*
		 * 下面触发了自动装箱:
		 *  在class文件中,下面的代码被编译器改为
		 *  Integer i1=Integer.valueOf(123);
		 */
		Integer i1=123;//用引用类型去接收基本类型

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值