2016-07-20 42 views
-5

Java运算符==用于参考比较Java运算符 - >如何==运算符工作

那么如何使用==来比较int a = 1;和int b = 1;

两个值被存储在不同的位置其然后如何比较

+2

它不仅用于比较引用:如[JLS]中所述(https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.21 ),它是一个数字相等运算符,一个布尔相等运算符*和*一个引用相等运算符。 –

+0

实际上并不是我刚标记(重新打开)的那个的副本;但你应该阅读http://stackoverflow.com/q/8790809/3788176。 –

+0

原始值没有位置,它们只有一个值。 –

回答

0

作为评论安迪中,JLS指出运算符“==”确实用于引用类型比较也为数值类型布尔类型比较。

int数字类型。
当比较数字类型进行比较(未引用)。

但是,如果你想确定是否两个整数的引用是等价的,而不是那么你可以使用整数类。这个类简单地包装了原始数字型INT

现在考虑下面的代码:

public class TestClass { 

public static void main(String[] args) 
{ 
    Integer A = new Integer(1); 
    Integer B = new Integer(1); 
    Integer C = A; 

    if (A == B) System.out.println("Won't print."); // (1) 

    if (A.equals(B)) System.out.println("WILL Print!!!"); // (2) 

    if (A == C) System.out.println("WILL Print!!!"); // (3) 
} 
} 
  1. 因为A和B是对象,所述参考A的是相对于参考B.的即使它们INT值是相同的,因为它们是独立引用这种说法是错误的。
  2. 等于方法比较每个整数对象INT值并因此是真实的。
  3. 整数对象 C引用了对象 A.因此,该参考比较将是真实的。