java起步篇(2)

来源:互联网 发布:世界各国进出口数据 编辑:程序博客网 时间:2024/06/05 13:24

 3.Java Auto Boxing and Unboxing

    JDK 1.5以后引入了不少概念 作为一个半调子.NET Developer  我发现像Boxing Unboxing(装箱 拆箱 有人译作打包解包)还有Generic(泛型) 这些概念和 C# 有着惊人的相似。 这里的装箱应该理解为 封装对象 ,即把基础数据类型(如 int)转换成基础类型封装类的对象(如 new Integer())拆箱就是装箱的反过程,即把基础类型封装类的对象(如 new Integer())转换为基础数据类型(如 int)。

装箱: Integer a = new Integer() ;              a = 100 ;拆箱: int b = new Integer(100) ;

还那整型做例子:Object myObject = 100;    //Boxing + Upcastingint i = (Integer) myObject;  //Unboxing + Downcasting第一行是先把int类型的100装箱为Integer对象 然后上塑造型 为Object类型 赋值给 myObject第二行是先把Object型的 myObject 强制类型转换为 Integer 然后赋值给 int型的 i

编一个小程序测试一下 你会发现很多问题: 

public class Asd{

public static void main(String[] args){

  Integer i1 =100;  Integer i2=100;if(i1==i2)        System.out.println("i1==i2");else        System.out.println("i1!=i2"); 

  }

}

当把i1,i2 的100换成200时结果出现了i1!=i2的奇怪现象,Auto Boxing and Unboxing  编程时要注意这个陷阱呀!