包装类

基本数据类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean
charCharacter
  • 基本数据类型 —> 包装类:调用包装类的构造器
	Integer in1 = new Integer("123");//123
	Integer in2 = new Integer("123abc");//java.lang.NumberFormatException
	Boolean b1 = new Boolean("tRue");//true
	Boolean b2 = new Boolean("true123");//false 
	//源码
    public Boolean(String s) {
        this(parseBoolean(s));
    }
    
	//equalsIgnoreCase(String s)方法实现的功能:忽略true的大小写
	 public static boolean parseBoolean(String s) {
        return ((s != null) && s.equalsIgnoreCase("true"));
    }
  • 包装类 —> 基本数据类型:调用包装类Xxx的xxxValue()
	Integer in1 = new Integer(12);
	int i1 = in1.intValue();//i1 = 12
  • 自动装箱与自动拆箱
	int i1 = 10;
	Integer i2 = i1;//自动装箱
	int i3 = i2;//自动拆箱
  • 基本数据类型、包装类 —> String类型:
	int i1 = 10;
	Integer i2 = i1;
	String str = i1 + ""; //方式一:连接运算
	String str1 = String.valueOf(i2); //方式二:调用String重载的valueOf方法
  • String类型 —> 基本数据类型、包装类:调用包装类的parseXxx(String s)方法
	String str = "123";
	int num = Integer.parseInt(str);//num = 123
  • 小练习
    • 以下程序输出为?
		@Test
			public void test2() {
				Object obj = true ? new Integer(1) : new Double(2.0);
				System.out.println(obj);//1.0
				//使用三元运算符要求条件的类型保持一致,所以Integer做了自动类型提升
			}
		@Test
		public void test2() {
		Integer m = 1;
		Integer n = 1;
		System.out.println(m == n);//true
		
		/*
		Integer内部定义了IntegerCache结构,IntegerCache中定义了Integer[],保存了从-128~127范围的整数。
		如果我们使用自动装箱的方式,给Integer赋值的范围在-128~127范围内时,可以直接使用数组中的元素,不用再去new了。	
		*/
		
		Integer j = 128;//相当于new了一个Integer对象,下同
		Integer k = 128;
		System.out.println(j == k);//false
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值