04. 关系运算符

Author Avatar
FengXueke 10月 18, 2022
post04

关系运算符

关系运算符生成的是一个“布尔”(Boolean)结果。它们评价的是运算对象值之间的关系。若关系是真实 的,关系表达式会生成 true(真);若关系不真实,则生成false(假)。关系运算符包括小于(<)、大于 (>)、小于或等于(<=)、大于或等于(>=)、等于(==)以及不等于(!=)。等于和不等于适用于所有内 建的数据类型,但其他比较不适用于boolean 类型

对于 ==!=

  • 示例1 检查对象是否相等
1
2
3
4
5
6
7
8
9
10
11
12
13
//: Equivalence.java
package com.isflee.c03_1_5_equivalence;

public class Equivalence {
//关系运算符==和!=
public static void main(String[] args) {
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
//对象的内容相同, 句柄不相同
System.out.println(n1 == n2);
System.out.println(n1 != n2);
}
} ///:~
  • 对示例1进行引申, 对比两个对象的实际内容是否相等

使用equals方法, 要注意区分equals是哪个类的实现方法, 示例如下

代码1, EqualsMethod.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.isflee.c03_1_5_equals_method;

//: EqualsMethod.java
public class EqualsMethod {
public static void main(String[] args) {
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
//equals 是 Integer实现的方法, 用于比较内容(值)
System.out.println(n1.equals(n2));
}
} ///:~
````

代码2, EqualsMethod2.java

```java
package com.isflee.c03_1_5_equals_method2;

//: EqualsMethod2.java
class Value {
int i;
}
public class EqualsMethod2 {
public static void main(String[] args) {
Value v1 = new Value();
Value v2 = new Value();
//equals 是 Object的实现的方法(默认), 用于比较句柄
v1.i = v2.i = 100;
System.out.println(v1.equals(v2));
}
} ///:~

大多数 Java 类库都实现了 equals(),所以它实际比较的是对象的内容,而非它们的句柄。《java编程思想》