两道包装类的面试题

package com.it.work;
//第一道面试题
import org.junit.Test;

public class work1 {
    @Test
    public  void  test1(){


        Object  o  = true ? new Integer(1):new Double(2.0);//三元运算符,在编译运算时,首先会将前后条件都提升为一致
        //也即int类型1 提升为double类型
        System.out.println(o);//输出1.0

        Object o1 ;


        if (true){
            o1 =new Integer(1);
        }
        else {
            o1 =new Double(2.0);
        }
        System.out.println(o1); //输出1
    }
}
第二道面试题
``package com.it.work;

import org.junit.Test;

public class Work2 {
    @Test
    public  void test1 (){
        Integer in  =new Integer(1);
        Integer in1  =new Integer(1);
        System.out.println(in==in1);//false 创建了两个对象地址值一定不同
        //Interger内部定义了IntergerCache结构,IntergerCache中
        //定义了Interger[],保存了从-128~127范围内的整数,如果我们使用
        //自动装箱的方式,给Interger赋值的范围你在-128~127范围内时,可以直接
        //使用数组内的元素,不用再去new了,目的:提高效率
        Integer in2 =2;
        Integer in3 =2;
        System.out.println(in2==in3);//采用了自动装箱的方法,且
        //赋值的范围在数组范围内, 因此两个指向地址值相同

        Integer  in4 =129;
        Integer in5 =129;
        System.out.println(in4 ==in5);//采用自动装箱的方式,但由于超出
        //数组范围,所以只能采取new的方式去赋值,因此地址值一定不同
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值