2021-09-08 API之包装类详解

目录

1、包装类:

2、基本数据类型以及他们的包装类:

3、装箱:

在byte取值范围[-128,127]内,不会创建新对象。

在byte取值范围[-128,127]外,创建了新对象。

4、拆箱:

5、自动拆装箱

6、parseXXX(String str)方法:

7、Ingether,int,String之间的转换


1、包装类:

包装类在java.lang中作为基础类使用,他们的出现是为了解决基本数据类型不能直接参与面向对象开发的问题,让基本类能够以"对象"的形式存在。

2、基本数据类型以及他们的包装类:

基本数据类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

需要注意的是int和char对应的包装类的写法。

3、装箱:

从基本数据类型到包装类,为装箱。即 int -> Ingeter ;

        int a = 123;
        Integer i = Integer.valueOf(a);
        System.out.println(i);//123

注意:

在byte取值范围[-128,127]内,不会创建新对象。

        Integer i1 = Integer.valueOf("123");
        Integer i2 = Integer.valueOf("123");
        System.out.println(i1==i2);//true
        System.out.println(i1.equals(i2));//true

i1 i2指向相同的对象。同一类型的相等数值使用 == 作比较,比较的是地址,返回的是true。包装类重写了equals方法,使用equals()比较时比较的是数值,返回true。

在byte取值范围[-128,127]外,创建了新对象。

        Integer i3 = Integer.valueOf("123");
        Integer i4 = Integer.valueOf("123");
        System.out.println(i3==i4);//false
        System.out.println(i3.equals(i4));//true

i3 i4指向不同的对象。此时使用 == 比较地址,返回false。使用equals()依旧比较数值,返回true。

4、拆箱:

从包装类到基本数据类型,为拆箱。即 Ingeter -> int ;

        Integer i = Integer.valueOf("28");
        int b = i.intValue();
        System.out.println(b);//28

5、自动拆装箱

JDK5之后提供了新功能:自动拆装箱。

该特性是编译器认可的,不是虚拟机认可的。当编译器在编译代码时发现有基本类型与包装类相互赋值操作时,会自动添加转换的代码,这样我们在源代码中就不需要编码来完成相互的转换了。

6、parseXXX(String str)方法:

除Character包装类外,所有包装类都有一个静态的方法:parseXXX();

该方法可以将指定的字符串转换为基本类型,前提是字符串正确描述了基本类型可以保存的值,否则会抛出数字格式异常(NumberFoematException)。

        int x = Integer.parseInt("123");//123
        double y = Double.parseDouble("123");//123.0

 对于Boolean包装类:当字符串为"true"时,返回true,且不区分大小写。其余都返回false。

7、Ingether,int,String之间的转换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值