1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-25 02:27:10 +08:00

Update java基础知识总结.md

This commit is contained in:
guide 2021-11-23 17:54:10 +08:00
parent 9257f34585
commit 878067bfa6

View File

@ -879,7 +879,7 @@ public final class String implements java.io.Serializable, Comparable<String>, C
} }
``` ```
> 🐛修正 我们知道被 `final` 关键字修饰的类不能被继承,修饰的方法不能被重写,修饰的变量是基本数据类型则值不能改变,修饰的变量是引用类型则不能再指向其他对象。因此,`final` 关键字修饰的数组保存字符串并不是 `String` 不可变的根本原因,因为这个数组保存的字符串是可变的(`final` 修饰引用类型变量的情况)。 > 🐛 修正 我们知道被 `final` 关键字修饰的类不能被继承,修饰的方法不能被重写,修饰的变量是基本数据类型则值不能改变,修饰的变量是引用类型则不能再指向其他对象。因此,`final` 关键字修饰的数组保存字符串并不是 `String` 不可变的根本原因,因为这个数组保存的字符串是可变的(`final` 修饰引用类型变量的情况)。
> >
> `String` 真正不可变有下面几点原因: > `String` 真正不可变有下面几点原因:
> >
@ -890,7 +890,7 @@ public final class String implements java.io.Serializable, Comparable<String>, C
> >
> 补充(来自[issue 675](https://github.com/Snailclimb/JavaGuide/issues/675)):在 Java 9 之后String 、`StringBuilder``StringBuffer` 的实现改用 byte 数组存储字符串 `private final byte[] value` > 补充(来自[issue 675](https://github.com/Snailclimb/JavaGuide/issues/675)):在 Java 9 之后String 、`StringBuilder``StringBuffer` 的实现改用 byte 数组存储字符串 `private final byte[] value`
`StringBuilder``StringBuffer` 都继承自 `AbstractStringBuilder` 类,在 `AbstractStringBuilder` 中也是使用字符数组保存字符串,不过没有使用 `final` `private` 关键字修饰,最关键的是这个 `AbstractStringBuilder` 类还提供了很多修改字符串的方法比如 `append` 方法。 `StringBuilder``StringBuffer` 都继承自 `AbstractStringBuilder` 类,在 `AbstractStringBuilder` 中也是使用字符数组保存字符串,不过没有使用 `final``private` 关键字修饰,最关键的是这个 `AbstractStringBuilder` 类还提供了很多修改字符串的方法比如 `append` 方法。
```java ```java
abstract class AbstractStringBuilder implements Appendable, CharSequence { abstract class AbstractStringBuilder implements Appendable, CharSequence {
@ -962,7 +962,7 @@ protected void finalize() throws Throwable { }//实例被垃圾回收器回收
浅拷贝的示例代码如下,我们这里实现了 `Cloneable` 接口,并重写了 `clone()` 方法。 浅拷贝的示例代码如下,我们这里实现了 `Cloneable` 接口,并重写了 `clone()` 方法。
`clone()` 方法的实现很简单,直接调用的是父类 `Object``clone()` 方法。 `clone()` 方法的实现很简单,直接调用的是父类 `Object``clone()` 方法。
```java ```java
public class Address implements Cloneable{ public class Address implements Cloneable{