2016-07-20 22 views
-5

Java演算子==は参照の比較に使用されますJava演算子 - > how ==演算子

次に、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

プリミティブ値には位置がなく、値は1つしかありません。 –

答えて

0

を比較し、次にどのように異なる場所に格納され、JLSは、オペレータ「==」が実際参照型比較のためだけでなく、ために使用されることを述べて数値型およびブール型の比較。

は、数値タイプです。
数値型が(ない参照)とを比較する値を比較します。

しかしあなたは二つの整数の参照はむしろ、あなたは整数クラスを使用することができるよりも等しいかどうかを確認したい場合。このクラスは単純にプリミティブをラップします数値型int

すぐ次のコードを検討:A及びBは、オブジェクトあるため

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の参照であっても、それらのINTもB.の参照と比較さ値は同じで、独立しているため参照この文は偽です。
  2. 方法は、各整数オブジェクトINT値を比較し、従って真であると等しいです。
  3. 整数オブジェクト Cは、この基準の比較が真であろう従ってオブジェクト A.を参照します。