【JAVA基础之装箱和拆箱】自动装箱和自动拆箱

🔥作者主页小林同学的学习笔录

🔥mysql专栏小林同学的专栏

目录

1.包装类

1.1  概述

1.2  Integer类

1.3  装箱和拆箱

1.4  自动装箱和自动拆箱

1.5  基本类型与字符串之间的转换

1.5.1  基本类型转换为字符串

1.5.2  字符串转换成基本类型


1.包装类

1.1  概述

Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下:

1.2  Integer类

Integer类构造方法及静态方法

1.3  装箱和拆箱

在Java中,装箱(Boxing)和拆箱(Unboxing)是将基本数据类型转换为对应的包装类型和将包

装类型转换为基本数据类型的过程。

  1. 装箱(Boxing):装箱是指将基本数据类型(如int、double、boolean等)转换为对应的包装类型(如Integer、Double、Boolean等)。这通常发生在需要将基本数据类型作为对象使用的情况下,例如将一个int赋值给一个Integer对象。

    int primitiveInt = 10;
    Integer boxedInt = Integer.valueOf(primitiveInt); // Boxing
    
  2. 拆箱(Unboxing):拆箱是指将包装类型转换为对应的基本数据类型。这通常发生在需要将包装类型中的值提取为基本数据类型时。

    Integer boxedInt = Integer.valueOf(20);
    int primitiveInt = boxedInt.intValue(); // Unboxing
    

在Java中,自动装箱和自动拆箱是支持的,这意味着在需要时编译器会自动进行类型转换,而无需显式地调用valueOf()intValue()等方法。例如:

int primitiveInt = 10;
Integer boxedInt = primitiveInt; // Auto-boxing

Integer boxedInt = Integer.valueOf(20);
int primitiveInt = boxedInt; // Auto-unboxing

注意:尽管自动装箱和自动拆箱提供了便利,但在处理可能为 null 的包装类型时,需要格外小心,以避免空指针异常

eg:Boolean自动拆箱时需要注意,Boolean有可能为null,如果为null,则会抛出异常,因此需要进行相应的处理

1.4  自动装箱和自动拆箱

Integer i = 4;//自动装箱。相当于Integer i = Integer.valueOf(4);
i = i + 5;//等号右边:将i对象转成基本数值(自动拆箱) i.intValue() + 5;
//加法运算完成后,再次装箱,把基本数值转成对象。

1.5  基本类型与字符串之间的转换

1.5.1  基本类型转换为字符串

  • 方式一:直接在数字后加一个空字符串

  • 方式二:通过String类静态方法valueOf()

代码演示:

public class IntegerDemo {
    public static void main(String[] args) {
        //int --- String
        int number = 100;
        //方式1
        String s1 = number + "";
        System.out.println(s1);
        //方式2
        //public static String valueOf(int i)
        String s2 = String.valueOf(number);
        System.out.println(s2);
        System.out.println("--------");
    }
}

1.5.2  字符串转换成基本类型

除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型:

  • public static byte parseByte(String s):将字符串参数转换为对应的byte基本类型。

  • public static short parseShort(String s):将字符串参数转换为对应的short基本类型。

  • public static int parseInt(String s):将字符串参数转换为对应的int基本类型。

  • public static long parseLong(String s):将字符串参数转换为对应的long基本类型。

  • public static float parseFloat(String s):将字符串参数转换为对应的float基本类型。

  • public static double parseDouble(String s):将字符串参数转换为对应的double基本类型。

  • public static boolean parseBoolean(String s):将字符串参数转换为对应的boolean基本类型。

注意:如果字符串参数的内容无法正确转换为对应的基本类型,则会抛出java.lang.NumberFormatException异常。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值