您的位置:首页 > 编程语言 > Java开发

Integer比较值大小==,大于等于128的返回false

2015-09-11 16:54 253 查看
代码:

Integer a1 = 127;

Integer b1 = 127;

if(a1==b1){

    System.out.println("相等");

}else{

    System.out.println("不等");

}

 

Integer a = 128;

Integer b = 128;

if(a==b){

    System.out.println("相等");

}else{

    System.out.println("不等");

}

结果:

相等
不等

分析:

JVM会自动维护八种基本类型的常量池,int常量池中初始化-128~127的范围,所以当为Integer
i=127时,在自动装箱过程中是取自常量池中的数值,而当Integer i=128时,128不在常量池范围内,所以在自动装箱过程中需new 128,所以地址不一样。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java