包装类(装箱&拆箱&数据类型转换)
  TEZNKK3IfmPf 2024年04月26日 58 0

在Java5 中添加了两个新特性,那就是自动装箱和拆箱,因为基本类型的广泛使用,但是Java 又是面向对象的语言,所以提供了包装类型的支持。


一、包装类

1.包装类其实就是8种数据类型对应的引用类型

包装类(装箱&拆箱&数据类型转换)

2.为什么要使用包装类 

JAVA是面向对象语言,为了实现一切皆对象,于是为8种基本数据类型提供了对于的引用类型

集合和泛型只支持包装类型,不支持基本数据类型

比如:List<int> = new ArrayList<>();编译就会报错

为了解决该问题,我们引入了包装类,顾名思义,就是将基本类型“包装起来“,使其具备对象的性质,包括可以添加属性和方法,位于java.lang包下。

二、装箱和拆箱

既然有了基本数据类型和包装类,就必然存在它们之间的转换

1.装箱

基本数据类型转化为对应类型的包装类的过程叫“装箱”;

public static void main(String[] args) {
        int a = 10;
        Integer b = a; //自动装箱
}

2.拆箱

包装类转为对应类型的基本数据类型的过程叫“拆箱

public static void main(String[] args) {
        Integer c = 11;
        int d = c;  //自动拆箱
    }

 三、包装类特有功能

1.包装类默认值

包装类的变量的默认值可以是null,容错率更高

包装类(装箱&拆箱&数据类型转换)

 

包装类(装箱&拆箱&数据类型转换)

 2.基本类型转字符串类型

包装类可以把基本类型的数据转换为字符串形式,如下图有三种方式

包装类(装箱&拆箱&数据类型转换)

  3.字符串类型转基本类型

如下图,不管是把字符串转换成整数还是小数,都可以直接调valueof方法

public static void main(String[] args) {

        //转换整数
        String number = "18";
        int age = Integer.parseInt(number);
        int age = Integer.valueOf(number);

        //转换小数
        String number2 = "18.5";
        double age1 = Double.parseDouble(number2);
        double age1 = Double.valueOf(number2);
    }

总结

建议使用valueOf() 方法创建一个包装类实例而不是直接使用构造方法,因为该方法可以走缓存提高性能

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年04月26日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月14日   23   0   0 redis数据类型
  TEZNKK3IfmPf   2023年11月14日   89   0   0 python数据类型
  TEZNKK3IfmPf   2023年11月15日   39   0   0 引用C++数据类型
  TEZNKK3IfmPf   2023年11月15日   31   0   0 C++数据类型
TEZNKK3IfmPf