From f7c9abe13908bfc429d368d1873e17adda1fa52e Mon Sep 17 00:00:00 2001 From: guide Date: Mon, 22 Nov 2021 21:42:31 +0800 Subject: [PATCH] =?UTF-8?q?Update=20java=E5=9F=BA=E7=A1=80=E7=9F=A5?= =?UTF-8?q?=E8=AF=86=E6=80=BB=E7=BB=93.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/java/basis/java基础知识总结.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/java/basis/java基础知识总结.md b/docs/java/basis/java基础知识总结.md index 51ab0217..9173e293 100644 --- a/docs/java/basis/java基础知识总结.md +++ b/docs/java/basis/java基础知识总结.md @@ -1047,6 +1047,8 @@ public final class String implements java.io.Serializable, Comparable, C > 1. 保存字符串的数组被 `final` 修饰且为私有的,并且`String` 类没有提供/暴露修改这个字符串的方法。 > 2. `String` 类被 `final` 修饰导致其不能被继承,进而避免了子类破坏 `String` 不可变。 > +> 相关阅读:[如何理解 String 类型值的不可变? - 知乎提问](https://www.zhihu.com/question/20618891/answer/114125846) +> > 补充(来自[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` 方法。