美文网首页
8.包装类,包装类的自动装箱和自动拆箱

8.包装类,包装类的自动装箱和自动拆箱

作者: 南城刀 | 来源:发表于2018-03-09 17:51 被阅读34次
问题:关于 Java 包装类,包装类的自动装箱和自动拆箱你怎么理解?
1)什么是包装类?

从程序语言来说,Java语言是一个面向对象语言,但是在Java中的基本数据类型不是“面向对象的”,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类,有些地方也翻译为外覆类或数据类型类。
一句话来说:Java 中包装类就是基本数据类型对象。包装类位于 java.lang包下。

 2)基本数据类型和包装类对比
image.png

这八种包装类所继承的父类不全都相同

a)Integer 、Byte 、Float、Double、 Short、Long都属于 Number 类的子类,Number 类本身提供了一系列的返回以上六种“基本数据类型”了的操作。
b)Character 属于 Object 子类。
c)Boolean 属于 Object 子类。

Number类的作用
image.png

由此可知,Number 是一个 抽象类,里面包含了将包装类的内容转换为“基本数据类型”。

主要方法有:


image.png
装箱和拆箱

以Integer 和 Double 为例:
① 将基本数据类型变为包装类,称为装箱
② 将包装类的类型变为基本数据类型成为拆箱

装箱,如下图:
源码是这样:


image.png

当 java 文件被编译成 class 文件后,i1 和 d1 发生了装箱


image.png
(可能有同学有疑问 Double 为什么没有像 Integer一样调用 Double.valueOf(d1) ),这里我们可以去看下class 文件中在 jvm 中执行流程,其实他是发生了自动装箱的。
image.png
在 JDK1.5 之前,对于程序本身来说,包装类不能直接进行 “+ ,-,*,/ ,++ ,-- ”等操作的,因为是一个类。

但是在 JDK1.5 之后,对程序的包装类功能进行了改变,增加了自动装箱和自动拆箱的功能,而且,可以使用包装类直接进行数字运算。

自动装箱和自动拆箱也就是,可以自动由int-->Integer类型转变,而自动拆箱就是自动由Integer-->int转变。

(参考:https://www.cnblogs.com/alsf/p/5536551.html)

相关文章

  • 三 常用API第二部分——第六节 包装类

    1、包装类的概念 2、装箱与拆箱 装箱:基本类型-->包装类对象拆箱:包装类对象-->基本类型 3、自动装箱与拆箱...

  • Java学习——day 06

    主要内容 多维数组 包装类 自动装箱和自动拆箱 SimpleDateFormat类的使用 Calendar类的使用...

  • 第六章 面向对象(下)

    包装类 通过包装类将八种基本类型的值包装成对象使用 自动装箱:把基本类型变量赋给对应包装类变量 自动拆箱:把包装类...

  • 自动装箱与自动拆箱

    1、自动装箱 基本类型自动转换为包装类(例如:int-->Integer) 2、自动拆箱 包装类型自动转换为基本类...

  • 8.包装类,包装类的自动装箱和自动拆箱

    问题:关于 Java 包装类,包装类的自动装箱和自动拆箱你怎么理解? 从程序语言来说,Java语言是一个面向对象语...

  • java基本类型、包装类、字符串之间的转换

    1、基本类型和包装类基本类型和包装类可通过自动装箱和拆箱实现。int i = 24;Integer a = new...

  • 从0开始复习java(3)

    一、面向对象 1、包装类 java5之后有自动装箱和自动拆箱功能。 包装类可以实现基本类型变量和字符串之间的转换。...

  • Java的自动装箱&&拆箱

    什么叫自动装箱和拆箱 简单来说: 自动装箱:就是自动将基础类型转换为包装器类型自动拆箱:就是自动将包装器类型转换为...

  • Java自动装箱和拆箱

    自动装箱和拆箱定义 自动装箱:把基本类型用其包装类替代,使其具有对象的特性。可以调用toString()、hash...

  • 2.2自动装箱与自动拆箱

    自动装箱与自动拆箱:基本类型的数据和包装类之间可以自动的相互转换。 JDK1.5之后出现的新特性描述:自动拆箱:i...

网友评论

      本文标题:8.包装类,包装类的自动装箱和自动拆箱

      本文链接:https://www.haomeiwen.com/subject/ppbpfftx.html