Java高级编程03(包装类Integer Double Float Short Long Byte Boolean Character)

java提供了8个包装类,目的就是为了解决基本数据类型不能直接参与面向对象开发的问题,使得基本类型可以通过包装类的实例对象形式存在, 其中有关于数字类的包装类都继承与java.lang.Number,而char和boolean的包装类 都直接继承了Object。
Number是一个抽象类,定义了一些方法,目的是包装类可以将其表示的基本数据类型 转换为其他数字类型

package com.scy.number;
public class NumberDemo {
public static void main(String[] args) {
 
		//基本类型包装类 Integer Double Float Short Long  Byte  Boolean  Character
		
		//基本类型转换为包装类
		int i = 123;
		//Java推荐我们使用包装类的静态方法valueOf()将基本类型转换为包装类,而不是直接new
		Integer i1 = Integer.valueOf(i);//Integer会重用-128-127之间的整数对象
		Integer i2 = Integer.valueOf(i);
		System.out.println(i1==i2);//true
		System.out.println(i1.equals(i2));//true
		
		double d =123.456;
		Double d1 = Double.valueOf(d);//Double类型不是直接转换,而是直接new
		Double d2 = Double.valueOf(d);
		System.out.println(d1==d2);//false
		System.out.println(d1.equals(d2));//true
		
		
		//包装类型转为基本类型 ,使用intValue() doubleValue() ...xxValue()方法
		int value = i1.intValue();
		System.out.println(value);//123
		
		double value2 = d1.doubleValue();
		System.out.println(value2);//123.456
		
		int value3 = d1.intValue();//大类型转小类型可能存在丢失精度
		System.out.println(value3);
		
		
		//1.可以通包装类的属性MAX_VALUE和MIN_VLAUE来获取数据类型的最大取值以及最小取值
		int maxValue = Integer.MAX_VALUE;
		System.out.println(maxValue);
		int minValue = Integer.MIN_VALUE;
		System.out.println(minValue);
		//.... 
		
		//2.字符串转换为基本数据类型的前提是该字符串正确描述了基本数据类型
		//可以保存的值, 可以利用parseXXX()方法
		//否则会抛出异常: NumberFormatException  数字转换异常
		String str = "123";
		//String str1 = "123,123";//不能正确转换
		int parseInt = Integer.parseInt(str);
		
		System.out.println(str);//"123"
		System.out.println(parseInt);//123
		System.out.println(str+parseInt);//"123123"
		System.out.println(parseInt+parseInt);//246
		
		String str2 = "123.123";
		double parseDouble = Double.parseDouble(str2);
		System.out.println(parseDouble);//123.123
		//包装类型的自动拆装箱 jdk5 
		
		Integer integer = new Integer("123");
		int intValue = integer.intValue();
		//以上代码会触发自动拆箱特性,编译器会补充代码将包装类型转为基本类型:
		//代码会简化为以下代码
		int inte =new Integer("123"); //自动拆箱
		
		//触发编译器的自动装箱特性,
		Integer va = Integer.valueOf(123);
		//代码会被编译器改为:
		Integer in = 123;
	}
}
	

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

云破丶日出

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

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

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

打赏作者

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

抵扣说明:

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

余额充值