Integer 中的缓存类IntegerCache

参考: http://www.cnblogs.com/wellmaxwang/p/4422855.html


package cache;

/**
 * 常量池
 * Created by shixf on 2018/4/15.
 */
public class IntegerDemo {
    public static void main(String[] args) {
        //[-128, 127]
        Integer int1 = Integer.valueOf("-120");
        Integer int2 = Integer.valueOf("-120");
        System.out.println(int1 == int2); //true


//        //------------自动拆装箱----------------------
//        Integer a = 100; //Integer.valueOf("100")
//        Integer b = 100;
//        int c = 100; // c是基本数据类型,比较的时候比较的是数值
//        System.out.println(a == b); //true
//        System.out.println(a == c); //true
//
//
//        //------------------------------------------
//        Integer a = 300;
//        Integer b = 300;
//        int c = 300; // c是基本数据类型,比较的时候比较的是数值
//        System.out.println(a == b); //false
//        System.out.println(a == c); //true
//
//
//        //-----------------------------------------
//        java.lang.Integer a = new java.lang.Integer(3);
//        java.lang.Integer b = 3;
//        int c =3; // c是基本数据类型,比较的时候比较的是数值
//        System.out.println(a==b);//false
//        System.out.println(a==c);//true


        //------------------------------------------
//        String r = null;
//        System.out.println("99".equals(r)); //false
    }

    /* jdk 源码
    public static Integer valueOf(String s) throws NumberFormatException {
        return Integer.valueOf(parseInt(s, 10));
    }

    public static Integer valueOf(int i) {
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }*/
}



阅读更多

没有更多推荐了,返回首页