java起步篇(2)

 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 + Upcasting int 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  编程时要注意这个陷阱呀!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值