自动装箱和拆箱

package zuoye2;
/**
 *        自动装箱和拆箱
 * @author 110
 *        自动装箱和拆箱就是讲将基本数据类型和包装类之间进行自动的互相转换,JDK1.5之后,java引入了自动装箱和拆箱
 *    自动装箱:
 *        基本类型的数据处于需要对相关的环境中时,会自动转为“对象”。
 *    自动拆箱:
 *        每当需要一个值时,对象会自动转成基本数据类型,没必要再去显示调用intValue()、doubleValue()等转型方法。
 *    
 *        用一句话总结自动装箱/拆箱:
 *        自动装箱过程是通过调用包装类valueof()方法实现的,而自动拆箱过程是通过调用包装类的xxxvalue()方法
 *    实现的(xxx代表对应的基本数据类型,如intvalue()、doublebalue()等)。
 */    
         
public class study03 {
    public static void main(String[] args) {
        //自动装箱
        Integer  a = 5;//编译会修改成Integer a = Integet.valueof(5);
        //自动拆箱
        int b = a;//编译器会修改成 int b = a.intvalue();
        
        Integer c = null;
        int d=c;
        
        //缓存[-128,127]之间的数字
        //因为有一个数组已经把-128到127这些数字作为对象存储了起来,当我们调用Valueof()的时候
        //如果创建的对象在这个数字之间,那么就直接在那个数组里面取,所以这两个-128是来自同一个对象,
        //所以返回的是true,如果不在这个范围内,则重新创建对象。
        Integer in1 = -128;
        Integer in2 = -128;
        System.out.println(in1==in2);//判断两个是不是同一个对象
        System.out.println(in1.equals(in2));//判断两个对象的内容是否相等
        System.out.println("########################");
        
        //因为1234不在缓存的范围内,所以,in3和in4是新创建的两个对象,所以会返回false;
        Integer in3 = 1234;
        Integer in4 = 1234;
        System.out.println(in3==in4);//判断两个是不是同一个对象
        System.out.println(in3.equals(in4));//判断两个对象的内容是否相等
    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值