相关疑难解决方法(0)

整数包装器对象仅在值127内共享相同的实例?

这里他们是同一个实例:

Integer integer1 = 127;
Integer integer2 = 127;
System.out.println(integer1 == integer2);  // outputs "true"
Run Code Online (Sandbox Code Playgroud)

但在这里他们是不同的实例:

Integer integer1 = 128;
Integer integer2 = 128;
System.out.println(integer1 == integer2);  // outputs "false"
Run Code Online (Sandbox Code Playgroud)

为什么包装器对象仅在值127内共享同一实例?

java caching integer

40
推荐指数
3
解决办法
5824
查看次数

比较2个整数值会给出不同的输出

可能重复:
关于自动装箱和对象相等/身份的Java问题

Integer i1 = 10;
Integer i2 = 10;
Integer i3 = 210;
Integer i4 = 210;

if(i1 ==i2){
      System.out.println("True");
}else{
      System.out.println("False");
}
if(i3==i4){
       System.out.println("True");
}else{
       System.out.println("False");
}
if(Integer.valueOf(10) ==Integer.valueOf(10)){
       System.out.println("True");
}else{
      System.out.println("False");
}
if(Integer.valueOf(210) ==Integer.valueOf(210)){
       System.out.println("True");
}else{
       System.out.println("False");
}
Run Code Online (Sandbox Code Playgroud)

答案是

真正

真正

为什么它给2和4条件假?

java

1
推荐指数
1
解决办法
155
查看次数

比较128下的2整数

    Integer a = 127;
    Integer b = 127;
    System.out.println(a == b);
Run Code Online (Sandbox Code Playgroud)

结果是真的,但是:

    Integer a = 128;
    Integer b = 128;
    System.out.println(a == b);
Run Code Online (Sandbox Code Playgroud)

结果是错误的.为什么?

java

0
推荐指数
1
解决办法
145
查看次数

标签 统计

java ×3

caching ×1

integer ×1