From e9614fbd7f1203948639596d8ddad946bfdfbbad Mon Sep 17 00:00:00 2001 From: sam Date: Thu, 17 Feb 2022 06:05:34 +0800 Subject: [PATCH 1/7] [docs improve] add line feed for two different sentence --- docs/java/basis/java-basic-questions-01.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/java/basis/java-basic-questions-01.md b/docs/java/basis/java-basic-questions-01.md index 2f680ef1..124ef03c 100644 --- a/docs/java/basis/java-basic-questions-01.md +++ b/docs/java/basis/java-basic-questions-01.md @@ -260,7 +260,8 @@ Java 中的注释有三种: > > `default` 这个关键字很特殊,既属于程序控制,也属于类,方法和变量修饰符,还属于访问控制。 > -> - 在程序控制中,当在 `switch` 中匹配不到任何情况时,可以使用 `default` 来编写默认匹配的情况。在类,方法和变量修饰符中,从 JDK8 开始引入了默认方法,可以使用 `default` 关键字来定义一个方法的默认实现。 +> - 在程序控制中,当在 `switch` 中匹配不到任何情况时,可以使用 `default` 来编写默认匹配的情况。 +> - 在类,方法和变量修饰符中,从 JDK8 开始引入了默认方法,可以使用 `default` 关键字来定义一个方法的默认实现。 > - 在访问控制中,如果一个方法前没有任何修饰符,则默认会有一个修饰符 `default`,但是这个修饰符加上了就会报错。 ### 自增自减运算符 From 5c3ce859f1325c62e13db8d03561290571487724 Mon Sep 17 00:00:00 2001 From: sam Date: Fri, 18 Feb 2022 11:24:51 +0800 Subject: [PATCH 2/7] =?UTF-8?q?rename=20title=20Java=20=E4=B8=AD=E6=9C=89?= =?UTF-8?q?=20`53`=20=E4=B8=AA=E5=85=B3=E9=94=AE=E5=AD=97=EF=BC=9A=20->=20?= =?UTF-8?q?Java=20=E4=B8=AD=E7=9A=84=20`53`=20=E4=B8=AA=E5=85=B3=E9=94=AE?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/java/basis/java-basic-questions-01.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/java/basis/java-basic-questions-01.md b/docs/java/basis/java-basic-questions-01.md index 124ef03c..cadbe82b 100644 --- a/docs/java/basis/java-basic-questions-01.md +++ b/docs/java/basis/java-basic-questions-01.md @@ -240,7 +240,7 @@ Java 中的注释有三种: 在我们编写程序的时候,需要大量地为程序、类、变量、方法等取名字,于是就有了标识符,简单来说,标识符就是一个名字。但是有一些标识符,Java 语言已经赋予了其特殊的含义,只能用于特定的地方,这些特殊的标识符就是关键字。因此,关键字是被赋予特殊含义的标识符。比如,在我们的日常生活中,如果我们想要开一家店,则要给这个店起一个名字,起的这个“名字”就叫标识符。但是我们店的名字不能叫“警察局”,因为“警察局”这个名字已经被赋予了特殊的含义,而“警察局”就是我们日常生活中的关键字。 -### Java 中有 `53` 个关键字: +### Java 中的 `53` 个关键字 | 分类 | 关键字 | | | | | | | | :------------------- | -------- | ---------- | -------- | ------------ | ---------- | --------- | ------ | From 578e00f18ee5586db0b04fe776e6662ef2e24c55 Mon Sep 17 00:00:00 2001 From: sam Date: Fri, 18 Feb 2022 11:34:16 +0800 Subject: [PATCH 3/7] update java-basic-questions-01.md --- docs/java/basis/java-basic-questions-01.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/java/basis/java-basic-questions-01.md b/docs/java/basis/java-basic-questions-01.md index cadbe82b..0a94349d 100644 --- a/docs/java/basis/java-basic-questions-01.md +++ b/docs/java/basis/java-basic-questions-01.md @@ -502,7 +502,7 @@ public class SuperSuperMan extends SuperMan { > 因为 Java 只有值传递,所以,对于 == 来说,不管是比较基本数据类型,还是引用数据类型的变量,其本质比较的都是值,只是引用类型变量存的值是对象的地址。 -**`equals()`** 不能用于判断基本数据类型的变量,只能用来判断两个对象是否相等。`equals()`方法存在于`Object`类中,而`Object`类是所有类的直接或间接父类。 +**`equals()`** 不能用于判断基本数据类型的变量,只能用来判断两个对象是否相等。`equals()`方法存在于`Object`类中,而`Object`类是所有类的直接或间接父类,因此所有的类都有`equals()`方法。 `Object` 类 `equals()` 方法: From abe6e474e6a8ca76a8e1e136fd24c8b8ccc67f3e Mon Sep 17 00:00:00 2001 From: sam Date: Fri, 18 Feb 2022 11:56:22 +0800 Subject: [PATCH 4/7] =?UTF-8?q?fix=20incorrect=20desc,=20use=20=E9=87=8D?= =?UTF-8?q?=E5=86=99=20instead=20of=20=E8=A6=86=E7=9B=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/java/basis/java-basic-questions-01.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/java/basis/java-basic-questions-01.md b/docs/java/basis/java-basic-questions-01.md index 0a94349d..838ac4b2 100644 --- a/docs/java/basis/java-basic-questions-01.md +++ b/docs/java/basis/java-basic-questions-01.md @@ -514,8 +514,8 @@ public boolean equals(Object obj) { `equals()` 方法存在两种使用情况: -- **类没有覆盖 `equals()`方法** :通过`equals()`比较该类的两个对象时,等价于通过“==”比较这两个对象,使用的默认是 `Object`类`equals()`方法。 -- **类覆盖了 `equals()`方法** :一般我们都覆盖 `equals()`方法来比较两个对象中的属性是否相等;若它们的属性相等,则返回 true(即,认为这两个对象相等)。 +- **类没有重写 `equals()`方法** :通过`equals()`比较该类的两个对象时,等价于通过“==”比较这两个对象,使用的默认是 `Object`类`equals()`方法。 +- **类重写了 `equals()`方法** :一般我们都重写 `equals()`方法来比较两个对象中的属性是否相等;若它们的属性相等,则返回 true(即,认为这两个对象相等)。 举个例子(这里只是为了举例。实际上,你按照下面这种写法的话,像 IDEA 这种比较智能的 IDE 都会提示你将 `==` 换成 `equals()` ): From 55733ca44323f6a3cc1321809dc4a7cdf573cc3b Mon Sep 17 00:00:00 2001 From: sam Date: Fri, 18 Feb 2022 14:29:11 +0800 Subject: [PATCH 5/7] remove redundant `;` --- docs/java/basis/java-basic-questions-03.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/java/basis/java-basic-questions-03.md b/docs/java/basis/java-basic-questions-03.md index ab3e5eda..b5a4559f 100644 --- a/docs/java/basis/java-basic-questions-03.md +++ b/docs/java/basis/java-basic-questions-03.md @@ -271,7 +271,7 @@ Finally ```java public static void main(String[] args) { - System.out.println(f(2));; + System.out.println(f(2)); } public static int f(int value) { From c554ff79fea3782e4947d4fbf78d15adee1035fe Mon Sep 17 00:00:00 2001 From: sam Date: Fri, 18 Feb 2022 14:29:25 +0800 Subject: [PATCH 6/7] update java-basic-questions-01.md --- docs/java/basis/java-basic-questions-01.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/java/basis/java-basic-questions-01.md b/docs/java/basis/java-basic-questions-01.md index 838ac4b2..21c873ae 100644 --- a/docs/java/basis/java-basic-questions-01.md +++ b/docs/java/basis/java-basic-questions-01.md @@ -584,7 +584,7 @@ public native int hashCode(); 下面这段内容摘自我的 Java 启蒙书《Head First Java》: -> 当你把对象加入 `HashSet` 时,`HashSet` 会先计算对象的 `hashCode` 值来判断对象加入的位置,同时也会与其他已经加入的对象的 `hashCode` 值作比较,如果没有相符的 `hashCode`,`HashSet` 会假设对象没有重复出现。但是如果发现有相同 `hashCode` 值的对象,这时会调用 `equals()` 方法来检查 `hashCode` 相等的对象是否真的相同。如果两者相同,`HashSet` 就不会让其加入操作成功。如果不同的话,就会重新散列到其他位置。。这样我们就大大减少了 `equals` 的次数,相应就大大提高了执行速度。 +> 当你把对象加入 `HashSet` 时,`HashSet` 会先计算对象的 `hashCode` 值来判断对象加入的位置,同时也会与其他已经加入的对象的 `hashCode` 值作比较,如果没有相符的 `hashCode`,`HashSet` 会假设对象没有重复出现。但是如果发现有相同 `hashCode` 值的对象,这时会调用 `equals()` 方法来检查 `hashCode` 相等的对象是否真的相同。如果两者相同,`HashSet` 就不会让其加入操作成功。如果不同的话,就会重新散列到其他位置。这样我们就大大减少了 `equals` 的次数,相应就大大提高了执行速度。 其实, `hashCode()` 和 `equals()`都是用于比较两个对象是否相等。 @@ -605,7 +605,7 @@ public native int hashCode(); 总结下来就是 : - 如果两个对象的`hashCode` 值相等,那这两个对象不一定相等(哈希碰撞)。 -- 如果两个对象的`hashCode` 值相等并且`equals()`方法返回 `true`,我们才认为这两个对象相等。 +- 如果两个对象的`hashCode` 值相等并且`equals()`方法也返回 `true`,我们才认为这两个对象相等。 - 如果两个对象的`hashCode` 值不相等,我们就可以直接认为这两个对象不相等。 相信大家看了我前面对 `hashCode()` 和 `equals()` 的介绍之后,下面这个问题已经难不倒你们了。 From b47052c7373219196a0f533320b2ce2bb8b4744f Mon Sep 17 00:00:00 2001 From: sam Date: Fri, 18 Feb 2022 14:36:20 +0800 Subject: [PATCH 7/7] improve code space gap in why-there-only-value-passing-in-java.md --- docs/java/basis/why-there-only-value-passing-in-java.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/java/basis/why-there-only-value-passing-in-java.md b/docs/java/basis/why-there-only-value-passing-in-java.md index fabe3abb..9167002e 100644 --- a/docs/java/basis/why-there-only-value-passing-in-java.md +++ b/docs/java/basis/why-there-only-value-passing-in-java.md @@ -26,7 +26,7 @@ String hello = "Hello!"; sayHello(hello); // str 为形参 void sayHello(String str) { - System.out.println(str); + System.out.println(str); } ```