天天看点

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