Java包装类型缓存池

2021-05-18 23:16:33
读代码,下面几个问号处,输出什么? ``` class Hello{ public static void main(String[] args){ Integer a = 127; Integer b = 127; System.out.println(a == b); // ? Integer m = 128; Integer n = 128; System.out.println(m == n); // ? int j = 128; int k = 128; System.out.println(j == k); // ? Integer x = new Integer(127); // Note: Hello.java uses or overrides a deprecated API Integer y = new Integer(127); System.out.println(m == n); // ? System.out.println(m.intValue() == n.intValue()); // ? } } ``` 在 Java 8 中,Integer 缓存池的大小默认为 -128~127。在使用基本类型对应的包装类型时,如果缓存池中存在就可以直接使用缓冲池中的对象 基本类型对应的缓冲池如下: * boolean values true and false * all byte values * short values between -128 and 127 * int values between -128 and 127 * char in the range \u0000 to \u007F