栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 自动拆装箱及128陷阱

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 自动拆装箱及128陷阱

8种基本数据类型及对应的包装类

基本数据类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

        拆箱与装箱是相反的操作。装箱是将一个原始数据类型赋值给相应封装类的变量。而拆箱则是将一个封装类的变量赋值给相应原始数据类型的变量。

自动装箱

大家在平时编写Java程序时,都常常以以下方式来定义一个Integer对象:

Integer i=100;

Integer i=new Integer (100);

从上面的代码中,大家可以得知,i为一个Integer类型的引用,100为Java中的基础数据类型。而这种直接将一个基础数据类型传给其相应的封装类的做法,便是自动装箱。

自动拆箱

int n = i;

int n = i.intValue();

将一个封装类转换为基础数据类型,是拆箱。

128陷阱

Integer和int进行比较

Integer a = 10;

int  b = 10;

System.out.println(a == b);   //true

int 和 Integer在进行比较的时候,Integer会进行拆箱,转为int值与int进行比较

Integer和Integer进行比较

Integer a = 128;

Integer b = 128;

System.out.println(a == b);    //false

a自动装箱产生的Integer对象,大小超过了-128——127的范围,这里会直接创建该对象:new Integer(128)

b同理。它们在堆中的地址是不同的,因此false.

Integer a = 128;

Integer b = 128;

System.out.println(a.equals(b));   //true

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/760514.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号