两个Integer变量a和b,值相等,a==b等于多少?

Integer a = Integer.valueOf(127);
Integer b = Integer.valueOf(127);
 
Integer c = Integer.valueOf(128);
Integer d = Integer.valueOf(128);
 
System.out.println(a == b);
System.out.println(c == d);
 
结果:
true
false
 
原因:
Integer类已经对数字0-127做了一个缓存,创建0-127这些常用整数类型是直接从缓存中调引用,所以是true,而超过127则是创建新的对象,所以内存地址的引用不一致,故是false。
posted @ 2018-04-07 15:19  四叶草Grass  阅读(896)  评论(0编辑  收藏  举报