Integer比较
package cn.anzhongwei.lean.demo.intandinteger;
// java 9 以后 此初始化已经标记为废弃,推荐使用 Integer.valueOf("100");
public class IntegerTest {
public static void main(String[] args) {
int a = 100;
Integer b = 100;
if ( a == b ) {
//原因是由于此区间的只都是由IntegerCache.cache而来,具体查看Integer.valueOf(n)方法
//其中IntegerCache.cache static final Integer cache[];
System.out.println("-128 - 127 之间的int类型是在常量池中, ");
}
// 但是 Integer.valueOf("100");
Integer c = Integer.valueOf("300");
Integer d = Integer.valueOf("300");
if ( c != d ) {
System.out.println("Integer.valueOf(\"100\") 初始化的127以上的数字是放到推空间的");
}
Integer e = Integer.valueOf("100");
Integer f = Integer.valueOf("100");
if ( e == f ) {
System.out.println("Integer.valueOf(\"100\") 初始化的127以内的还是从常量池中获取");
}
Integer g = Integer.valueOf("400");
int h = 400;
if ( g == h ) {
System.out.println("Integer会向下转型");
}
}
}