• Integer 自动装箱机制


    Integer a1 = 100;  
    Integer a2 = 100;  
    System.out.println(a1 == a2);   // true  
     
    Integer b1 = new Integer(100);  
    Integer b2 = new Integer(100);  
    System.out.println(b1 == b2);   // false  
     
    Integer c1 = 150;  
    Integer c2 = 150;  
    System.out.println(c1 == c2);   // false 

    碰见这段代码,会让人很头疼,下面我就这样来解释下

    1:Integer是有一个取值范围的(-128~127)

    这个值是这样得到的

    int min = 0;
            int max = 0;
            Integer a;
            Integer b;
            for(int i = -9999 ; i<9999;i++){
                a = i;
                b = i;
                if(a == b){
                    min = i;
                    break;
                }
            }
            for(int i = min;i<9999;i++){
                a = i;
                b = i;
                if(a != b){
                    max = i-1;
                    break;
                }
            }
            System.out.println(min+"~"+max);    //-128~127
            

    2.下面我用一段代码来解释下为什么第一段代码会有那样子的结果。

                    //a1和a2是两个对象,用==判断时由于对象的引用不同则输出false
            Integer a1 = new Integer(123);
            Integer a2 = new Integer(123);
            System.out.println(a1 == a2);
            
            //Integer的取值范围是-128~127
            //当给Integer赋值超出了Integer的取值范围时,则会自动创建对象
            //Integer c1 = new Integer(654);
            //Integer c2 = new Integer(654);
            //这样子用==判断时,则判断对象引用地址是否同一个
            Integer b1 = 111;
            Integer b2 = 111;
            Integer c1 = 654;
            Integer c2 = 654;
            System.out.println(b1 == b2);
            System.out.println(c1 == c2);    

    这个就是自动装箱机制的结果

  • 相关阅读:
    进阶面向对象(下)
    进阶面向对象(上)
    使用WIFI准备工作及配置内核——韦东山
    USB设备驱动程序1
    USB总线驱动程序
    USB驱动程序涉及的概念及框架
    I2C协议简介
    倾旋之slack主题协同
    1.影子制作
    11.快速选择工具
  • 原文地址:https://www.cnblogs.com/BrightMoon/p/3003214.html
Copyright © 2020-2023  润新知