相关疑难解决方法(0)

当比较Java中的Integer包装器时,为什么128 == 128 false但127 == 127为真?

class D {
    public static void main(String args[]) {
        Integer b2=128;
        Integer b3=128;
        System.out.println(b2==b3);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

false
Run Code Online (Sandbox Code Playgroud)
class D {
    public static void main(String args[]) {
        Integer b2=127;
        Integer b3=127;
        System.out.println(b2==b3);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

true
Run Code Online (Sandbox Code Playgroud)

注意:-128到127之间的数字为真.

java comparison integer pass-by-reference pass-by-value

160
推荐指数
4
解决办法
4万
查看次数

整数包装器对象仅在值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
查看次数

Java中的整数实例和int原始值比较

Integer a = 5;
int b = 5;

System.out.println(a==b); // Print true
Run Code Online (Sandbox Code Playgroud)

但是为什么这个打印是真的,因为a是a的实例Integer而b是原始的int

java

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

为什么比较两个整数使用==有时工作,有时不工作?

我知道我正在比较参考,而我正在使用==这不是一个好主意,但我不明白为什么会发生这种情况.

Integer a=100;
Integer b=100;
Integer c=500;
Integer d=500;
System.out.println(a == b); //true
System.out.println(a.equals(b)); //true
System.out.println(c == d); //false
System.out.println(c.equals(d)); //true
Run Code Online (Sandbox Code Playgroud)

java comparison types

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

比较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
查看次数

值比较与对象参考比较

请有人解释一下,为什么答案是真的和错误的

public class IntegerTest {

        public static void main(String[] args) {

            Integer x = 1000;
            long y = 1000;
            Integer z = 1000;
            System.out.println(x == y);
            System.out.println(x == z);

        }
    }
Run Code Online (Sandbox Code Playgroud)

java

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