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

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

 目录

前言

一、包装类

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

2.为什么要使用包装类

二、装箱和拆箱

1.装箱

2.拆箱

三、包装类特有功能

1.包装类默认值

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

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

总结


前言

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


一、包装类

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

image.gif

2.为什么要使用包装类

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

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

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

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

二、装箱和拆箱

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

1.装箱

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

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

image.gif

2.拆箱

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

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

image.gif

三、包装类特有功能

1.包装类默认值

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

image.gif

image.gif

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

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

image.gif

 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);
    }

image.gif

总结

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

目录
相关文章
|
5月前
|
存储 安全 Java
day7:基本类型转换、包装类、自动装箱、自动拆箱
【7月更文挑战第7天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
43 3
|
缓存 Java 编译器
自动拆箱与装箱
自动拆箱与装箱
|
存储 Java
包装类和基本数据类型
包装类和基本数据类型
|
缓存 Java
基本数据类型包装类
基本数据类型包装类
67 0
|
Java API
Java开发——18.常用类(包装类,拆箱和装箱;BigInteger+BigDecimal)
Java中只有两种数据类型:基本数据类型和引用数据类型。
Java开发——18.常用类(包装类,拆箱和装箱;BigInteger+BigDecimal)
|
缓存 Java 编译器
包装类的自动装箱拆箱,==运算符及equals方法
包装类的自动装箱拆箱,==运算符及equals方法详解
159 0
包装类的自动装箱拆箱,==运算符及equals方法
|
Dubbo Java 编译器
自动装箱、拆箱了解多少?
Java 为我们提供了 8 种基本数据类型,为什么还需要提供各自的包装类型呢?您可能会觉得这个问题问的很奇怪,但是我觉得还是值的思考的。
C#装箱和拆箱
C#装箱和拆箱 疑问   都知道C#有装箱和拆箱的操作,听闻也都是讲int类型转换成object类型就是装箱,将object类型再转回int类型就是拆箱。      描述的通俗点:   装箱 将值类型转换成引用类型,   拆箱 将引用类型转换成值类型。
4790 0