integer 拆箱装箱以及范围

        //装箱是将一个原始数据类型赋值给相应封装类的变量。而拆箱则是将一个封装类的变量赋值给相应原始数据类型的变量。
        int i1 = 1;  
        int i2 = 1;  
        Integer integer1 = new Integer(1);  
        Integer integer2 = new Integer(1);  
        //两个变量值相等
        System.out.println("1:"+(i1 == i2));// true  
        // integer1拆箱  
        System.out.println("2:"+(i1 == integer1));// true  
        // i装箱  
        System.out.println("3:"+integer1.equals(i1));// true  
        // 两个对象地址不一样  
        System.out.println("4:"+(integer1 == integer2));// false  
        // 两个对象值一样  
        System.out.println("5:"+integer1.equals(integer2));// true  
          
        /* 自动装箱规范要求-128=<boolean、byte、char <= 127, 介于-128~127之间的short和int被包装到固定对象中,也就是   
        说,这些范围内的相同值对应同一个对象 */  
        Integer integer3 = 10,integer4 = 10;  
        System.out.println("6:"+(integer3 == integer4)); // true  
          
        Integer integer5 = -129,integer6 = -129;  
        System.out.println("7:"+(integer5 == integer6)); // false  
        
        Integer integer7 = 128,integer8 = 128;  
        System.out.println("8==地址比较:"+(integer7 == integer8)+"&8.equas值比较:"+integer7.equals(integer8)); 
原文地址:https://www.cnblogs.com/ckxlovejava/p/7890109.html