天天看點

java之關系運算符

1.關系運算符生成的是一個“布爾”(Boolean)結果。它們評價的是運算對象值之間的關系。若關系是真實的,關系表達式會生成 true(真);若關系不真實,則生成false(假)。

   1. 檢查對象是否相等(==或者!=)

<code>Integer n1 = </code><code>new</code> <code>Integer(</code><code>47</code><code>);</code>

<code>Integer n2 = </code><code>new</code> <code>Integer(</code><code>47</code><code>);</code>

<code>System.out.println(n1 == n2);    </code><code>//結果為false</code>

<code>System.out.println(n1 != n2);    </code><code>//結果為true</code>

<code>因為==與!=都是比較對象的句柄,n1和n2盡管Integer對象相同,對象内容相同,但是句柄不同</code>

<code>2</code><code>. equals()的使用</code>

<code>System.out.println(n1.equals(n2));    </code><code>//ture</code>

<code>equals比較的是對象内容,是以為ture;</code>

<code>class</code> <code>Value {</code>

<code>int</code> <code>i;</code>

<code>}</code>

<code>public</code> <code>class</code> <code>EqualsMethod2 {</code>

<code>public</code> <code>static</code> <code>void</code> <code>main(String[] args) {</code>

<code>Value n1 = </code><code>new</code> <code>Value();</code>

<code>Value n2 = </code><code>new</code> <code>Value();</code>

<code>n1.i = n2.i = </code><code>10</code><code>;</code>

<code>System.out.println(n1.equals(n2));   </code><code>//false</code>

<code>此時的結果又變回了</code><code>false</code><code>!這是由于 equals()的預設行為是比較句柄。是以除非在自己的新類中改變了</code>

<code>equals(),否則不可能表現出我們希望的行為。</code>

本文轉自 水滴的曆程 51CTO部落格,原文連結:http://blog.51cto.com/12390959/1909179