新手学JAVA(四)----装箱与拆箱

简介: <div class="markdown_views"><hr><h2 id="一-什么是装箱什么是拆箱">一 什么是装箱?什么是拆箱?</h2><hr><p><font size="4">在Java中,Java对每种基本数据类型都提供了对象的包装器类型。看下表:</font></p><p>                                    

一 什么是装箱?什么是拆箱?


在Java中,Java对每种基本数据类型都提供了对象的包装器类型。看下表:

                                                                                                           包装类对应表

基本数据类型 包装类
byte Byte
boolean Boolean
short Short
char Character
int Integer
long Long
float Float
double Double


在Java SE5之前,如果要生成一个数值为50的Integer对象,需要这么进行:

Integer obj = new Integer(50);

而在Java SE5开始,Java就封装了自动装箱的特性,定义数值是这样做就可以:

Integer obj = 50;

这个过程中自动根据数值创建Integer对象,就叫装箱;

简单一点说,装箱就是 自动将基本数据类型转换为包装器类型;拆箱就是 自动将包装器类型转换为基本数据类型。

那什么是拆箱?和装箱对象,就是将包装器类型转换成基本数据类型。拆装箱的过程如下图:

拆装箱



二 拆装箱是如何实现的?


我们以Double类型为例,先看下面的一段代码:

public class Main{
        public static void main(String[] args){
                Double DB = 10.34;
                double db=DB;
        }
}

然后我们对这段代码进行反编译,结果如下:

反编译结果

然后咱们换成Integer类型的再试试,直接看结果:

这里写图片描述

看出有什么相同来了没有,程序在自动装箱的时候自动调用valueof方法,在拆箱的时候,调用相应的类型的”**.**Value”方法。

由此可以看出,程序的自动装箱是调用包装器类型的valueof方法,而拆箱是调用包装器的”**.**Value”方法来实现的。

相关文章
|
5月前
|
存储 Java 编译器
Java零基础(12) - 自动装箱
【8月更文挑战第12天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
39 2
|
5月前
|
Java
【Java基础面试九】、说一说自动装箱、自动拆箱的应用场景
这篇文章介绍了Java中的自动装箱和自动拆箱概念:自动装箱允许将基本类型赋值给对应的包装类对象,而自动拆箱允许将包装类对象赋值给基本类型,从而简化了两者之间的转换过程。
【Java基础面试九】、说一说自动装箱、自动拆箱的应用场景
|
5月前
|
存储 缓存 Java
Java零基础教学(13):自动拆箱与自动装箱详解
【8月更文挑战第13天】Java零基础教学篇,手把手实践教学!
55 1
Java零基础教学(13):自动拆箱与自动装箱详解
|
5月前
|
存储 Java 编译器
Java零基础(17) - 自动拆箱与自动装箱
【8月更文挑战第17天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
50 3
|
5月前
|
存储 Java 测试技术
Java零基础教学(11):自动装箱
【8月更文挑战第11天】Java零基础教学篇,手把手实践教学!
61 5
|
5月前
|
Java 编译器 测试技术
Java零基础(13) - 自动拆箱
【8月更文挑战第13天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
38 2
|
5月前
|
Java 编译器 测试技术
Java零基础教学(12):自动拆箱
【8月更文挑战第12天】Java零基础教学篇,手把手实践教学!
43 2
|
6月前
|
Java 编译器 测试技术
day19:Java零基础 - 自动装箱
【7月更文挑战第19天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
64 4
|
6月前
|
存储 Java 测试技术
day20:Java零基础 - 自动拆箱
【7月更文挑战第20天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
47 2
|
7月前
|
缓存 Java 编译器
Java自动装箱与拆箱(AutoBoxing_UnBoxing)
Java自动装箱与拆箱(AutoBoxing_UnBoxing)
58 4