文档章节

java中的自动拆箱、装箱是指什么?

吴伟祥
 吴伟祥
发布于 2018/06/08 17:07
字数 485
阅读 24
收藏 3

JAVA语言中有个名词叫自动拆箱、装箱,那这个自动拆箱、装箱到底是指啥?

自动拆箱、装箱是从JDK1.5开始才有的特性,其实它主要就是指基本类型与包装类的自动转换。

如int 与Integer类型。
int 是基本类型,而Integer是int的包装类,在JDK1.5之前,int类型的值是不能直接赋给Integer类型的值 的,也就是说
Integer integer = 5; 会报错,因为5是基本类型,而Integer是包装类,Integer的正确定义方式为:
Integer integer = new Integer(5); 但是,从基本类型转换成包装类是经常使用的操作,尤其是Integer与int的转换很是频繁。所以在JDK1.5开始,它们之间的转换不在须要程序员再去进行转换了,JDK已经将它自动进行了转换,这种操作就叫自动拆箱、装箱。

int i = 5;
Integer ii = i;     //这种写法在JDK1.5及以后的版本是正确的,因为系统会自动将int向Integer进行转换,这种操作就叫自动装箱。

int j = ii;         //这种写法是将Integer的值自动转换成了int基本类型,这种自动转换的方法就叫自动拆箱。

不只是int与Integer可以自动转换,八大基本类型都可以, 以下是八大基本类型及对应的包装炻

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

其中,int与Integer的转换最多也最频繁,所以有一点要注意,也是面试时常问到的问题:
int与Integer的区别:
1.int的默认值 为0,而Integer的默认值为null,在使用Integer前需要初始化。
2.int是基本类型,而Integer是包装类,可以自动 拆箱、拆箱,Integer封装了很多的方法,

 

© 著作权归作者所有

吴伟祥

吴伟祥

粉丝 34
博文 497
码字总数 285677
作品 0
泉州
后端工程师
私信 提问
Java自动装箱-拆箱机制究竟是什么

支持原文:http://tryenough.com/java-autobox 自动装箱和拆箱从Java 1.5开始引入,目的是将原始类型值转自动地转换成对应的对象。 什么是自动装箱和拆箱 自动装箱就是Java自动将原始类型值转...

TryEnough
2019/03/13
0
0
深入浅出 Java 中的包装类

前阵子,我们分享了《Java中的基本数据类型转换》这篇文章,对许多粉丝还是有带来帮助的,今天讲一下 Java 包装类的的由来,及自动装箱、拆箱的概念和原理。 什么是包装类型 Java 设计当初就...

Java技术栈
2018/09/14
0
0
Java 自动拆箱和自动装箱学习笔记

Java 自动拆箱和自动装箱学习笔记 详情参考以下 深入剖析Java中的装箱和拆箱 JDK自动拆箱下,三目运算符的潜规则 Java 自动装箱与拆箱的实现原理 Autoboxing and Unboxing 1. 概述 Java 中的...

等到烟火清凉_
2018/08/25
66
0
Java自动装箱与拆箱及其陷阱

在本文中,笔者向大家介绍下Java中一个非常重要也非常有趣的特性,就是自动装箱与拆箱,并从源码中解读自动装箱与拆箱的原理,同时这种特性也留有一个陷阱。开发者如果不注意,就会很容易跌入...

LCZ777
2014/07/26
35
0
Java|从Integer和int的区别认识包装类

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/darlingwood2013/article/details/96969339 Java|Integer和int 极客时...

叶晚林
2019/07/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ASP.NET MVC控制器可以返回图像吗?

我可以创建一个仅返回图像资产的控制器吗? 每当请求以下URL时,我都希望通过控制器路由此逻辑: www.mywebsite.com/resource/image/topbanner 控制器将查找topbanner.png并将该图像直接发送...

技术盛宴
8分钟前
18
0
使用moco单元测试

在项目中,除了查询数据库,还要调用外部的服务,这这时候我们在写单元测试的时候,会考虑怎么覆盖着一块代码: 1.封装一个方法,然后mock这个方法。 2.直接配置好调用的服务,测试的时候调用...

woshixin
23分钟前
26
0
迭代访问列表的最“ pythonic”方法是什么?

我有一个Python脚本,它将一个整数列表作为输入,我需要一次处理四个整数。 不幸的是,我无法控制输入,或者将其作为四元素元组的列表传递。 目前,我正在以这种方式对其进行迭代: for i in...

javail
23分钟前
25
0
ZhaoWei-2020-01-26

spring cloud Ribbon Ribbon(负载均衡):Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP客户端的行为。为Ribbon,配置服务提供者的地址列表后,Ribbon就可基于某种负载均衡算法,自...

SuSheePark
29分钟前
74
0
分页查询的入门打开方式(JavaWeb)

技术涵盖(JavaWeb、HTML、Ajax、JQuery、Bootstrap ) 接触这一部分知识的时候,我们经常会做一些小Demo来练手,不可避免的就需要接触到一定量的数据,我们常常需要将数据从数据库中回显到页...

BWH_Steven
今天
50
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部