自动装箱与拆箱的误用
在JAVA JDK1.5以后具有的自动装箱与拆箱的功能,所谓的自动装箱
与拆箱也就是把基本的数据类型自动的转为封装类型。
如:自动装箱,它可以直接把基本类型赋值给封装类型
Integer num = 10 ;
Double d = 2d ;
自动拆箱,它可以把封装类型赋值给基本类型
int num = new Integer(10);
double d = new Double(2d);
知道了自动装箱与拆箱后我们现看一下下面这两个程序代码:
AutoBoxDemo1.java
-------------------------------------------------------
public class AutoBoxDemo1
{
public static void main(String[] args)
{
Integer d1 = 100 ;
Integer d2 = 100 ;
if(d1==d2)
System.out.println("d1==d2");
else
System.out.println("d1!=d2");
}
}
AutoBoxDemo2.java
--------------------------------------------------------
public class AutoBoxDemo2
{
public static void main(String[] args)
{
Integer d1 = 200 ;
Integer d2 = 200 ;
if(d1==d2)
System.out.println("d1==d2");
else
System.out.println("d1!=d2");
}
}
大家看看这两个程序代码的结果是怎么样的呢?
其实在AutoBoxDemo1.java中结果是:d1==d2
在AutoBoxDemo2.java中结果是:d1!=d2
为什么结果会是这样的?我们来看了解一下!
其实刚刚这两个程序结果的不同是与==运算符比较有关,==是用来比较
两个基本数据类型的变量是否相等的,而事实上==也用于判断两个对象
变量名是否参考同一对象。在自动装箱时对于值从-128到127之间的值
它们被装箱为Integer对象后会在内存中重用,所以在AutoBoxDemo1.java
中是相等的,而超过了从-128到127之前的值时,被装箱后的Integer对象
并不会被重用。所以AutoBoxDemo2.java中是不相等的。
分享到:
相关推荐
Tedu正则表达式与Object与自动装箱与拆箱。
C#中必备知识点 装箱与拆箱(2)
Java中的自动装箱与拆箱_.docx
Java中的自动装箱与拆箱Java开发Java经验技巧共6页.pdf.zip
自动装箱与拆箱的机制可以让我们在Java的变量赋值或者是方法调用等情况下使用原始类型或者对象类型更加简单直接。 如果你在Java1.5下进行过编程的话,你一定不会陌生这一点,你不能直接地向集合(Collections)中放...
自动装箱与拆箱:自动装箱(Autoboxing)指的是自动地将基本数据类型转换为对应的包装类对象;自动拆箱(Unboxing)则是将包装类对象自动转换为基本数据类型。 常用方法:演示如何使用包装类中的这些常见方法。 null...
C#装箱与拆箱第一部分。是一个很好的视频,帮助大家学习C#装箱和拆箱的知识
什么是自动装箱和自动拆箱
代码中,我们可以看到自动装箱和拆箱的例子。在自动装箱中,我们将基本类型 int 赋值给 Integer 对象,而在自动拆箱中,我们将 Double 对象赋值给基本类型 double。这样,我们可以直接使用基本类型和包装类型之间的...
C#语言中的装箱和拆箱操作,很全面的理解装箱和拆箱操作
C#中重要的,必备知识点
主要介绍了Java 装箱与拆箱详解及实例代码的相关资料,这里对java 的装箱及拆箱进行了基本概念详解及简单使用,需要的朋友可以参考下
本篇文章主要介绍了详解Java 自动装箱与拆箱的实现原理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
1. 自动装箱: 2. 自动拆箱: 3. 缓存问题
下面小编就为大家带来一篇浅谈Java自动装箱与拆箱及其陷阱。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
很详细的介绍了java装箱拆箱的相关知识,用例子来讲述,易于理解!
C#示例:装箱、拆箱、自定义数据类型转换、ToString方法重载、类方法扩展。 源代码(工程)
自动装箱和拆箱问题是Java中一个老生常谈的问题了,我们来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。 以下是本文的目录大纲:...
C#装箱和拆箱视频第二部分,可以结合第一部分的视频看。对初学者很有帮助
什么是装箱和拆箱