java装箱跟拆箱解析

Posted 青春不打烊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java装箱跟拆箱解析相关的知识,希望对你有一定的参考价值。

/**
* 在jdk1.5之后,java为基本数据类型到对应的应用数据类型提供了自动拆箱装箱操作
* 不管是自动拆箱还是自动装箱都是应用数据类型有的方法,基本数据类型是没有任何方法可调用的

*从概念上来说,拆箱即从应用数据类型到基本数据类型,装箱即从基本数据类型到应用数据类型
*/
//进行了自动装箱操作,实际是:Integer i1 = Integer.valueOf(100);
//valueOf方法当值在-128到127之间时会去缓存中取对象,如果缓存中不存在则创建,如果存在则不创建直接取
Integer i1 = 100;
//此操作实际进行了的操作为:int i2 = i1.intValue(),发生了自动拆箱操作
int i2 = i1;

/**
* 所有会出现下面的情况
* 在-128~127 之外的数
Integer i1 =200;
Integer i2 =200;
System.out.println("i1==i2: "+(i1==i2)); 结果为false
// 在-128~127 之内的数
Integer i3 =100;
Integer i4 =100;
System.out.println("i3==i4: "+(i3==i4)); 结果为true
*/

Integer i3 =new Integer(100);
Integer i4 =new Integer(100);
System.out.println("i3==i4: "+(i3==i4));//显示false
//这中情况出现false的原因是因为上不会发生自动拆箱跟自动装箱操作

 

其实其他七种也应该是有装箱拆箱操作的,这里不一一做演示,有兴趣可以看源码


























以上是关于java装箱跟拆箱解析的主要内容,如果未能解决你的问题,请参考以下文章

Java面试题|什么是装箱?什么是拆箱?

从jvm角度来解析java语法糖

java基础 深入解析常量池与装拆箱机制

java基础 深入解析常量池与装拆箱机制

装箱和拆箱-----------操作和概念

java基础解析系列---equals==和hashcode方法