From 26afcc7706e8540a4454f8c30880fa25d416d6d4 Mon Sep 17 00:00:00 2001 From: guide Date: Mon, 21 Mar 2022 15:04:27 +0800 Subject: [PATCH] =?UTF-8?q?[docs=20update]=E5=AE=8C=E5=96=84=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/java/basis/java-basic-questions-02.md | 13 +++++++++++++ .../java/concurrent/java-concurrent-questions-01.md | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/docs/java/basis/java-basic-questions-02.md b/docs/java/basis/java-basic-questions-02.md index 04f8c5c0..9010d565 100644 --- a/docs/java/basis/java-basic-questions-02.md +++ b/docs/java/basis/java-basic-questions-02.md @@ -268,6 +268,19 @@ public final class String implements java.io.Serializable, Comparable, C > > 补充(来自[issue 675](https://github.com/Snailclimb/JavaGuide/issues/675)):在 Java 9 之后,`String` 、`StringBuilder` 与 `StringBuffer` 的实现改用 `byte` 数组存储字符串。 > +> ```java +> public final class String implements java.io.Serializable,Comparable, CharSequence { +> // @Stable 注解表示变量最多被修改一次,称为“稳定的”。 +> @Stable +> private final byte[] value; +> } +> +> abstract class AbstractStringBuilder implements Appendable, CharSequence { +> byte[] value; +> +> } +> ``` +> > **Java 9 为何要将 `String` 的底层实现由 `char[]` 改成了 `byte[]` ?** > > 新版的 String 其实支持两个编码方案: Latin-1 和 UTF-16。如果字符串中包含的汉字没有超过 Latin-1 可表示范围内的字符,那就会使用 Latin-1 作为编码方案。Latin-1 编码方案下,`byte` 占一个字节(8位),`char` 占用2个字节(16),`byte` 相较 `char` 节省一半的内存空间。 diff --git a/docs/java/concurrent/java-concurrent-questions-01.md b/docs/java/concurrent/java-concurrent-questions-01.md index 641409fa..c19722ea 100644 --- a/docs/java/concurrent/java-concurrent-questions-01.md +++ b/docs/java/concurrent/java-concurrent-questions-01.md @@ -92,8 +92,8 @@ public class MultiThread { ## 说说并发与并行的区别? -- **并发:** 同一时间段,多个任务都在执行 (单位时间内不一定同时执行); -- **并行:** 单位时间内,多个任务同时执行。 +- **并发**:两个及两个以上的作业在同一 **时间段** 内执行。 +- **并行**:两个及两个以上的作业在同一 **时刻** 执行。 ## 为什么要使用多线程呢?