Skip to content

Commit

Permalink
Update javase.md
Browse files Browse the repository at this point in the history
  • Loading branch information
itwanger committed Jun 5, 2024
1 parent 07db1c4 commit e249c4d
Showing 1 changed file with 10 additions and 15 deletions.
25 changes: 10 additions & 15 deletions docs/sidebar/csnotes/javase.md
Original file line number Diff line number Diff line change
Expand Up @@ -630,8 +630,9 @@ public InitialOrderTest() {

### 概览

```java
下面👇🏻这些方法都挺常用的,先看个大概,然后我们来挑一些使用频率非常高的方法做一个系统化地介绍。

```java
public native int hashCode()

public boolean equals(Object obj)
Expand All @@ -657,46 +658,40 @@ public final void wait() throws InterruptedException

### equals()

**1. 等价关系**

两个对象具有等价关系,需要满足以下五个条件:
#### 1. 等价关系

Ⅰ 自反性

```java
x.equals(x); // true
```
两个对象具有等价关系,需要满足以下 4 个条件:

对称性
①、对称性

```java
x.equals(y) == y.equals(x); // true
```

传递性
②、传递性

```java
if (x.equals(y) && y.equals(z))
x.equals(z); // true;
```

一致性
③、一致性

多次调用 equals() 方法结果不变

```java
x.equals(y) == x.equals(y); // true
```

与 null 的比较
④、与 null 的比较

对任何不是 null 的对象 x 调用 x.equals(null) 结果都为 false

```java
x.equals(null); // false;
```

**2. 等价与相等**
#### 2. 等价与相等

- 对于基本类型,== 判断两个值是否相等,基本类型没有 equals() 方法。
- 对于引用类型,== 判断两个变量是否引用同一个对象,而 equals() 判断引用的对象是否等价。
Expand All @@ -708,7 +703,7 @@ System.out.println(x.equals(y)); // true
System.out.println(x == y); // false
```

**3. 实现**
#### 3. 实现

- 检查是否为同一个对象的引用,如果是直接返回 true;
- 检查是否是同一个类型,如果不是,直接返回 false;
Expand Down

0 comments on commit e249c4d

Please sign in to comment.