From 704d0a3a1086e9cda57f2791866d73c67c5836d5 Mon Sep 17 00:00:00 2001 From: yueyang Date: Wed, 16 Feb 2022 17:34:21 +0800 Subject: [PATCH 01/66] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit lator -> later --- docs/java/jvm/jvm-intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/java/jvm/jvm-intro.md b/docs/java/jvm/jvm-intro.md index d89ab731..94ae6a19 100644 --- a/docs/java/jvm/jvm-intro.md +++ b/docs/java/jvm/jvm-intro.md @@ -314,7 +314,7 @@ JVM的参数非常之多,这里只列举比较重要的几个,通过各种 |------|------------|------------|------| | -Xms | 初始堆大小 | 物理内存的1/64(<1GB) |默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制. | -Xmx | 最大堆大小 | 物理内存的1/4(<1GB) | 默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制 -| -Xmn | 年轻代大小(1.4or lator) | |注意:此处的大小是(eden+ 2 survivor space).与jmap -heap中显示的New gen是不同的。整个堆大小=年轻代大小 + 老年代大小 + 持久代(永久代)大小.增大年轻代后,将会减小年老代大小.此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8 +| -Xmn | 年轻代大小(1.4or later) | |注意:此处的大小是(eden+ 2 survivor space).与jmap -heap中显示的New gen是不同的。整个堆大小=年轻代大小 + 老年代大小 + 持久代(永久代)大小.增大年轻代后,将会减小年老代大小.此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8 | -XX:NewSize | 设置年轻代大小(for 1.3/1.4) | | | -XX:MaxNewSize | 年轻代最大值(for 1.3/1.4) | | | -XX:PermSize | 设置持久代(perm gen)初始值 | 物理内存的1/64 | From d9b977483c4f90bb262b0776def1bc7981610e04 Mon Sep 17 00:00:00 2001 From: yueyang Date: Wed, 16 Feb 2022 21:31:53 +0800 Subject: [PATCH 02/66] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 而这个加锁度 -> 而这个加锁读 --- docs/database/mysql/mysql知识点&面试题总结.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/database/mysql/mysql知识点&面试题总结.md b/docs/database/mysql/mysql知识点&面试题总结.md index b07247b2..71fc94a8 100644 --- a/docs/database/mysql/mysql知识点&面试题总结.md +++ b/docs/database/mysql/mysql知识点&面试题总结.md @@ -276,7 +276,7 @@ mysql> SELECT @@tx_isolation; ~~这里需要注意的是:与 SQL 标准不同的地方在于 InnoDB 存储引擎在 **REPEATABLE-READ(可重读)** 事务隔离级别下使用的是 Next-Key Lock 锁算法,因此可以避免幻读的产生,这与其他数据库系统(如 SQL Server)是不同的。所以说 InnoDB 存储引擎的默认支持的隔离级别是 **REPEATABLE-READ(可重读)** 已经可以完全保证事务的隔离性要求,即达到了 SQL 标准的 **SERIALIZABLE(可串行化)** 隔离级别。~~ -🐛 问题更正:**MySQL InnoDB 的 REPEATABLE-READ(可重读)并不保证避免幻读,需要应用使用加锁读来保证。而这个加锁度使用到的机制就是 Next-Key Locks。** +🐛 问题更正:**MySQL InnoDB 的 REPEATABLE-READ(可重读)并不保证避免幻读,需要应用使用加锁读来保证。而这个加锁读使用到的机制就是 Next-Key Locks。** 因为隔离级别越低,事务请求的锁越少,所以大部分数据库系统的隔离级别都是 **READ-COMMITTED(读取提交内容)** ,但是你要知道的是 InnoDB 存储引擎默认使用 **REPEATABLE-READ(可重读)** 并不会有任何性能损失。 From e9614fbd7f1203948639596d8ddad946bfdfbbad Mon Sep 17 00:00:00 2001 From: sam Date: Thu, 17 Feb 2022 06:05:34 +0800 Subject: [PATCH 03/66] [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 b8af5d4775143e1d436c411fd37d331baad4ba1a Mon Sep 17 00:00:00 2001 From: yueyang Date: Thu, 17 Feb 2022 09:08:42 +0800 Subject: [PATCH 04/66] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在走一遍主索引 -> 再走一遍主索引 --- docs/database/mysql/mysql-index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/database/mysql/mysql-index.md b/docs/database/mysql/mysql-index.md index 5dd4e526..0fbf4f36 100644 --- a/docs/database/mysql/mysql-index.md +++ b/docs/database/mysql/mysql-index.md @@ -84,7 +84,7 @@ B 树也称 B-树,全称为 **多路平衡查找树** ,B+ 树是 B 树的一 MyISAM 引擎中,B+Tree 叶节点的 data 域存放的是数据记录的地址。在索引检索的时候,首先按照 B+Tree 搜索算法搜索索引,如果指定的 Key 存在,则取出其 data 域的值,然后以 data 域的值为地址读取相应的数据记录。这被称为“非聚簇索引”。 -InnoDB 引擎中,其数据文件本身就是索引文件。相比 MyISAM,索引文件和数据文件是分离的,其表数据文件本身就是按 B+Tree 组织的一个索引结构,树的叶节点 data 域保存了完整的数据记录。这个索引的 key 是数据表的主键,因此 InnoDB 表数据文件本身就是主索引。这被称为“聚簇索引(或聚集索引)”,而其余的索引都作为辅助索引,辅助索引的 data 域存储相应记录主键的值而不是地址,这也是和 MyISAM 不同的地方。在根据主索引搜索时,直接找到 key 所在的节点即可取出数据;在根据辅助索引查找时,则需要先取出主键的值,在走一遍主索引。 因此,在设计表的时候,不建议使用过长的字段作为主键,也不建议使用非单调的字段作为主键,这样会造成主索引频繁分裂。 +InnoDB 引擎中,其数据文件本身就是索引文件。相比 MyISAM,索引文件和数据文件是分离的,其表数据文件本身就是按 B+Tree 组织的一个索引结构,树的叶节点 data 域保存了完整的数据记录。这个索引的 key 是数据表的主键,因此 InnoDB 表数据文件本身就是主索引。这被称为“聚簇索引(或聚集索引)”,而其余的索引都作为辅助索引,辅助索引的 data 域存储相应记录主键的值而不是地址,这也是和 MyISAM 不同的地方。在根据主索引搜索时,直接找到 key 所在的节点即可取出数据;在根据辅助索引查找时,则需要先取出主键的值,再走一遍主索引。 因此,在设计表的时候,不建议使用过长的字段作为主键,也不建议使用非单调的字段作为主键,这样会造成主索引频繁分裂。 ## 索引类型 @@ -263,4 +263,4 @@ ALTER TABLE `table_name` ADD FULLTEXT ( `column`) ```sql ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` ) -``` \ No newline at end of file +``` From 9bd22b8ba1538c65dfdbe293327c2850ae7ed851 Mon Sep 17 00:00:00 2001 From: yueyang Date: Thu, 17 Feb 2022 14:26:57 +0800 Subject: [PATCH 05/66] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 加锁度 -> 加锁读 --- docs/database/mysql/transaction-isolation-level.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/database/mysql/transaction-isolation-level.md b/docs/database/mysql/transaction-isolation-level.md index 4be2f5fd..33c20a5f 100644 --- a/docs/database/mysql/transaction-isolation-level.md +++ b/docs/database/mysql/transaction-isolation-level.md @@ -74,7 +74,7 @@ mysql> SELECT @@tx_isolation; ~~这里需要注意的是:与 SQL 标准不同的地方在于 InnoDB 存储引擎在 **REPEATABLE-READ(可重读)** 事务隔离级别下使用的是 Next-Key Lock 锁算法,因此可以避免幻读的产生,这与其他数据库系统(如 SQL Server)是不同的。所以说 InnoDB 存储引擎的默认支持的隔离级别是 **REPEATABLE-READ(可重读)** 已经可以完全保证事务的隔离性要求,即达到了 SQL 标准的 **SERIALIZABLE(可串行化)** 隔离级别。~~ -🐛 问题更正:**MySQL InnoDB 的 REPEATABLE-READ(可重读)并不保证避免幻读,需要应用使用加锁读来保证。而这个加锁度使用到的机制就是 Next-Key Locks。** +🐛 问题更正:**MySQL InnoDB 的 REPEATABLE-READ(可重读)并不保证避免幻读,需要应用使用加锁读来保证。而这个加锁读使用到的机制就是 Next-Key Locks。** 因为隔离级别越低,事务请求的锁越少,所以大部分数据库系统的隔离级别都是 **READ-COMMITTED(读取提交内容)** ,但是你要知道的是 InnoDB 存储引擎默认使用 **REPEATABLE-READ(可重读)** 并不会有任何性能损失。 From d1510451df7af5ba5e922f53128e5550c30a3872 Mon Sep 17 00:00:00 2001 From: yueyang Date: Thu, 17 Feb 2022 17:52:11 +0800 Subject: [PATCH 06/66] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 显示地 -> 显式地 --- docs/database/redis/redis-questions-01.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/database/redis/redis-questions-01.md b/docs/database/redis/redis-questions-01.md index 469d2754..603eee53 100644 --- a/docs/database/redis/redis-questions-01.md +++ b/docs/database/redis/redis-questions-01.md @@ -577,7 +577,7 @@ AOF 文件的保存位置和 RDB 文件的位置相同,都是通过 dir 参数 ```conf appendfsync always #每次有数据修改发生时都会写入AOF文件,这样会严重降低Redis的速度 -appendfsync everysec #每秒钟同步一次,显示地将多个写命令同步到硬盘 +appendfsync everysec #每秒钟同步一次,显式地将多个写命令同步到硬盘 appendfsync no #让操作系统决定何时进行同步 ``` From 5c3ce859f1325c62e13db8d03561290571487724 Mon Sep 17 00:00:00 2001 From: sam Date: Fri, 18 Feb 2022 11:24:51 +0800 Subject: [PATCH 07/66] =?UTF-8?q?rename=20title=20Java=20=E4=B8=AD?= =?UTF-8?q?=E6=9C=89=20`53`=20=E4=B8=AA=E5=85=B3=E9=94=AE=E5=AD=97?= =?UTF-8?q?=EF=BC=9A=20->=20Java=20=E4=B8=AD=E7=9A=84=20`53`=20=E4=B8=AA?= =?UTF-8?q?=E5=85=B3=E9=94=AE=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 08/66] 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 09/66] =?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 10/66] 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 11/66] 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 12/66] 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); } ``` From 6d06381bc940356bbabcfb1b35e13f3e67c91d43 Mon Sep 17 00:00:00 2001 From: yueyang Date: Fri, 18 Feb 2022 15:47:13 +0800 Subject: [PATCH 13/66] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 加锁度 -> 加锁读 --- docs/system-design/framework/spring/spring-transaction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/system-design/framework/spring/spring-transaction.md b/docs/system-design/framework/spring/spring-transaction.md index 05cf1bf0..77b63461 100644 --- a/docs/system-design/framework/spring/spring-transaction.md +++ b/docs/system-design/framework/spring/spring-transaction.md @@ -506,7 +506,7 @@ mysql> SELECT @@tx_isolation; ~~这里需要注意的是:与 SQL 标准不同的地方在于 InnoDB 存储引擎在 **REPEATABLE-READ(可重读)** 事务隔离级别下使用的是Next-Key Lock 锁算法,因此可以避免幻读的产生,这与其他数据库系统(如 SQL Server)是不同的。所以说InnoDB 存储引擎的默认支持的隔离级别是 **REPEATABLE-READ(可重读)** 已经可以完全保证事务的隔离性要求,即达到了 SQL标准的 **SERIALIZABLE(可串行化)** 隔离级别。~~ -🐛问题更正:**MySQL InnoDB的REPEATABLE-READ(可重读)并不保证避免幻读,需要应用使用加锁读来保证。而这个加锁度使用到的机制就是 Next-Key Locks。** +🐛问题更正:**MySQL InnoDB的REPEATABLE-READ(可重读)并不保证避免幻读,需要应用使用加锁读来保证。而这个加锁读使用到的机制就是 Next-Key Locks。** 因为隔离级别越低,事务请求的锁越少,所以大部分数据库系统的隔离级别都是 **READ-COMMITTED(读取提交内容)** ,但是你要知道的是InnoDB 存储引擎默认使用 **REPEAaTABLE-READ(可重读)** 并不会有任何性能损失。 From 74a376acd3f61017b8c5a0fe7f75ac263af420c1 Mon Sep 17 00:00:00 2001 From: guide Date: Fri, 18 Feb 2022 20:37:16 +0800 Subject: [PATCH 14/66] Update java-thread-pool-summary.md --- docs/java/concurrent/java-thread-pool-summary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/java/concurrent/java-thread-pool-summary.md b/docs/java/concurrent/java-thread-pool-summary.md index 8887ca61..ab9e6491 100644 --- a/docs/java/concurrent/java-thread-pool-summary.md +++ b/docs/java/concurrent/java-thread-pool-summary.md @@ -392,7 +392,7 @@ pool-1-thread-2 End. Time = Sun Apr 12 11:14:47 CST 2020 return false; for (;;) { - //获取线程池中线程的数量 + //获取线程池中工作的线程的数量 int wc = workerCountOf(c); // core参数为true的话表明队列也满了,线程池大小变为 maximumPoolSize if (wc >= CAPACITY || From c5411299b2e0b9c937d12f9f3bb6196d6b388b9a Mon Sep 17 00:00:00 2001 From: guide Date: Fri, 18 Feb 2022 21:02:42 +0800 Subject: [PATCH 15/66] Update java-basic-questions-02.md --- docs/java/basis/java-basic-questions-02.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/java/basis/java-basic-questions-02.md b/docs/java/basis/java-basic-questions-02.md index 977d1563..5056445b 100644 --- a/docs/java/basis/java-basic-questions-02.md +++ b/docs/java/basis/java-basic-questions-02.md @@ -36,9 +36,11 @@ new 运算符,new 创建对象实例(对象实例在堆内存中),对象 - 对象的相等一般比较的是内存中存放的内容是否相等。 - 引用相等一般比较的是他们指向的内存地址是否相等。 -### 一个类的构造方法的作用是什么? 若一个类没有声明构造方法,该程序能正确执行吗? +### 一个类的构造方法的作用是什么? -构造方法主要作用是完成对类对象的初始化工作。 +构造方法是一种特殊的方法,主要作用是完成对象的初始化工作。 + +### 如果一个类没有声明构造方法,该程序能正确执行吗? 如果一个类没有声明构造方法,也可以执行!因为一个类即使没有声明构造方法也会有默认的不带参数的构造方法。如果我们自己添加了类的构造方法(无论是否有参),Java 就不会再添加默认的无参数的构造方法了,这时候,就不能直接 new 一个对象而不传递参数了,所以我们一直在不知不觉地使用构造方法,这也是为什么我们在创建对象的时候后面要加一个括号(因为要调用无参的构造方法)。如果我们重载了有参的构造方法,记得都要把无参的构造方法也写出来(无论是否用到),因为这可以帮助我们在创建对象的时候少踩坑。 From 01f07005a10b01ce4eec83e012b15c2b2c901ee2 Mon Sep 17 00:00:00 2001 From: guide Date: Fri, 18 Feb 2022 21:08:44 +0800 Subject: [PATCH 16/66] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d18137d6..82f58c6d 100755 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ 1. **线程池** :[Java 线程池详解](./docs/java/concurrent/java-thread-pool-summary.md)、[Java 线程池最佳实践](./docs/java/concurrent/java-thread-pool-best-practices.md) 2. [ThreadLocal 关键字解析](docs/java/concurrent/threadlocal.md) 3. [Java 并发容器总结](docs/java/concurrent/java-concurrent-collections.md) -4. [Atomic 原子类总结](docs/java/concurrent/atomic原子类总结.md) +4. [Atomic 原子类总结](docs/java/concurrent/atomic-classes.md) 5. [AQS 原理以及 AQS 同步组件总结](docs/java/concurrent/aqs原理以及aqs同步组件总结.md) 6. [CompletableFuture入门](docs/java/concurrent/completablefuture-intro.md) From d775fa9c358b18f79b8efc1d7923296b42469c47 Mon Sep 17 00:00:00 2001 From: yueyang Date: Sat, 19 Feb 2022 17:24:56 +0800 Subject: [PATCH 17/66] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 每个讲解 -> 每个将军 --- .../theorem&algorithm&protocol/raft-algorithm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/distributed-system/theorem&algorithm&protocol/raft-algorithm.md b/docs/distributed-system/theorem&algorithm&protocol/raft-algorithm.md index b1e964fe..0cd53468 100644 --- a/docs/distributed-system/theorem&algorithm&protocol/raft-algorithm.md +++ b/docs/distributed-system/theorem&algorithm&protocol/raft-algorithm.md @@ -21,7 +21,7 @@ tag: 解决方案大致可以理解成:先在所有的将军中选出一个大将军,用来做出所有的决定。 -举例如下:假如现在一共有 3 个将军 A,B 和 C,每个讲解都有一个随机时间的倒计时器,倒计时一结束,这个将军就把自己当成大将军候选人,然后派信使传递选举投票的信息给将军 B 和 C,如果将军 B 和 C 还没有把自己当作候选人(自己的倒计时还没有结束),并且没有把选举票投给其他人,它们就会把票投给将军 A,信使回到将军 A 时,将军 A 知道自己收到了足够的票数,成为大将军。在有了大将军之后,是否需要进攻就由大将军 A 决定,然后再去派信使通知另外两个将军,自己已经成为了大将军。如果一段时间还没收到将军 B 和 C 的回复(信使可能会被暗示),那就再重派一个信使,直到收到回复。 +举例如下:假如现在一共有 3 个将军 A,B 和 C,每个将军都有一个随机时间的倒计时器,倒计时一结束,这个将军就把自己当成大将军候选人,然后派信使传递选举投票的信息给将军 B 和 C,如果将军 B 和 C 还没有把自己当作候选人(自己的倒计时还没有结束),并且没有把选举票投给其他人,它们就会把票投给将军 A,信使回到将军 A 时,将军 A 知道自己收到了足够的票数,成为大将军。在有了大将军之后,是否需要进攻就由大将军 A 决定,然后再去派信使通知另外两个将军,自己已经成为了大将军。如果一段时间还没收到将军 B 和 C 的回复(信使可能会被暗示),那就再重派一个信使,直到收到回复。 ### 1.2 共识算法 From 393b670f187c1a9907c6d3efc28b34f3dabc81fe Mon Sep 17 00:00:00 2001 From: yueyang Date: Sat, 19 Feb 2022 18:25:44 +0800 Subject: [PATCH 18/66] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 想比 -> 相比 --- docs/distributed-system/rpc/dubbo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/distributed-system/rpc/dubbo.md b/docs/distributed-system/rpc/dubbo.md index 870cc45d..e436d388 100644 --- a/docs/distributed-system/rpc/dubbo.md +++ b/docs/distributed-system/rpc/dubbo.md @@ -71,7 +71,7 @@ Dubbo 目前已经有接近 34.4 k 的 Star 。 -在 **2020 年度 OSC 中国开源项目** 评选活动中,Dubbo 位列开发框架和基础组件类项目的第7名。想比几年前来说,热度和排名有所下降。 +在 **2020 年度 OSC 中国开源项目** 评选活动中,Dubbo 位列开发框架和基础组件类项目的第7名。相比几年前来说,热度和排名有所下降。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/%E6%BA%90%E7%A0%81/dubbo/image-20210107153159545.png) From 13b2e309400e3aa3a7bf65f9b1fe8c16c6abfaf5 Mon Sep 17 00:00:00 2001 From: guide Date: Sat, 19 Feb 2022 18:55:08 +0800 Subject: [PATCH 19/66] =?UTF-8?q?Update=20=E6=93=8D=E4=BD=9C=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E5=B8=B8=E8=A7=81=E9=9D=A2=E8=AF=95=E9=A2=98&?= =?UTF-8?q?=E7=9F=A5=E8=AF=86=E7=82=B9=E6=80=BB=E7=BB=93.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../操作系统常见面试题&知识点总结.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/cs-basics/operating-system/操作系统常见面试题&知识点总结.md b/docs/cs-basics/operating-system/操作系统常见面试题&知识点总结.md index 52850663..98aaadf7 100644 --- a/docs/cs-basics/operating-system/操作系统常见面试题&知识点总结.md +++ b/docs/cs-basics/operating-system/操作系统常见面试题&知识点总结.md @@ -74,8 +74,6 @@ tag: 🙋 **我:** 好的! 下图是 Java 内存区域,我们从 JVM 的角度来说一下线程和进程之间的关系吧! -> 如果你对 Java 内存区域 (运行时数据区) 这部分知识不太了解的话可以阅读一下这篇文章:[《可能是把 Java 内存区域讲的最清楚的一篇文章》](https://snailclimb.gitee.io/javaguide/#/docs/java/jvm/Java内存区域) - ![](https://oscimg.oschina.net/oscnet/up-cd8ac705f6f004c01e0a1312f1599430ba5.png) 从上图可以看出:一个进程中可以有多个线程,多个线程共享进程的**堆**和**方法区 (JDK1.8 之后的元空间)**资源,但是每个线程有自己的**程序计数器**、**虚拟机栈** 和 **本地方法栈**。 From 43189b34b47b5dbe6b96de16c317e5d347e21bf3 Mon Sep 17 00:00:00 2001 From: sam Date: Sun, 20 Feb 2022 09:04:34 +0800 Subject: [PATCH 20/66] add FAQ in idea-plug-in-development-intro.md --- .../idea-plug-in-development-intro.md | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md b/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md index 8f8822c5..067aacde 100644 --- a/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md +++ b/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md @@ -211,3 +211,69 @@ public class HelloAction extends AnAction { 我们开发 IDEA 插件主要是为了让 IDEA 更加好用,比如有些框架使用之后可以减少重复代码的编写、有些主题类型的插件可以让你的 IDEA 更好看。 我这篇文章的这个案例说实话只是为了让大家简单入门一下 IDEA 开发,没有任何实际应用意义。**如果你想要开发一个不错的 IDEA 插件的话,还要充分发挥想象,利用 IDEA 插件平台的能力。** + +## 常见问题一:JDK版本过低 + +创建好项目之后,运行 Gradle,出现如下报错 + +``` +FAILURE: Build failed with an exception. + +* What went wrong: +A problem occurred configuring root project 'string-template-error-scanner'. +> Could not resolve all artifacts for configuration ':classpath'. + > Could not resolve org.jetbrains.intellij.plugins:gradle-intellij-plugin:1.4.0. + Required by: + project : > org.jetbrains.intellij:org.jetbrains.intellij.gradle.plugin:1.4.0 + > Unable to find a matching variant of org.jetbrains.intellij.plugins:gradle-intellij-plugin:1.4.0: + - Variant 'apiElements' capability org.jetbrains.intellij.plugins:gradle-intellij-plugin:1.4.0: + - Incompatible attributes: + - Required org.gradle.jvm.version '8' and found incompatible value '11'. + - Required org.gradle.usage 'java-runtime' and found incompatible value 'java-api'. + - Other attributes: + - Found org.gradle.category 'library' but wasn't required. + - Required org.gradle.dependency.bundling 'external' and found compatible value 'external'. + - Found org.gradle.jvm.environment 'standard-jvm' but wasn't required. + - Required org.gradle.libraryelements 'jar' and found compatible value 'jar'. + - Found org.gradle.status 'release' but wasn't required. + - Found org.jetbrains.kotlin.platform.type 'jvm' but wasn't required. + - Variant 'runtimeElements' capability org.jetbrains.intellij.plugins:gradle-intellij-plugin:1.4.0: + - Incompatible attribute: + - Required org.gradle.jvm.version '8' and found incompatible value '11'. + - Other attributes: + - Found org.gradle.category 'library' but wasn't required. + - Required org.gradle.dependency.bundling 'external' and found compatible value 'external'. + - Found org.gradle.jvm.environment 'standard-jvm' but wasn't required. + - Required org.gradle.libraryelements 'jar' and found compatible value 'jar'. + - Found org.gradle.status 'release' but wasn't required. + - Required org.gradle.usage 'java-runtime' and found compatible value 'java-runtime'. + - Found org.jetbrains.kotlin.platform.type 'jvm' but wasn't required. + +* Try: +Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. + +* Get more help at https://help.gradle.org + +BUILD FAILED in 94ms +``` + +> 原因分析:一般情况下,我们都是使用 JDK8 进行开发,但是新版的 IDEA 插件的编译需要使用 JAVA11 版本以上,因此要把 JDK8 换成 JDK11。(设置方法:左上角点击 Settings -> Build, Execution, Deployment, Build Tools -> Gradle,在下面找到 Gradle JVM: 改成 Java11 再次运行 Gradle 即可) +> +> + +## 常见问题二:无法创建 org.jetbrains.intellij.utils.ArchiveUtils 的实例 + +``` +Build file 'D:\project\string-template-error-scanner\build.gradle' line: 3 + +An exception occurred applying plugin request [id: 'org.jetbrains.intellij', version: '1.4.0'] +> Failed to apply plugin [id 'org.jetbrains.intellij'] + > Could not create an instance of type org.jetbrains.intellij.utils.ArchiveUtils. + > Could not generate a decorated class for type ArchiveUtils. + > org/gradle/api/file/ArchiveOperations + +``` + +> 原因分析:这个问题我在 StackOverFlow、CSDN 等等网站搜了一大圈都从根源上找到怎么解决(知道的小伙伴可以编辑此页和我说一下~) +> +> 最后通过修改 `build.gradle` 中 org.jetbrains.intellij 的版本解决的,我创建好项目之后版本是 1.4.0,换成 0.6.3,再重新运行一次 Gradle 就可以了 From ab3d76742dd06a39c0a15614a22585340adb482d Mon Sep 17 00:00:00 2001 From: sam Date: Sun, 20 Feb 2022 09:05:19 +0800 Subject: [PATCH 21/66] fix typo in idea-plug-in-development-intro.md --- docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md b/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md index 067aacde..54b86aab 100644 --- a/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md +++ b/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md @@ -109,7 +109,7 @@ patchPluginXml { ## 03 手动创建 Action -我们可以把 Action 看作是 IDEA 提高的事件响应处理器,通过 Action 我们可以自定义一些事件处理逻辑/动作。比如说你点击某个菜单的时候,我们进行一个展示对话框的操作。 +我们可以把 Action 看作是 IDEA 提供的事件响应处理器,通过 Action 我们可以自定义一些事件处理逻辑/动作。比如说你点击某个菜单的时候,我们进行一个展示对话框的操作。 **第一步,右键`java`目录并选择 new 一个 Action** From c5a20e5b56292ffb523a85149829530364d416af Mon Sep 17 00:00:00 2001 From: sam Date: Sun, 20 Feb 2022 09:16:40 +0800 Subject: [PATCH 22/66] Enhance coherence in idea-plug-in-development-intro.md --- .../idea-tutorial/idea-tips/idea-plug-in-development-intro.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md b/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md index 54b86aab..7bb86ff1 100644 --- a/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md +++ b/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md @@ -130,9 +130,9 @@ patchPluginXml { ``` -并且 `java` 目录下为生成一个叫做 `HelloAction` 的类。并且,这个类继承了 `AnAction` ,并覆盖了 `actionPerformed()` 方法。这个 `actionPerformed` 方法就好比 JS 中的 `onClick` 方法,会在你点击的时候被触发对应的动作。 +并且 `java` 目录下会生成一个叫做 `HelloAction` 的类。这个类继承了 `AnAction` ,并覆盖了 `actionPerformed()` 方法。这个 `actionPerformed` 方法就好比 JS 中的 `onClick` 方法,会在你点击的时候触发对应的动作。 -我简单对`actionPerformed` 方法进行了修改,添加了一行代码。这行代码很简单,就是显示 1 个对话框并展示一些信息。 +我简单对 `actionPerformed` 方法进行了修改,添加了一行代码。这行代码很简单,就是显示 1 个对话框并展示一些信息。 ```java public class HelloAction extends AnAction { From a007da140fa43d09991252a359e647b4b68f1b4e Mon Sep 17 00:00:00 2001 From: sam Date: Sun, 20 Feb 2022 09:19:05 +0800 Subject: [PATCH 23/66] improve idea-plug-in-development-intro.md --- docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md b/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md index 7bb86ff1..737f4b59 100644 --- a/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md +++ b/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md @@ -169,7 +169,7 @@ public class HelloAction extends AnAction { ## 04 验收成果 -点击 `Gradle -> runIde` 就会启动一个默认了这个插件的 IDEA。然后,你可以在这个 IDEA 上实际使用这个插件了。 +点击 `Gradle -> Tasks -> intellij -> runIde` 就会启动一个默认了这个插件的 IDEA。然后,你可以在这个 IDEA 上实际使用这个插件了。 ![点击 runIde 就会启动一个默认了这个插件的 IDEA](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/2020-11/image-20201118075912490.png) From ffb6522d0fddb02b757b287f91c568f57ccb987f Mon Sep 17 00:00:00 2001 From: guide Date: Sun, 20 Feb 2022 14:31:10 +0800 Subject: [PATCH 24/66] =?UTF-8?q?[docs=20update]=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/.vuepress/config.js | 6 +++--- docs/.vuepress/styles/index.styl | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 00d3beec..c34e8e85 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -249,7 +249,7 @@ module.exports = config({ "数据库基础知识", "字符集", { - title: "MySQL", prefix: "mysql/", + title: "MySQL", prefix: "mysql/", icon: "mysql", children: [ "mysql知识点&面试题总结", "a-thousand-lines-of-mysql-study-notes", @@ -260,7 +260,7 @@ module.exports = config({ ], }, { - title: "Redis", prefix: "redis/", + title: "Redis", prefix: "redis/", icon: "redis", children: ["redis-questions-01", "3-commonly-used-cache-read-and-write-strategies"], }, ], @@ -321,7 +321,7 @@ module.exports = config({ children: [ "读写分离&分库分表", "负载均衡", { - title: "消息队列", prefix: "message-queue/", + title: "消息队列", prefix: "message-queue/", icon: "MQ", children: ["message-queue", "kafka知识点&面试题总结", "rocketmq-intro", "rocketmq-questions", "rabbitmq-intro"], }, ], diff --git a/docs/.vuepress/styles/index.styl b/docs/.vuepress/styles/index.styl index 18a6635e..8943c5b9 100644 --- a/docs/.vuepress/styles/index.styl +++ b/docs/.vuepress/styles/index.styl @@ -1,2 +1,2 @@ // import icon -@import '//at.alicdn.com/t/font_2922463_m6dpqhk3xfh.css' \ No newline at end of file +@import '//at.alicdn.com/t/font_2922463_j457c9usui.css' \ No newline at end of file From 45432bc233645b920861d210fde3455696caf9c3 Mon Sep 17 00:00:00 2001 From: yueyang Date: Sun, 20 Feb 2022 17:51:14 +0800 Subject: [PATCH 25/66] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 能出 -> 拿出 --- .../zookeeper/zookeeper-intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/distributed-system/distributed-process-coordination/zookeeper/zookeeper-intro.md b/docs/distributed-system/distributed-process-coordination/zookeeper/zookeeper-intro.md index 3ead663c..31c96f0f 100644 --- a/docs/distributed-system/distributed-process-coordination/zookeeper/zookeeper-intro.md +++ b/docs/distributed-system/distributed-process-coordination/zookeeper/zookeeper-intro.md @@ -174,7 +174,7 @@ Watcher(事件监听器),是 ZooKeeper 中的一个很重要的特性。Zo ![watcher机制](images/watche机制.png) -_破音:非常有用的一个特性,都能出小本本记好了,后面用到 ZooKeeper 基本离不开 Watcher(事件监听器)机制。_ +_破音:非常有用的一个特性,都拿出小本本记好了,后面用到 ZooKeeper 基本离不开 Watcher(事件监听器)机制。_ ### 3.6. 会话(Session) From ddd5b0dacdca7b78deab6d84b850d1f62cd4a0e6 Mon Sep 17 00:00:00 2001 From: yueyang Date: Sun, 20 Feb 2022 22:53:25 +0800 Subject: [PATCH 26/66] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 很简答 -> 很简单 --- .../zookeeper/zookeeper-plus.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/distributed-system/distributed-process-coordination/zookeeper/zookeeper-plus.md b/docs/distributed-system/distributed-process-coordination/zookeeper/zookeeper-plus.md index 11f2ac5a..19ad41e4 100644 --- a/docs/distributed-system/distributed-process-coordination/zookeeper/zookeeper-plus.md +++ b/docs/distributed-system/distributed-process-coordination/zookeeper/zookeeper-plus.md @@ -316,7 +316,7 @@ 首先肯定是如何获取锁,因为创建节点的唯一性,我们可以让多个客户端同时创建一个临时节点,**创建成功的就说明获取到了锁** 。然后没有获取到锁的客户端也像上面选主的非主节点创建一个 `watcher` 进行节点状态的监听,如果这个互斥锁被释放了(可能获取锁的客户端宕机了,或者那个客户端主动释放了锁)可以调用回调函数重新获得锁。 -> `zk` 中不需要向 `redis` 那样考虑锁得不到释放的问题了,因为当客户端挂了,节点也挂了,锁也释放了。是不是很简答? +> `zk` 中不需要向 `redis` 那样考虑锁得不到释放的问题了,因为当客户端挂了,节点也挂了,锁也释放了。是不是很简单? 那能不能使用 `zookeeper` 同时实现 **共享锁和独占锁** 呢?答案是可以的,不过稍微有点复杂而已。 From 6474a8cbf0bd2902f0457d601830a6a5178d9070 Mon Sep 17 00:00:00 2001 From: sam Date: Mon, 21 Feb 2022 05:10:55 +0800 Subject: [PATCH 27/66] add plugin distribution in idea-plug-in-development-intro.md --- .../idea-plug-in-development-intro.md | 24 ++++++++++++++++-- .../pictures/install-plugin-from-disk.png | Bin 0 -> 130389 bytes 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 docs/idea-tutorial/idea-tips/pictures/install-plugin-from-disk.png diff --git a/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md b/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md index 737f4b59..8475b57c 100644 --- a/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md +++ b/docs/idea-tutorial/idea-tips/idea-plug-in-development-intro.md @@ -197,7 +197,27 @@ public class HelloAction extends AnAction { ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/2020-11/image-20201118075803163.png) -## 06 深入学习 +## 06 打包分发 + +插件写好之后,如果我们想把插件分享给小伙伴使用的话要怎么做呢。 + +### 首先,我们要打包插件 + +执行 Gradle -> Tasks -> intellij -> buildPlugin + +执行完成后,项目中会生成一个 build 文件夹,点击进入后找到 distributions 文件夹,里面会出现一个 .zip 结尾的压缩包,里面打包了插件所需要的依赖、配置文件等。 + +### 其次,分发插件 + +打开 IDEA,在 Settings -> Plugins -> 点击小齿轮后选择 Install Plugin From Disk +![](./pictures/install-plugin-from-disk.png) + +### 最后,提交至官网 + +这步并不是必须的,如果你想把你的插件发布到官网上,别人直接可以在 [应用市场](https://plugins.jetbrains.com/) 中搜到你的插件的话可以做这步。 + + +## 07 深入学习 如果你想要深入学习的 IDEA 插件的话,可以看一下官网文档:[https://jetbrains.org/intellij/sdk/docs/basics/basics.html ](https://jetbrains.org/intellij/sdk/docs/basics/basics.html "https://jetbrains.org/intellij/sdk/docs/basics/basics.html ") 。 @@ -206,7 +226,7 @@ public class HelloAction extends AnAction { - [8 条经验轻松上手 IDEA 插件开发](https://developer.aliyun.com/article/777850?spm=a2c6h.12873581.0.dArticle777850.118d6446r096V4&groupCode=alitech "8 条经验轻松上手 IDEA 插件开发") - [IDEA 插件开发入门教程](https://blog.xiaohansong.com/idea-plugin-development.html "IDEA 插件开发入门教程") -## 07 后记 +## 08 后记 我们开发 IDEA 插件主要是为了让 IDEA 更加好用,比如有些框架使用之后可以减少重复代码的编写、有些主题类型的插件可以让你的 IDEA 更好看。 diff --git a/docs/idea-tutorial/idea-tips/pictures/install-plugin-from-disk.png b/docs/idea-tutorial/idea-tips/pictures/install-plugin-from-disk.png new file mode 100644 index 0000000000000000000000000000000000000000..08c664ece03c1c460160d4d7c6d2ca2ed71fa64a GIT binary patch literal 130389 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
L!&%e-Ky6+L(y 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 literal 0 HcmV?d00001 From 5498716d816cf7b735196724e3ed16f9c7d5f46d Mon Sep 17 00:00:00 2001 From: zhangzhe <2277100031@qq.com> Date: Mon, 21 Feb 2022 17:38:27 +0800 Subject: [PATCH 28/66] update 3-commonly-used-cache-read-and-write-strategies.md --- .../redis/3-commonly-used-cache-read-and-write-strategies.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/database/redis/3-commonly-used-cache-read-and-write-strategies.md b/docs/database/redis/3-commonly-used-cache-read-and-write-strategies.md index 84106786..00b6535a 100644 --- a/docs/database/redis/3-commonly-used-cache-read-and-write-strategies.md +++ b/docs/database/redis/3-commonly-used-cache-read-and-write-strategies.md @@ -99,7 +99,7 @@ Read/Write Through Pattern 中服务端把 cache 视为主要数据存储,从 ![](https://img-blog.csdnimg.cn/img_convert/9ada757c78614934aca11306f334638d.png) -Read-Through Pattern 实际只是在 Cache-Aside Pattern 之上进行了封装。在 Cache-Aside Pattern 下,发生读请求的时候,如果 cache 中不存在对应的数据,是由客户端自己负责把数据写入 cache,而 Read Through Pattern 则是 cache 服务自己来写入缓存的,这对客户端是透明的。 +Read-Through Pattern 实际只是在 Cache-Aside Pattern 之上进行了封装。在 Cache-Aside Pattern 下,发生读请求的时候,如果 cache 中不存在对应的数据,是由客户端自己负责把数据写入 cache,而 Read-Through Pattern 则是 cache 服务自己来写入缓存的,这对客户端是透明的。 和 Cache Aside Pattern 一样, Read-Through Pattern 也有首次请求数据一定不再 cache 的问题,对于热点数据可以提前放入缓存中。 From e4eba45e3b15edd3bbcadfe3af918be638b8e1be Mon Sep 17 00:00:00 2001 From: Gale <1372363493@qq.com> Date: Mon, 21 Feb 2022 19:18:50 +0800 Subject: [PATCH 29/66] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=86=85=E5=AD=98?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E5=A4=9A=E4=BD=99=E7=9A=84=E5=BC=95=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/java/jvm/memory-area.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/java/jvm/memory-area.md b/docs/java/jvm/memory-area.md index fae0c9ca..cba72dae 100644 --- a/docs/java/jvm/memory-area.md +++ b/docs/java/jvm/memory-area.md @@ -410,7 +410,7 @@ false String str1 = "abcd"; ``` -这种情况下,jvm 会先检查字符串常量池中有没有"abcd",如果字符串常量池中没有,则创建一个,然后 str1 指向字符串常量池中的对象,如果有,则直接将 str1 指向"abcd""; +这种情况下,jvm 会先检查字符串常量池中有没有"abcd",如果字符串常量池中没有,则创建一个,然后 str1 指向字符串常量池中的对象,如果有,则直接将 str1 指向"abcd"; 因此,`str1` 指向的是字符串常量池的对象。 From b67947fb7ee32f4403fd030eafdfa7904191d92a Mon Sep 17 00:00:00 2001 From: yueyang Date: Mon, 21 Feb 2022 19:43:54 +0800 Subject: [PATCH 30/66] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 主从结点 -> 主从节点 --- docs/high-performance/message-queue/rocketmq-intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/high-performance/message-queue/rocketmq-intro.md b/docs/high-performance/message-queue/rocketmq-intro.md index 2fbacfab..4f0fb3a6 100644 --- a/docs/high-performance/message-queue/rocketmq-intro.md +++ b/docs/high-performance/message-queue/rocketmq-intro.md @@ -376,7 +376,7 @@ emmm,就两个字—— **幂等** 。在编程中一个*幂等* 操作的特 上面的同步刷盘和异步刷盘是在单个结点层面的,而同步复制和异步复制主要是指的 `Borker` 主从模式下,主节点返回消息给客户端的时候是否需要同步从节点。 -- 同步复制: 也叫 “同步双写”,也就是说,**只有消息同步双写到主从结点上时才返回写入成功** 。 +- 同步复制: 也叫 “同步双写”,也就是说,**只有消息同步双写到主从节点上时才返回写入成功** 。 - 异步复制: **消息写入主节点之后就直接返回写入成功** 。 然而,很多事情是没有完美的方案的,就比如我们进行消息写入的节点越多就更能保证消息的可靠性,但是随之的性能也会下降,所以需要程序员根据特定业务场景去选择适应的主从复制方案。 From 370a6d616c1da6d5a7434ff3618bf2abb490fd2e Mon Sep 17 00:00:00 2001 From: sam Date: Tue, 22 Feb 2022 03:34:41 +0800 Subject: [PATCH 31/66] improve reflection.md: add white space and line feed --- docs/java/basis/reflection.md | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/docs/java/basis/reflection.md b/docs/java/basis/reflection.md index f0dd39e7..5d397f35 100644 --- a/docs/java/basis/reflection.md +++ b/docs/java/basis/reflection.md @@ -63,7 +63,7 @@ public class DebugInvocationHandler implements InvocationHandler { 如果我们动态获取到这些信息,我们需要依靠 Class 对象。Class 类对象将一个类的方法、变量等信息告诉运行的程序。Java 提供了四种方式获取 Class 对象: -**1.知道具体类的情况下可以使用:** +**1. 知道具体类的情况下可以使用:** ```java Class alunbarClass = TargetObject.class; @@ -71,30 +71,30 @@ Class alunbarClass = TargetObject.class; 但是我们一般是不知道具体类的,基本都是通过遍历包下面的类来获取 Class 对象,通过此方式获取 Class 对象不会进行初始化 -**2.通过 `Class.forName()`传入类的路径获取:** +**2. 通过 `Class.forName()`传入类的全路径获取:** ```java Class alunbarClass1 = Class.forName("cn.javaguide.TargetObject"); ``` -**3.通过对象实例`instance.getClass()`获取:** +**3. 通过对象实例`instance.getClass()`获取:** ```java TargetObject o = new TargetObject(); Class alunbarClass2 = o.getClass(); ``` -**4.通过类加载器`xxxClassLoader.loadClass()`传入类路径获取:** +**4. 通过类加载器`xxxClassLoader.loadClass()`传入类路径获取:** ```java Class clazz = ClassLoader.loadClass("cn.javaguide.TargetObject"); ``` -通过类加载器获取 Class 对象不会进行初始化,意味着不进行包括初始化等一系列步骤,静态块和静态对象不会得到执行 +通过类加载器获取 Class 对象不会进行初始化,意味着不进行包括初始化等一系列步骤,静态代码块和静态对象不会得到执行 ### 反射的一些基本操作 -1.创建一个我们要使用反射操作的类 `TargetObject`。 +1. 创建一个我们要使用反射操作的类 `TargetObject`。 ```java package cn.javaguide; @@ -116,7 +116,7 @@ public class TargetObject { } ``` -2.使用反射操作这个类的方法以及参数 +2. 使用反射操作这个类的方法以及参数 ```java package cn.javaguide; @@ -128,17 +128,19 @@ import java.lang.reflect.Method; public class Main { public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchFieldException { /** - * 获取TargetObject类的Class对象并且创建TargetObject类实例 + * 获取 TargetObject 类的 Class 对象并且创建 TargetObject 类实例 */ Class tagetClass = Class.forName("cn.javaguide.TargetObject"); TargetObject targetObject = (TargetObject) tagetClass.newInstance(); + /** - * 获取所有类中所有定义的方法 + * 获取 TargetObject 类中定义的所有方法 */ Method[] methods = tagetClass.getDeclaredMethods(); for (Method method : methods) { System.out.println(method.getName()); } + /** * 获取指定方法并调用 */ @@ -146,18 +148,20 @@ public class Main { String.class); publicMethod.invoke(targetObject, "JavaGuide"); + /** * 获取指定参数并对参数进行修改 */ Field field = tagetClass.getDeclaredField("value"); - //为了对类中的参数进行修改我们取消安全检查 + // 为了修改类中的私有字段我们必须取消安全检查 field.setAccessible(true); field.set(targetObject, "JavaGuide"); + /** * 调用 private 方法 */ Method privateMethod = tagetClass.getDeclaredMethod("privateMethod"); - //为了调用private方法我们取消安全检查 + // 为了调用 private 方法我们必须取消安全检查 privateMethod.setAccessible(true); privateMethod.invoke(targetObject); } From e2b84376fc272bde00c4eb56ca3c331912680cca Mon Sep 17 00:00:00 2001 From: sam Date: Tue, 22 Feb 2022 03:44:30 +0800 Subject: [PATCH 32/66] fix typo: taget -> target in reflection.md Signed-off-by: sam --- docs/java/basis/reflection.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/java/basis/reflection.md b/docs/java/basis/reflection.md index f0dd39e7..a1d53c2e 100644 --- a/docs/java/basis/reflection.md +++ b/docs/java/basis/reflection.md @@ -130,33 +130,33 @@ public class Main { /** * 获取TargetObject类的Class对象并且创建TargetObject类实例 */ - Class tagetClass = Class.forName("cn.javaguide.TargetObject"); - TargetObject targetObject = (TargetObject) tagetClass.newInstance(); + Class targetClass = Class.forName("cn.javaguide.TargetObject"); + TargetObject targetObject = (TargetObject) targetClass.newInstance(); /** * 获取所有类中所有定义的方法 */ - Method[] methods = tagetClass.getDeclaredMethods(); + Method[] methods = targetClass.getDeclaredMethods(); for (Method method : methods) { System.out.println(method.getName()); } /** * 获取指定方法并调用 */ - Method publicMethod = tagetClass.getDeclaredMethod("publicMethod", + Method publicMethod = targetClass.getDeclaredMethod("publicMethod", String.class); publicMethod.invoke(targetObject, "JavaGuide"); /** * 获取指定参数并对参数进行修改 */ - Field field = tagetClass.getDeclaredField("value"); + Field field = targetClass.getDeclaredField("value"); //为了对类中的参数进行修改我们取消安全检查 field.setAccessible(true); field.set(targetObject, "JavaGuide"); /** * 调用 private 方法 */ - Method privateMethod = tagetClass.getDeclaredMethod("privateMethod"); + Method privateMethod = targetClass.getDeclaredMethod("privateMethod"); //为了调用private方法我们取消安全检查 privateMethod.setAccessible(true); privateMethod.invoke(targetObject); @@ -177,6 +177,6 @@ value is JavaGuide **注意** : 有读者提到上面代码运行会抛出 `ClassNotFoundException` 异常,具体原因是你没有下面把这段代码的包名替换成自己创建的 `TargetObject` 所在的包 。 ```java -Class tagetClass = Class.forName("cn.javaguide.TargetObject"); +Class targetClass = Class.forName("cn.javaguide.TargetObject"); ``` From 548245e66931df2d68658cb71ceef8b998e9261b Mon Sep 17 00:00:00 2001 From: sam Date: Tue, 22 Feb 2022 04:09:24 +0800 Subject: [PATCH 33/66] reformat content in io.md Signed-off-by: sam --- docs/java/basis/io.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/java/basis/io.md b/docs/java/basis/io.md index 231da542..9bf93fb8 100644 --- a/docs/java/basis/io.md +++ b/docs/java/basis/io.md @@ -73,7 +73,7 @@ UNIX 系统下, IO 模型一共有 5 种: **同步阻塞 I/O**、**同步非 ### NIO (Non-blocking/New I/O) -Java 中的 NIO 于 Java 1.4 中引入,对应 `java.nio` 包,提供了 `Channel` , `Selector`,`Buffer` 等抽象。NIO 中的 N 可以理解为 Non-blocking,不单纯是 New。它支持面向缓冲的,基于通道的 I/O 操作方法。 对于高负载、高并发的(网络)应用,应使用 NIO 。 +Java 中的 NIO 于 Java 1.4 中引入,对应 `java.nio` 包,提供了 `Channel` , `Selector`,`Buffer` 等抽象。NIO 中的 N 可以理解为 Non-blocking,不单纯是 New。它是支持面向缓冲的,基于通道的 I/O 操作方法。 对于高负载、高并发的(网络)应用,应使用 NIO 。 Java 中的 NIO 可以看作是 **I/O 多路复用模型**。也有很多人认为,Java 中的 NIO 属于同步非阻塞 IO 模型。 @@ -93,9 +93,9 @@ Java 中的 NIO 可以看作是 **I/O 多路复用模型**。也有很多人认 ![](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/88ff862764024c3b8567367df11df6ab~tplv-k3u1fbpfcp-watermark.image) -IO 多路复用模型中,线程首先发起 select 调用,询问内核数据是否准备就绪,等内核把数据准备好了,用户线程再发起 read 调用。read 调用的过程(数据从内核空间->用户空间)还是阻塞的。 +IO 多路复用模型中,线程首先发起 select 调用,询问内核数据是否准备就绪,等内核把数据准备好了,用户线程再发起 read 调用。read 调用的过程(数据从内核空间 -> 用户空间)还是阻塞的。 -> 目前支持 IO 多路复用的系统调用,有 select,epoll 等等。select 系统调用,是目前几乎在所有的操作系统上都有支持 +> 目前支持 IO 多路复用的系统调用,有 select,epoll 等等。select 系统调用,目前几乎在所有的操作系统上都有支持。 > > - **select 调用** :内核提供的系统调用,它支持一次查询多个系统调用的可用状态。几乎所有的操作系统都支持。 > - **epoll 调用** :linux 2.6 内核,属于 select 调用的增强版本,优化了 IO 的执行效率。 From ffc79bba6513644c7e1fb182bfa9d29042bbbd44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=9C=E4=B8=89=E7=8E=AF=E7=89=9B=E5=93=A5?= Date: Tue, 22 Feb 2022 10:35:42 +0800 Subject: [PATCH 34/66] Update spring-common-annotations.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 官网注释: Session: Scopes a single bean definition to the lifecycle of a HTTP Session. Only valid in the context of a web-aware Spring ApplicationContext. 来自: https://docs.spring.io/spring-framework/docs/3.0.0.M3/reference/html/ch04s04.html --- .../system-design/framework/spring/spring-common-annotations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/system-design/framework/spring/spring-common-annotations.md b/docs/system-design/framework/spring/spring-common-annotations.md index 4f0378b3..883ba1b7 100644 --- a/docs/system-design/framework/spring/spring-common-annotations.md +++ b/docs/system-design/framework/spring/spring-common-annotations.md @@ -125,7 +125,7 @@ public Person personSingleton() { - singleton : 唯一 bean 实例,Spring 中的 bean 默认都是单例的。 - prototype : 每次请求都会创建一个新的 bean 实例。 - request : 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP request 内有效。 -- session : 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP session 内有效。 +- session : 每一个 HTTP Session 会产生一个新的 bean,该 bean 仅在当前 HTTP session 内有效。 #### 2.5. `@Configuration` From b5e19791c6365d0993a704a0d90f6d01965d34f4 Mon Sep 17 00:00:00 2001 From: guide Date: Tue, 22 Feb 2022 15:59:34 +0800 Subject: [PATCH 35/66] Update config.js --- docs/.vuepress/config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index c34e8e85..b30f8e48 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -307,7 +307,7 @@ module.exports = config({ }, "api-gateway", "distributed-id", { - title: "rpc", prefix: "rpc/", + title: "RPC", prefix: "rpc/", children: ["dubbo", "why-use-rpc"] }, "distributed-transaction", From 7442667be3edbf98b5e8d55dccfe158c3622baef Mon Sep 17 00:00:00 2001 From: SummerWen Date: Tue, 22 Feb 2022 16:21:37 +0800 Subject: [PATCH 36/66] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=E4=B8=8D?= =?UTF-8?q?=E5=8F=AF=E9=87=8D=E5=A4=8D=E8=AF=BB=E5=92=8C=E5=B9=BB=E8=AF=BB?= =?UTF-8?q?=E5=8C=BA=E5=88=AB=E4=B8=AD=E5=AF=B9=E5=B9=BB=E8=AF=BB=E7=9A=84?= =?UTF-8?q?=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/database/mysql/mysql知识点&面试题总结.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/database/mysql/mysql知识点&面试题总结.md b/docs/database/mysql/mysql知识点&面试题总结.md index 71fc94a8..2a300b18 100644 --- a/docs/database/mysql/mysql知识点&面试题总结.md +++ b/docs/database/mysql/mysql知识点&面试题总结.md @@ -241,7 +241,7 @@ MySQL InnoDB 引擎通过 **锁机制**、**MVCC** 等手段来保证事务的 **不可重复读和幻读区别:** -不可重复读的重点是修改比如多次读取一条记录发现其中某些列的值被修改,幻读的重点在于新增或者删除比如多次读取一条记录发现记录增多或减少了。 +不可重复读的重点是修改比如多次读取一条记录发现其中某些列的值被修改,幻读的重点在于新增或者删除比如多次查询同一条查询语句(DQL)时,记录发现记录增多或减少了。 ### 事务隔离级别有哪些? From 7550c29efd4cbf476b3b253b7bcf48ebd925e074 Mon Sep 17 00:00:00 2001 From: guide Date: Tue, 22 Feb 2022 21:42:35 +0800 Subject: [PATCH 37/66] [docs fix]typo --- 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 21c873ae..e7b99879 100644 --- a/docs/java/basis/java-basic-questions-01.md +++ b/docs/java/basis/java-basic-questions-01.md @@ -564,7 +564,7 @@ public boolean equals(Object anObject) { 面试官可能会问你:“你重写过 `hashCode()` 和 `equals()`么?为什么重写 `equals()` 时必须重写 `hashCode()` 方法?” -一个非常基础的问题,面试中的重中之重,然而,很多求职者还是会达不到点子上去。 +一个非常基础的问题,面试中的重中之重,然而,很多求职者还是会回答不到点子上去。 #### hashCode() 有什么用? From 72637e7c04bcd855879c77b223d4ceec718c44dc Mon Sep 17 00:00:00 2001 From: guide Date: Tue, 22 Feb 2022 21:46:34 +0800 Subject: [PATCH 38/66] Update java-basic-questions-01.md --- docs/java/basis/java-basic-questions-01.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/java/basis/java-basic-questions-01.md b/docs/java/basis/java-basic-questions-01.md index e7b99879..0222c434 100644 --- a/docs/java/basis/java-basic-questions-01.md +++ b/docs/java/basis/java-basic-questions-01.md @@ -105,11 +105,12 @@ JRE 是 Java 运行时环境。它是运行已编译 Java 程序所需的所有 相关阅读 👍:[《Differences Between Oracle JDK and OpenJDK》](https://www.baeldung.com/oracle-jdk-vs-openjdk) -### Java 和 C++的区别? +### Java 和 C++ 的区别? -我知道很多人没学过 C++,但是面试官就是没事喜欢拿咱们 Java 和 C++ 比呀!没办法!!!就算没学过 C++,也要记下来! +我知道很多人没学过 C++,但是面试官就是没事喜欢拿咱们 Java 和 C++ 比呀!没办法!!!就算没学过 C++,也要记下来。 + +虽然,Java 和 C++ 都是面向对象的语言,都支持封装、继承和多态,但是,它们还是有挺多不相同的地方: -- 都是面向对象的语言,都支持封装、继承和多态 - Java 不提供指针来直接访问内存,程序内存更加安全 - Java 的类是单继承的,C++ 支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承。 - Java 有自动内存管理垃圾回收机制(GC),不需要程序员手动释放无用内存。 From 666406fc48719845f6f0a2794d1731c82fe3d9d7 Mon Sep 17 00:00:00 2001 From: lishuihao <41326836+lishuihao@users.noreply.github.com> Date: Tue, 22 Feb 2022 22:46:52 +0800 Subject: [PATCH 39/66] Update mysql-index.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 主键索引错误内容修正 --- docs/database/mysql/mysql-index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/database/mysql/mysql-index.md b/docs/database/mysql/mysql-index.md index 0fbf4f36..04a46e44 100644 --- a/docs/database/mysql/mysql-index.md +++ b/docs/database/mysql/mysql-index.md @@ -94,7 +94,7 @@ InnoDB 引擎中,其数据文件本身就是索引文件。相比 MyISAM,索 一张数据表有只能有一个主键,并且主键不能为 null,不能重复。 -在 MySQL 的 InnoDB 的表中,当没有显示的指定表的主键时,InnoDB 会自动先检查表中是否有唯一索引的字段,如果有,则选择该字段为默认的主键,否则 InnoDB 将会自动创建一个 6Byte 的自增主键。 +在 MySQL 的 InnoDB 的表中,当没有显示的指定表的主键时,InnoDB 会自动先检查表中是否有唯一索引且不允许存在null值的字段,如果有,则选择该字段为默认的主键,否则 InnoDB 将会自动创建一个 6Byte 的自增主键。 ### 二级索引(辅助索引) From 4d6e6581e720d2fe8b8ce25a2c31edb3d5c17127 Mon Sep 17 00:00:00 2001 From: guide Date: Wed, 23 Feb 2022 22:33:39 +0800 Subject: [PATCH 40/66] Update java-basic-questions-02.md --- docs/java/basis/java-basic-questions-02.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/java/basis/java-basic-questions-02.md b/docs/java/basis/java-basic-questions-02.md index 5056445b..064a66cf 100644 --- a/docs/java/basis/java-basic-questions-02.md +++ b/docs/java/basis/java-basic-questions-02.md @@ -108,6 +108,20 @@ public class Student { - 多态不能调用“只在子类存在但在父类不存在”的方法; - 如果子类重写了父类的方法,真正执行的是子类覆盖的方法,如果子类没有覆盖父类的方法,执行的是父类的方法。 +### 接口和抽象类有什么共同点和区别? + +**共同点** : + +- 都不能被实例化。 +- 都可以包含抽象方法。 +- 都可以有默认实现的方法(Java 8 可以用 `default` 关键在接口中定义默认方法)。 + +**区别** : + +- 接口主要用于对类的行为进行约束,你实现了某个接口就具有了对应的行为。抽象类主要用于代码复用,强调的是所属关系(比如说我们抽象了一个发送短信的抽象类,)。 +- 一个类只能继承一个类,但是可以实现多个接口。 +- 接口中的成员变量只能是 `public static final` 类型的,不能被修改且必须有初始值,而抽象类的成员变量默认 default,可在子类中被重新定义,也可被重新赋值。 + ### 深拷贝和浅拷贝区别了解吗?什么是引用拷贝? 关于深拷贝和浅拷贝区别,我这里先给结论: From fb92ff19c456d09595eff7426279ba8c5a47fb24 Mon Sep 17 00:00:00 2001 From: guide Date: Wed, 23 Feb 2022 22:44:58 +0800 Subject: [PATCH 41/66] Update contribution-guideline.md --- docs/javaguide/contribution-guideline.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/javaguide/contribution-guideline.md b/docs/javaguide/contribution-guideline.md index fa0b992e..c26ad837 100644 --- a/docs/javaguide/contribution-guideline.md +++ b/docs/javaguide/contribution-guideline.md @@ -16,6 +16,7 @@ category: 走近项目 - [中文文案排版指北 - Github](https://github.com/sparanoid/chinese-copywriting-guidelines) - [写给大家看的中文排版指南 - 知乎](https://zhuanlan.zhihu.com/p/20506092) - [中文文案排版细则 - Dawner](https://dawner.top/posts/chinese-copywriting-rules/) +- [中文技术文档写作风格指南](https://github.com/yikeke/zh-style-guide/) 如果要提 issue/question 的话,强烈推荐阅读下面这些资料: From 618eb20f8d81a1bd8defcc2dec5fe0f680cc58d8 Mon Sep 17 00:00:00 2001 From: guide Date: Fri, 25 Feb 2022 18:03:11 +0800 Subject: [PATCH 42/66] =?UTF-8?q?[docs=20update]=E7=BD=91=E7=BB=9C?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +- docs/.vuepress/config.js | 5 +- docs/cs-basics/network/HTTPS中的TLS.md | 124 --------------- docs/cs-basics/network/http&https.md | 149 ++++++++++++++++++ docs/cs-basics/network/http1.0&http1.1.md | 107 +++++++++++++ .../network/images/Cut-Trough-Switching_0.gif | Bin 130759 -> 0 bytes .../images/http&https/HTTP1.0cache1.png | Bin 0 -> 4820 bytes .../images/http&https/HTTP1.0cache2.png | Bin 0 -> 4695 bytes .../images/http&https/HTTP1.1continue1.png | Bin 0 -> 3390 bytes .../images/http&https/HTTP1.1continue2.png | Bin 0 -> 5162 bytes .../network/images/http&https/OWF.png | Bin 0 -> 33902 bytes .../network/images/http&https/attack1.png | Bin 0 -> 12683 bytes .../images/http&https/digital-signature.png | Bin 0 -> 5402 bytes .../http&https/public-key-cryptography.png | Bin 0 -> 18241 bytes .../http&https/public-key-transmission.png | Bin 0 -> 9874 bytes .../http&https/symmetric-encryption.png | Bin 0 -> 15583 bytes docs/cs-basics/network/images/isp.png | Bin 10054 -> 0 bytes .../images/network-layer/TCP-IP-4-model.png | Bin 0 -> 27390 bytes .../network-protocol-overview.drawio | 1 + .../network/images/network-layer/smtp.png | Bin 0 -> 15488 bytes .../network-layer/transport-layer.drawio | 1 + .../osi&tcp-ip-model/TCP-IP-4-model.drawio | 1 + .../osi&tcp-ip-model/TCP-IP-4-model.png | Bin 0 -> 27390 bytes .../osi&tcp-ip-model/application-layer.drawio | 1 + .../osi&tcp-ip-model/application-layer.png | Bin 0 -> 14397 bytes .../osi&tcp-ip-model/nerwork-layer.drawio | 1 + .../images/osi&tcp-ip-model/nerwork-layer.png | Bin 0 -> 13953 bytes .../network-interface-layer.drawio | 1 + .../network-interface-layer.png | Bin 0 -> 13751 bytes .../osi&tcp-ip-model/osi-model-detail.png | Bin 0 -> 167005 bytes .../osi&tcp-ip-model/transport-layer.png | Bin 0 -> 6022 bytes docs/cs-basics/network/images/传输层.png | Bin 12986 -> 0 bytes docs/cs-basics/network/images/应用层.png | Bin 14925 -> 0 bytes .../network/images/数据链路层.png | Bin 10373 -> 0 bytes docs/cs-basics/network/images/物理层.png | Bin 10872 -> 0 bytes docs/cs-basics/network/images/网络层.png | Bin 14377 -> 0 bytes .../万维网的大致工作工程.png | Bin 47925 -> 0 bytes docs/cs-basics/network/osi&tcp-ip-model.md | 116 ++++++++++++++ ...试题.md => other-network-questions.md} | 149 ++++++++---------- 39 files changed, 451 insertions(+), 210 deletions(-) delete mode 100644 docs/cs-basics/network/HTTPS中的TLS.md create mode 100644 docs/cs-basics/network/http&https.md create mode 100644 docs/cs-basics/network/http1.0&http1.1.md delete mode 100644 docs/cs-basics/network/images/Cut-Trough-Switching_0.gif create mode 100644 docs/cs-basics/network/images/http&https/HTTP1.0cache1.png create mode 100644 docs/cs-basics/network/images/http&https/HTTP1.0cache2.png create mode 100644 docs/cs-basics/network/images/http&https/HTTP1.1continue1.png create mode 100644 docs/cs-basics/network/images/http&https/HTTP1.1continue2.png create mode 100644 docs/cs-basics/network/images/http&https/OWF.png create mode 100644 docs/cs-basics/network/images/http&https/attack1.png create mode 100644 docs/cs-basics/network/images/http&https/digital-signature.png create mode 100644 docs/cs-basics/network/images/http&https/public-key-cryptography.png create mode 100644 docs/cs-basics/network/images/http&https/public-key-transmission.png create mode 100644 docs/cs-basics/network/images/http&https/symmetric-encryption.png delete mode 100644 docs/cs-basics/network/images/isp.png create mode 100644 docs/cs-basics/network/images/network-layer/TCP-IP-4-model.png create mode 100644 docs/cs-basics/network/images/network-layer/network-protocol-overview.drawio create mode 100644 docs/cs-basics/network/images/network-layer/smtp.png create mode 100644 docs/cs-basics/network/images/network-layer/transport-layer.drawio create mode 100644 docs/cs-basics/network/images/osi&tcp-ip-model/TCP-IP-4-model.drawio create mode 100644 docs/cs-basics/network/images/osi&tcp-ip-model/TCP-IP-4-model.png create mode 100644 docs/cs-basics/network/images/osi&tcp-ip-model/application-layer.drawio create mode 100644 docs/cs-basics/network/images/osi&tcp-ip-model/application-layer.png create mode 100644 docs/cs-basics/network/images/osi&tcp-ip-model/nerwork-layer.drawio create mode 100644 docs/cs-basics/network/images/osi&tcp-ip-model/nerwork-layer.png create mode 100644 docs/cs-basics/network/images/osi&tcp-ip-model/network-interface-layer.drawio create mode 100644 docs/cs-basics/network/images/osi&tcp-ip-model/network-interface-layer.png create mode 100644 docs/cs-basics/network/images/osi&tcp-ip-model/osi-model-detail.png create mode 100644 docs/cs-basics/network/images/osi&tcp-ip-model/transport-layer.png delete mode 100644 docs/cs-basics/network/images/传输层.png delete mode 100644 docs/cs-basics/network/images/应用层.png delete mode 100644 docs/cs-basics/network/images/数据链路层.png delete mode 100644 docs/cs-basics/network/images/物理层.png delete mode 100644 docs/cs-basics/network/images/网络层.png delete mode 100644 docs/cs-basics/network/images/计算机网络知识点总结/万维网的大致工作工程.png create mode 100644 docs/cs-basics/network/osi&tcp-ip-model.md rename docs/cs-basics/network/{计算机网络常见面试题.md => other-network-questions.md} (61%) diff --git a/README.md b/README.md index 82f58c6d..ad5763f9 100755 --- a/README.md +++ b/README.md @@ -122,7 +122,10 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle ### 网络 -1. [计算机网络常见面试题](docs/cs-basics/network/计算机网络常见面试题.md) +1. [OSI 和 TCP/IP 网络分层模型详解(基础)](./docs/cs-basics/network/osi&tcp-ip-model.md) +1. [HTTP vs HTTPS(应用层)](./docs/cs-basics/network/http&https.md) +1. [HTTP 1.0 vs HTTP 1.1(应用层)](./docs/cs-basics/network/http1.0&http1.1.md) +1. [计算机网络常见知识点&面试题(补充)](./docs/cs-basics/network/other-network-questions.md) 2. [谢希仁老师的《计算机网络》内容总结](docs/cs-basics/network/谢希仁老师的《计算机网络》内容总结.md) ### 数据结构 diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index b30f8e48..9a0a41c3 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -217,9 +217,10 @@ module.exports = config({ title: "计算机基础", icon: "computer", prefix: "cs-basics/", children: [ { - title: "计算机网络", prefix: "network/", icon: "network", + title: "网络", prefix: "network/", icon: "network", children: [ - "计算机网络常见面试题", "谢希仁老师的《计算机网络》内容总结", "HTTPS中的TLS" + "osi&tcp-ip-model", "http&https", "http1.0&http1.1", + "other-network-questions" ], }, { diff --git a/docs/cs-basics/network/HTTPS中的TLS.md b/docs/cs-basics/network/HTTPS中的TLS.md deleted file mode 100644 index f665eb22..00000000 --- a/docs/cs-basics/network/HTTPS中的TLS.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: HTTPS中的TLS -category: 计算机基础 -tag: - - 计算机网络 ---- - -# 1. SSL 与 TLS - -SSL:(Secure Socket Layer) 安全套接层,于 1994 年由网景公司设计,并于 1995 年发布了 3.0 版本 -TLS:(Transport Layer Security)传输层安全性协议,是 IETF 在 SSL3.0 的基础上设计的协议 -以下全部使用 TLS 来表示 - -# 2. 从网络协议的角度理解 HTTPS - -![此图并不准确][1] -HTTP:HyperText Transfer Protocol 超文本传输协议 -HTTPS:Hypertext Transfer Protocol Secure 超文本传输安全协议 -TLS:位于 HTTP 和 TCP 之间的协议,其内部有 TLS握手协议、TLS记录协议 -HTTPS 经由 HTTP 进行通信,但利用 TLS 来保证安全,即 HTTPS = HTTP + TLS - -# 3. 从密码学的角度理解 HTTPS - -HTTPS 使用 TLS 保证安全,这里的“安全”分两部分,一是传输内容加密、二是服务端的身份认证 - -## 3.1. TLS 工作流程 - -![此图并不准确][2] -此为服务端单向认证,还有客户端/服务端双向认证,流程类似,只不过客户端也有自己的证书,并发送给服务器进行验证 - -## 3.2. 密码基础 - -### 3.2.1. 伪随机数生成器 - -为什么叫伪随机数,因为没有真正意义上的随机数,具体可以参考 Random/TheadLocalRandom -它的主要作用在于生成对称密码的秘钥、用于公钥密码生成秘钥对 - -### 3.2.2. 消息认证码 - -消息认证码主要用于验证消息的完整性与消息的认证,其中消息的认证指“消息来自正确的发送者” - ->消息认证码用于验证和认证,而不是加密 - -![消息认证码过程][3] - -1. 发送者与接收者事先共享秘钥 -2. 发送者根据发送消息计算 MAC 值 -3. 发送者发送消息和 MAC 值 -4. 接收者根据接收到的消息计算 MAC 值 -5. 接收者根据自己计算的 MAC 值与收到的 MAC 对比 -6. 如果对比成功,说明消息完整,并来自于正确的发送者 - -### 3.2.3. 数字签名 - -消息认证码的缺点在于**无法防止否认**,因为共享秘钥被 client、server 两端拥有,server 可以伪造 client 发送给自己的消息(自己给自己发送消息),为了解决这个问题,我们需要它们有各自的秘钥不被第二个知晓(这样也解决了共享秘钥的配送问题) - -![数字签名过程][4] - ->数字签名和消息认证码都**不是为了加密** ->可以将单向散列函数获取散列值的过程理解为使用 md5 摘要算法获取摘要的过程 - -使用自己的私钥对自己所认可的消息生成一个该消息专属的签名,这就是数字签名,表明我承认该消息来自自己 -注意:**私钥用于加签,公钥用于解签,每个人都可以解签,查看消息的归属人** - -### 3.2.4. 公钥密码 - -公钥密码也叫非对称密码,由公钥和私钥组成,它最开始是为了解决秘钥的配送传输安全问题,即,我们不配送私钥,只配送公钥,私钥由本人保管 -它与数字签名相反,公钥密码的私钥用于解密、公钥用于加密,每个人都可以用别人的公钥加密,但只有对应的私钥才能解开密文 -client:明文 + 公钥 = 密文 -server:密文 + 私钥 = 明文 -注意:**公钥用于加密,私钥用于解密,只有私钥的归属者,才能查看消息的真正内容** - -### 3.2.5. 证书 - -证书:全称公钥证书(Public-Key Certificate, PKC),里面保存着归属者的基本信息,以及证书过期时间、归属者的公钥,并由认证机构(Certification Authority, **CA**)施加数字签名,表明,某个认证机构认定该公钥的确属于此人 - ->想象这个场景:你想在支付宝页面交易,你需要支付宝的公钥进行加密通信,于是你从百度上搜索关键字“支付宝公钥”,你获得了支什宝的公钥,这个时候,支什宝通过中间人攻击,让你访问到了他们支什宝的页面,最后你在这个支什宝页面完美的使用了支什宝的公钥完成了与支什宝的交易 ->![证书过程][5] - -在上面的场景中,你可以理解支付宝证书就是由支付宝的公钥、和给支付宝颁发证书的企业的数字签名组成 -任何人都可以给自己或别人的公钥添加自己的数字签名,表明:我拿我的尊严担保,我的公钥/别人的公钥是真的,至于信不信那是另一回事了 - -### 3.2.6. 密码小结 - -| 密码 | 作用 | 组成 | -| :-- | :-- | :-- | -| 消息认证码 | 确认消息的完整、并对消息的来源认证 | 共享秘钥+消息的散列值 | -| 数字签名 | 对消息的散列值签名 | 公钥+私钥+消息的散列值 | -| 公钥密码 | 解决秘钥的配送问题 | 公钥+私钥+消息 | -| 证书 | 解决公钥的归属问题 | 公钥密码中的公钥+数字签名 | - -## 3.3. TLS 使用的密码技术 - -1. 伪随机数生成器:秘钥生成随机性,更难被猜测 -2. 对称密码:对称密码使用的秘钥就是由伪随机数生成,相较于非对称密码,效率更高 -3. 消息认证码:保证消息信息的完整性、以及验证消息信息的来源 -4. 公钥密码:证书技术使用的就是公钥密码 -5. 数字签名:验证证书的签名,确定由真实的某个 CA 颁发 -6. 证书:解决公钥的真实归属问题,降低中间人攻击概率 - -## 3.4. TLS 总结 - -TLS 是一系列密码工具的框架,作为框架,它也是非常的灵活,体现在每个工具套件它都可以替换,即:客户端与服务端之间协商密码套件,从而更难的被攻破,例如使用不同方式的对称密码,或者公钥密码、数字签名生成方式、单向散列函数技术的替换等 - -# 4. RSA 简单示例 - -RSA 是一种公钥密码算法,我们简单的走一遍它的加密解密过程 -加密算法:密文 = (明文^E) mod N,其中公钥为{E,N},即”求明文的E次方的对 N 的余数“ -解密算法:明文 = (密文^D) mod N,其中秘钥为{D,N},即”求密文的D次方的对 N 的余数“ -例:我们已知公钥为{5,323},私钥为{29,323},明文为300,请写出加密和解密的过程: ->加密:密文 = 123 ^ 5 mod 323 = 225 ->解密:明文 = 225 ^ 29 mod 323 = [[(225 ^ 5) mod 323] * [(225 ^ 5) mod 323] * [(225 ^ 5) mod 323] * [(225 ^ 5) mod 323] * [(225 ^ 5) mod 323] * [(225 ^ 4) mod 323]] mod 323 = (4 * 4 * 4 * 4 * 4 * 290) mod 323 = 123 - -# 5. 参考 - -1. SSL加密发生在哪里: -2. TLS工作流程: -3. 《图解密码技术》: 豆瓣评分 9.5 - -[1]: https://leran2deeplearnjavawebtech.oss-cn-beijing.aliyuncs.com/somephoto/%E4%B8%83%E5%B1%82.png -[2]: https://leran2deeplearnjavawebtech.oss-cn-beijing.aliyuncs.com/somephoto/tls%E6%B5%81%E7%A8%8B.png -[3]: https://leran2deeplearnjavawebtech.oss-cn-beijing.aliyuncs.com/somephoto/%E6%B6%88%E6%81%AF%E8%AE%A4%E8%AF%81%E7%A0%81%E8%BF%87%E7%A8%8B.png -[4]: https://leran2deeplearnjavawebtech.oss-cn-beijing.aliyuncs.com/somephoto/%E6%95%B0%E5%AD%97%E7%AD%BE%E5%90%8D%E8%BF%87%E7%A8%8B.png -[5]: https://leran2deeplearnjavawebtech.oss-cn-beijing.aliyuncs.com/somephoto/dns%E4%B8%AD%E9%97%B4%E4%BA%BA%E6%94%BB%E5%87%BB.png \ No newline at end of file diff --git a/docs/cs-basics/network/http&https.md b/docs/cs-basics/network/http&https.md new file mode 100644 index 00000000..4848527b --- /dev/null +++ b/docs/cs-basics/network/http&https.md @@ -0,0 +1,149 @@ +--- +title: HTTP vs HTTPS(应用层) +category: 计算机基础 +tag: + - 计算机网络 +--- + +> 本文由 [SnailClimb](https://github.com/Snailclimb) 和 [csguide-dabai](https://github.com/csguide-dabai) (公众号“CS指南”作者)共同完成。 + +## HTTP 协议 + +### HTTP 协议介绍 + +HTTP 协议,全称超文本传输协议(Hypertext Transfer Protocol)。顾名思义,HTTP 协议就是用来规范超文本的传输,超文本,也就是网络上的包括文本在内的各式各样的消,具体来说,主要是来规范浏览器和服务器端的行为的。 + +并且,HTTP 是一个无状态(stateless)协议,也就是说服务器不维护任何有关客户端过去所发请求的消息。这其实是一种懒政,有状态协议会更加复杂,需要维护状态(历史信息),而且如果客户或服务器失效,会产生状态的不一致,解决这种不一致的代价更高。 + +### HTTP 协议通信过程 + +HTTP 是应用层协议,它以 TCP(传输层)作为底层协议,默认端口为 80. 通信过程主要如下: + +1. 服务器在 80 端口等待客户的请求。 +2. 浏览器发起到服务器的 TCP 连接(创建套接字 Socket)。 +3. 服务器接收来自浏览器的 TCP 连接。 +4. 浏览器(HTTP 客户端)与 Web 服务器(HTTP 服务器)交换 HTTP 消息。 +5. 关闭 TCP 连接。 + +### HTTP 协议优点 + +扩展性强、速度快、跨平台支持性好。 + +## HTTPS 协议 + +### HTTPS 协议介绍 + +HTTPS 协议(Hyper Text Transfer Protocol Secure),是 HTTP 的加强安全版本。HTTPS 是基于 HTTP 的,也是用 TCP 作为底层协议,并额外使用 SSL/TLS 协议用作加密和安全认证。默认端口号是 443. + +HTTPS 协议中,SSL 通道通常使用基于密钥的加密算法,密钥长度通常是 40 比特或 128 比特。 + +### HTTPS 协议优点 + +保密性好、信任度高。 + +## HTTPS 的核心—SSL/TLS协议 + +HTTPS 之所以能达到较高的安全性要求,就是结合了 SSL/TLS 和 TCP 协议,对通信数据进行加密,解决了 HTTP 数据透明的问题。接下来重点介绍一下 SSL/TLS 的工作原理。 + +### SSL 和 TLS 的区别? + +**SSL 和 TLS 没有太大的区别。** + +SSL 指安全套接字协议(Secure Sockets Layer),首次发布与 1996 年。SSL 的首次发布其实已经是他的 3.0 版本,SSL 1.0 从未面世,SSL 2.0 则具有较大的缺陷(DROWN 缺陷——Decrypting RSA with Obsolete and Weakened eNcryption)。很快,在 1999 年,SSL 3.0 进一步升级,**新版本被命名为 TLS 1.0**。因此,TLS 是基于 SSL 之上的,但由于习惯叫法,通常把 HTTPS 中的核心加密协议混成为 SSL/TLS。 + +### SSL/TLS 的工作原理 + +#### 非对称加密 + +SSL/TLS 的核心要素是**非对称加密**。非对称加密采用两个密钥——一个公钥,一个私钥。在通信时,私钥仅由解密者保存,公钥由任何一个想与解密者通信的发送者(加密者)所知。可以设想一个场景, + +> 在某个自助邮局,每个通信信道都是一个邮箱,每一个邮箱所有者都在旁边立了一个牌子,上面挂着一把钥匙:这是我的公钥,发送者请将信件放入我的邮箱,并用公钥锁好。 +> +> 但是公钥只能加锁,并不能解锁。解锁只能由邮箱的所有者——因为只有他保存着私钥。 +> +> 这样,通信信息就不会被其他人截获了,这依赖于私钥的保密性。 + +![](./images/http&https/public-key-cryptography.png) + +非对称加密的公钥和私钥需要采用一种复杂的数学机制生成(密码学认为,为了较高的安全性,尽量不要自己创造加密方案)。公私钥对的生成算法依赖于单向陷门函数。 + +> 单向函数:已知单向函数 f,给定任意一个输入 x,易计算输出 y=f(x);而给定一个输出 y,假设存在 f(x)=y,很难根据 f 来计算出 x。 +> +> 单向陷门函数:一个较弱的单向函数。已知单向陷门函数 f,陷门 h,给定任意一个输入 x,易计算出输出 y=f(x;h);而给定一个输出 y,假设存在 f(x;h)=y,很难根据 f 来计算出 x,但可以根据 f 和 h 来推导出 x。 + +![单向函数](./images/http&https/OWF.png) + +上图就是一个单向函数(不是单项陷门函数),假设有一个绝世秘籍,任何知道了这个秘籍的人都可以把苹果汁榨成苹果,那么这个秘籍就是“陷门”了吧。 + +在这里,函数 f 的计算方法相当于公钥,陷门 h 相当于私钥。公钥 f 是公开的,任何人对已有输入,都可以用 f 加密,而要想根据加密信息还原出原信息,必须要有私钥才行。 + +#### 对称加密 + +使用 SSL/TLS 进行通信的双方需要使用非对称加密方案来通信,但是非对称加密设计了较为复杂的数学算法,在实际通信过程中,计算的代价较高,效率太低,因此,SSL/TLS 实际对消息的加密使用的是对称加密。 + +> 对称加密:通信双方共享唯一密钥 k,加解密算法已知,加密方利用密钥 k 加密,解密方利用密钥 k 解密,保密性依赖于密钥 k 的保密性。 + +![](./images/http&https/symmetric-encryption.png) + +对称加密的密钥生成代价比公私钥对的生成代价低得多,那么有的人会问了,为什么 SSL/TLS 还需要使用非对称加密呢?因为对称加密的保密性完全依赖于密钥的保密性。在双方通信之前,需要商量一个用于对称加密的密钥。我们知道网络通信的信道是不安全的,传输报文对任何人是可见的,密钥的交换肯定不能直接在网络信道中传输。因此,使用非对称加密,对对称加密的密钥进行加密,保护该密钥不在网络信道中被窃听。这样,通信双方只需要一次非对称加密,交换对称加密的密钥,在之后的信息通信中,使用绝对安全的密钥,对信息进行对称加密,即可保证传输消息的保密性。 + +#### 公钥传输的信赖性 + +SSL/TLS 介绍到这里,了解信息安全的朋友又会想到一个安全隐患,设想一个下面的场景: + +> 客户端 C 和服务器 S 想要使用 SSL/TLS 通信,由上述 SSL/TLS 通信原理,C 需要先知道 S 的公钥,而 S 公钥的唯一获取途径,就是把 S 公钥在网络信道中传输。要注意网络信道通信中有几个前提: +> +> 1. 任何人都可以捕获通信包 +> 2. 通信包的保密性由发送者设计 +> 3. 保密算法设计方案默认为公开,而(解密)密钥默认是安全的 +> +> 因此,假设 S 公钥不做加密,在信道中传输,那么很有可能存在一个攻击者 A,发送给 C 一个诈包,假装是 S 公钥,其实是诱饵服务器 AS 的公钥。当 C 收获了 AS 的公钥(却以为是 S 的公钥),C 后续就会使用 AS 公钥对数据进行加密,并在公开信道传输,那么 A 将捕获这些加密包,用 AS 的私钥解密,就截获了 C 本要给 S 发送的内容,而 C 和 S 二人全然不知。 +> +> 同样的,S 公钥即使做加密,也难以避免这种信任性问题,C 被 AS 拐跑了! + +![](./images/http&https/attack1.png) + +为了公钥传输的信赖性问题,第三方机构应运而生——证书颁发机构(CA,Certificate Authority)。CA 默认是受信任的第三方。CA 会给各个服务器颁发证书,证书存储在服务器上,并附有 CA 的**电子签名**(见下节)。 + +当客户端(浏览器)向服务器发送 HTTPS 请求时,一定要先获取目标服务器的证书,并根据证书上的信息,检验证书的合法性。一旦客户端检测到证书非法,就会发生错误。客户端获取了服务器的证书后,由于证书的信任性是由第三方信赖机构认证的,而证书上又包含着服务器的公钥信息,客户端就可以放心的信任证书上的公钥就是目标服务器的公钥。 + +#### 数字签名 + +好,到这一小节,已经是 SSL/TLS 的尾声了。上一小节提到了数字签名,数字签名要解决的问题,是防止证书被伪造。第三方信赖机构 CA 之所以能被信赖,就是靠数字签名技术。 + +数字签名,是 CA 在给服务器颁发证书时,使用散列+加密的组合技术,在证书上盖个章,以此来提供验伪的功能。具体行为如下: + +> CA 知道服务器的公钥,对该公钥采用散列技术生成一个摘要。CA 使用 CA 私钥对该摘要进行加密,并附在证书下方,发送给服务器。 +> +> 现在服务器将该证书发送给客户端,客户端需要验证该证书的身份。客户端找到第三方机构 CA,获知 CA 的公钥,并用 CA 公钥对证书的签名进行解密,获得了 CA 生成的摘要。 +> +> 客户端对证书数据(也就是服务器的公钥)做相同的散列处理,得到摘要,并将该摘要与之前从签名中解码出的摘要做对比,如果相同,则身份验证成功;否则验证失败。 + +![](./images/http&https/digital-signature.png) + +注意,验证身份的证书一定是由 CA 的公钥进行签名,而不能由发送者自己来签名。这是为了抵抗以下的攻击场景: + +> 攻击者使用某种手段,欺骗了客户端,将服务器的公钥替换为攻击者的诱饵公钥。 +> +> 假使证书的签名使用的是服务器的私钥,那么客户端在解码的时候,将会使用假的服务器公钥(实则为诱饵公钥)。那么,如果该证书实则由攻击者(使用自己的私钥签名)发出,那么客户端就会成功验证(攻击者的)身份为真,从而信赖了证书中的公钥。 +> +> 如果使用 CA 的私钥和公钥来对签名处理,则不会出现上述问题。 + +总结来说,带有证书的公钥传输机制如下: + +1. 设有服务器 S,客户端 C,和第三方信赖机构 CA。 +2. S 信任 CA,CA 是知道 S 公钥的,S 向 CA 颁发证书。并附上 CA 私钥对消息摘要的加密签名。 +3. S 获得 CA 颁发的证书,将该证书传递给 C。 +4. C 获得 S 的证书,信任 CA 并知晓 CA 公钥,使用 CA 公钥对 S 证书山的签名解密,同时对消息进行散列处理,得到摘要。比较摘要,验证 S 证书的真实性。 +5. 如果 C 验证 S 证书是真实的,则信任 S 的公钥(在 S 证书中)。 + +![](./images/http&https/public-key-transmission.png) + +## 总结 + +- **端口号** :HTTP 默认是 80,HTTPS 默认是 443。 +- **UTL 前缀** :HTTP 的 URL 前缀是 `http://`,HTTPS 的 URL 前缀是 `https://`。 +- **安全性和资源消耗** : HTTP 协议运行在 TCP 之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。HTTPS 是运行在 SSL/TLS 之上的 HTTP 协议,SSL/TLS 运行在 TCP 之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。所以说,HTTP 安全性没有 HTTPS 高,但是 HTTPS 比 HTTP 耗费更多服务器资源。 + + + diff --git a/docs/cs-basics/network/http1.0&http1.1.md b/docs/cs-basics/network/http1.0&http1.1.md new file mode 100644 index 00000000..b3e1bf4c --- /dev/null +++ b/docs/cs-basics/network/http1.0&http1.1.md @@ -0,0 +1,107 @@ +--- +title: HTTP 1.0 vs HTTP 1.1(应用层) +category: 计算机基础 +tag: + - 计算机网络 +--- + +> 本文由 [SnailClimb](https://github.com/Snailclimb) 和 [csguide-dabai](https://github.com/csguide-dabai) (公众号“CS指南”作者)共同完成。 + +这篇文章会从下面几个维度来对比 HTTP 1.0 和 HTTP 1.1: + +- 响应状态码 +- 缓存处理 +- 连接方式 +- Host头处理 +- 带宽优化 + +## 响应状态码 + +HTTP/1.0仅定义了16种状态码。HTTP/1.1中新加入了大量的状态码,光是错误响应状态码就新增了24种。比如说,`100 (Continue)`——在请求大资源前的预热请求,`206 (Partial Content)`——范围请求的标识码,`409 (Conflict)`——请求与当前资源的规定冲突,`410 (Gone)`——资源已被永久转移,而且没有任何已知的转发地址。 + +## 缓存处理 + +缓存技术通过避免用户与源服务器的频繁交互,节约了大量的网络带宽,降低了用户接收信息的延迟。 + +### HTTP/1.0 + +HTTP/1.0提供的缓存机制非常简单。服务器端使用`Expires`标签来标志(时间)一个响应体,在`Expires`标志时间内的请求,都会获得该响应体缓存。服务器端在初次返回给客户端的响应体中,有一个`Last-Modified`标签,该标签标记了被请求资源在服务器端的最后一次修改。在请求头中,使用`If-Modified-Since`标签,该标签标志一个时间,意为客户端向服务器进行问询:“该时间之前,我要请求的资源是否有被修改过?”通常情况下,请求头中的`If-Modified-Since`的值即为上一次获得该资源时,响应体中的`Last-Modified`的值。 + +如果服务器接收到了请求头,并判断`If-Modified-Since`时间后,资源确实没有修改过,则返回给客户端一个`304 not modified`响应头,表示”缓冲可用,你从浏览器里拿吧!”。 + +如果服务器判断`If-Modified-Since`时间后,资源被修改过,则返回给客户端一个`200 OK`的响应体,并附带全新的资源内容,表示”你要的我已经改过的,给你一份新的”。 + +![HTTP1.0cache1](./images/http&https/HTTP1.0cache1.png) + +![HTTP1.0cache2](./images/http&https/HTTP1.0cache2.png) + +### HTTP/1.1 + +HTTP/1.1的缓存机制在HTTP/1.0的基础上,大大增加了灵活性和扩展性。基本工作原理和HTTP/1.0保持不变,而是增加了更多细致的特性。其中,请求头中最常见的特性就是`Cache-Control`,详见MDN Web文档 [Cache-Control](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Cache-Control). + +## 连接方式 + +**HTTP/1.0 默认使用短连接** ,也就是说,客户端和服务器每进行一次 HTTP 操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个 HTML 或其他类型的 Web 页中包含有其他的 Web 资源(如 JavaScript 文件、图像文件、CSS 文件等),每遇到这样一个 Web 资源,浏览器就会重新建立一个TCP连接,这样就会导致有大量的“握手报文”和“挥手报文”占用了带宽。 + +**为了解决 HTTP/1.0 存在的资源浪费的问题, HTTP/1.1 优化为默认长连接模式 。** 采用长连接模式的请求报文会通知服务端:“我向你请求连接,并且连接成功建立后,请不要关闭”。因此,该TCP连接将持续打开,为后续的客户端-服务端的数据交互服务。也就是说在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输 HTTP 数据的 TCP 连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。 + +如果 TCP 连接一直保持的话也是对资源的浪费,因此,一些服务器软件(如 Apache)还会支持超时时间的时间。在超时时间之内没有新的请求达到,TCP 连接才会被关闭。 + +有必要说明的是,HTTP/1.0仍提供了长连接选项,即在请求头中加入`Connection: Keep-alive`。同样的,在HTTP/1.1中,如果不希望使用长连接选项,也可以在请求头中加入`Connection: close`,这样会通知服务器端:“我不需要长连接,连接成功后即可关闭”。 + +**HTTP 协议的长连接和短连接,实质上是 TCP 协议的长连接和短连接。** + +**实现长连接需要客户端和服务端都支持长连接。** + +## Host头处理 + +域名系统(DNS)允许多个主机名绑定到同一个IP地址上,但是HTTP/1.0并没有考虑这个问题,假设我们有一个资源URL是http://example1.org/home.html,HTTP/1.0的请求报文中,将会请求的是`GET /home.html HTTP/1.0`.也就是不会加入主机名。这样的报文送到服务器端,服务器是理解不了客户端想请求的真正网址。 + +因此,HTTP/1.1在请求头中加入了`Host`字段。加入`Host`字段的报文头部将会是: + +``` +GET /home.html HTTP/1.1 +Host: example1.org +``` + +这样,服务器端就可以确定客户端想要请求的真正的网址了。 + +## 带宽优化 + +### 范围请求 + +HTTP/1.1引入了范围请求(range request)机制,以避免带宽的浪费。当客户端想请求一个文件的一部分,或者需要继续下载一个已经下载了部分但被终止的文件,HTTP/1.1可以在请求中加入`Range`头部,以请求(并只能请求字节型数据)数据的一部分。服务器端可以忽略`Range`头部,也可以返回若干`Range`响应。 + +如果一个响应包含部分数据的话,那么将带有`206 (Partial Content)`状态码。该状态码的意义在于避免了HTTP/1.0代理缓存错误地把该响应认为是一个完整的数据响应,从而把他当作为一个请求的响应缓存。 + +在范围响应中,`Content-Range`头部标志指示出了该数据块的偏移量和数据块的长度。 + +### 状态码100 + +HTTP/1.1中新加入了状态码`100`。该状态码的使用场景为,存在某些较大的文件请求,服务器可能不愿意响应这种请求,此时状态码`100`可以作为指示请求是否会被正常响应,过程如下图: + +![HTTP1.1continue1](./images/http&https/HTTP1.1continue1.png) + +![HTTP1.1continue2](./images/http&https/HTTP1.1continue2.png) + +然而在HTTP/1.0中,并没有`100 (Continue)`状态码,要想触发这一机制,可以发送一个`Expect`头部,其中包含一个`100-continue`的值。 + +### 压缩 + +许多格式的数据在传输时都会做预压缩处理。数据的压缩可以大幅优化带宽的利用。然而,HTTP/1.0对数据压缩的选项提供的不多,不支持压缩细节的选择,也无法区分端到端(end-to-end)压缩或者是逐跳(hop-by-hop)压缩。 + +HTTP/1.1则对内容编码(content-codings)和传输编码(transfer-codings)做了区分。内容编码总是端到端的,传输编码总是逐跳的。 + +HTTP/1.0包含了`Content-Encoding`头部,对消息进行端到端编码。HTTP/1.1加入了`Transfer-Encoding`头部,可以对消息进行逐跳传输编码。HTTP/1.1还加入了`Accept-Encoding`头部,是客户端用来指示他能处理什么样的内容编码。 + +## 总结 + +1. **连接方式** : HTTP 1.0 为短连接,HTTP 1.1 支持长连接。 +1. **状态响应码** : HTTP/1.1中新加入了大量的状态码,光是错误响应状态码就新增了24种。比如说,`100 (Continue)`——在请求大资源前的预热请求,`206 (Partial Content)`——范围请求的标识码,`409 (Conflict)`——请求与当前资源的规定冲突,`410 (Gone)`——资源已被永久转移,而且没有任何已知的转发地址。 +1. **缓存处理** : 在 HTTP1.0 中主要使用 header 里的 If-Modified-Since,Expires 来做为缓存判断的标准,HTTP1.1 则引入了更多的缓存控制策略例如 Entity tag,If-Unmodified-Since, If-Match, If-None-Match 等更多可供选择的缓存头来控制缓存策略。 +1. **带宽优化及网络连接的使用** :HTTP1.0 中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1 则在请求头引入了 range 头域,它允许只请求资源的某个部分,即返回码是 206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。 +1. **Host头处理** : HTTP/1.1在请求头中加入了`Host`字段。 + +## 参考资料 + +[Key differences between HTTP/1.0 and HTTP/1.1](http://www.ra.ethz.ch/cdstore/www8/data/2136/pdf/pd1.pdf) \ No newline at end of file diff --git a/docs/cs-basics/network/images/Cut-Trough-Switching_0.gif b/docs/cs-basics/network/images/Cut-Trough-Switching_0.gif deleted file mode 100644 index 3c477860cb8b2887ff2732c86f2bcc5bdce724ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130759 zcmWie1yEF97r+--V3*vbL1O8KB@`r-?(UXwkuCuNg+IG=cXxN=64E6tEg&Ez-3TbC z`|-WGZ{FM!_s-n&JM-QqJCE(bJx* z^*XDoNlA}BHlEnLA{$H17z_qRPm`CI*MrUi01&Gf43VZA03e>Uidjt(f4tEc%;OA$ zMqn`LN2$2DIC?b+gIPtOF#rTwMn(n%0`>It#KpzEl!Q}L(~ww(adB~>(P$G>QveZU zX=w=pfoyDSoSmIvQ!#sbdX|-y4Gavx;cyrXhJyoibab4ao>oy&fw*Sb*x2BUs6!mn zY)m!s(gH#97J>c<04{iBWJE(lgN=>t_VzX~Fi=WL%E!m2zP_HqH7hMGZEtTcEG*2@ z((>r)_VIW;s|Ui+;{&UEX+3lI_n3~k?W^1SxxKU1qcgGB2x}LQ!r`Uuvnw4Po$-ys zqM{=I|6hUk7>q-FB8_L>$m(87Mpo&k5rmBnA0HnD8($cD`pJ_grk0i>k}tD*<}9;1 z^9Gha&TT}Yr&l*NeDa#d$HzN6JIh8^i5#;G4Gs6NZYe0pudc4{@9zWaM{e)$>!&xC z4=xlG6w30#5D0{etLy6O>e10rb#-;k*a{Mf>{;4|`Q&LNHNykTwzs#XqUz`7=9-(E z6O)o0%X$>z>a()4qN1Wi!>SC^(8%WT*Lgi<4>gTpk#KWp}($Fe#%|t{*&C?r>MLn2DRK&$G;t0&@>TVJO zgHC!3Ge-PTn1n$9Fpr@}JdPyHBM^@$JO(=n9r)-1c(lYMA;gm&A$SBp907O)Li{xv zA&yQ$ppzcOXmP~jcr>L8tBW*>L>~ez;UqtFZvC{jedMS<^urm|1<%B zFaTK)y-H(Ye+Y=2$6~axXfOi8s+OzLR6HC*BjU6++Ens60VW?!ui9KXmcpf9Z86qd zHjx3h8_!j3DWA#_e|xkx)>84MKqiEML9MlNwnQa`$8x;2YQ93JL@iJ4WA$QHNWdN^OHUt=}Z`SJK`quoTl<|p*& zxAwQk8&jX!&cFAC5He|XwO{UxrtrR+?&`SSpD9r<(CY5IIbLpY{yyFP>F#`UFb2b< z-P85^`e451)t8>`hr5fNi3083p1%*ju8+Te>Fs^YVLYzQU?7#lCKAL^xrrircCZ-& zQR3PPr7&_RGR_yBi{>TrUbZ2(4W58} z+KCs)-j0eDrCU(tQD1Y|P5LL)zmv>RJf}*N0t64RRkm*1M(MFs{YXFa8DL8hgU>~A ziV(E!usNiU{m6Dnuh_|uD)++S(ZTB|;Vusq3e9%CJ$&P9d|@(3RlQ(S3ANtTQ6Odr zm<5rSD>!n*YKWWe7i8M=Fhsy#Frz>|G?!7-R;9@VRn{&noTbUA#vNj1IEHyBKYPi^ z*-HwARSmWJ2{@)SruQ5qjuZ95&8s_GKBlyD@;q*t!T!8cp)@)M;*s$#=7&_mb*mux zeTTL+c>Z1?y!^hAVZ2rVn_@XhJnm5Fp<8kyXI1+Z2hK_7lhawdkR1<6a1tMYAezgmH$EOzL;7n-I8-v=0DWWMZbN9G{~z?%)rn(C@OG}vN_;N zb(JC9);C@9?15#=ZX@^?<;%|6yC0eOicvfsZl1tJ+?zx-2DU*H1*qk6({Qs4y!nd8 z4%S}+)lTO1B~`ZmWCz84Uo=i%9`en1Z-}~poIQnt`HUtuSRj!q-<#|vrmnU5nA5Ac zc{sj^#wN7LCzAOg#w60esz%DbIQqbtEh?ISoN23}5P|RpVd2 zg_7t%xhJqL!r*M+D~+T9!9@V2O35sdZWHVA<+yR^#A*y?L?^;Bt=c5+06X^Ng6p5I zt@3{WN?dI}AanJM&NBHHCEYByeG+%LHBpHQ7nU@0sja<6=T?GLxQzY@$RM7@Vg-Fy ztaHLcIdVlsPIAY>RJsj%9y1p&KHG=?FB)7FJX>Ux#t-WQ;UqW}(QvAc#li#wVpSBW zN7_nR7UJW`Ly|zT09lyI2^g+7%tagym&%e;h2JZ%-L6h4I4ZE3B zv;yo>M~zMUvg{_8JFF82B&sla4#dd6FJ^fugsG4?yhh>Tl)fBmFF~!t5~b-8q{3XR zNqO_~e@f>s)>L(ElRZH;5NsYAPavzcwQ`n&EeYYcHq7CoK!EOtpd&jZHQ*pSPA2^+ zaX24&2ZiUn)GONoj}ZP}t%Me!YMltRg<`s!N)^p&y^QgNa*3O&$LJYUs2Nsz4OEz` zC{CbEX9V4ZL*3SakK3QK>k@{^Gb6E7hE(p`%iH?$ropviL z51f6fYtHhb6GT==397Jojla@djV7d&v#mQQ`WGH;P_A}S1&RIihD3=_5iWq^*N6*) zIDlA8jw78+KJBKQiAEEV;r(`Qp-H>}FbjxZR9$mg6_@H5 zNR{L@QXqPp)W#>2<;lwESF#Q3dKoLcg-tvH0{Ku{9U^)YK1ar9i7^JAA?e`PAPt$4 z7{82Z$}cK|0s|;MXSETbg)0n!Ru^hV0tnXW$V5w8RVEaCo)nFNB`jm33XwA*0-)^N zG;$46iBuq$7#9)UE!Ma8Yy?IMt%Fc9b9)sUs!3r(q%x14_zD;z;37-p5R}Bb=@)8` z)jskiYT-Ttp*vID~=Hp8x1&qbST#^(Si} z*A@zYjt%G;WaQY-{+GHP*8f&P^OGds`xN zhvTBg49V9SQKcmjK_v1;+`)*^X` z_WkDW1z5S0ijDRB(^*K41`UVy2fy-&a7r`brw&#jy)s6LVE>8`*+Xt6> zXwavH2#OJuj}jL!fJ?|?S6)b%^dl zD>0Fq5xtGBbdU+;idkKVctvhTEFV*q86K1rN#p6hAQA?La8Pgk{}9SO6F=HLtTV3bEcXg~-PL=MaA+PBY*K6&hi! z)Dd{Q$71dQG1_Jx$t0T}g<=jMO2IgJjbu2ciFnXN9^JSE?C9lXCf0Ch&8XFRCK)t} z=F$NwR35uGkO15QyU!8i!y)-HVz|t2803`yMv@U^LHRo%48^fr&=ma3WX}FX4a{aD zX-7(6QW9lT66XrDfjGq58y9~IEYA%Q3dc!-x$^pxJ#&QW(uxzoQaEK(z$?tc$P|gO z6ssue7phPhQwYuw07uA7{3234I8p04)L{UktqLLdovv4v28L$9^wWrnd{V{1B*-+} z%UC~u$cHhgg@4?utW0lcI=N6fut->8C6;V9oz#Zl0c5MM4@vJ3WJpc3ugc0;kqvqd zaY#wP6#`4>C14B14l-p^z~1V!^wvQ z=h5I~&T{4Nia_S@SRMV--BGxRF@TaxKKE}9BXEI~Z~+YFx^c(?QiW9N6x?MM&|K!u ztrSLr!f0&ru!~qt3R4-13sbnWJXV;Uxgkwe8Q4f16AzpNRk7nA1qF^pL^DOt%7w-& z^KrHwH!5aR%VzK@h6Qs{AE}i@33IO`c-y67Bj3=NCCddsB%%wXqKjd^I1VhXtE$N_ zol1y2N-6sbNwUk_Wb>fRMRVnay7L7j{dt5!GA1)6H7f~z&t=LxvVVZF?W4=FRukaW z#lyeLp9er(%pk$PGhy}+I`T3xjtZjL3a)6}12DFCOEMiszX%svNl0M31j;irt1{~^ zgKTALRtc1FyV|ZoUIz$@NkBQGiuJ|;;?WSF?2?nHiqDZ1;S%gk5@wsKHBe{`)+%$< zc(tJf#BZqp?F2P(sv0t*$~4PTM^$p&R}n$0LC~im9gr{WQ8S&88lIARvy?`HV!Y}i zA)YM1^jrwC1_R10q0A7Xsv{Aq9bT=s_N+}<7SHOarP!)n9S3~MhE#gs;6&jdxHEom zyZ*kftdFkaHiJB@Hej+d{&KsT>*Rb?RUYTc=lz+nM$m{~Bf56f2;t2kJI+mBO^iIO zXM0b1p%x_>&585gj)o3;dz3}Il`n{DDtD^G#eA!#CBzm!X891%?(MtmWJc;Yny$gZNRE2^`n)&M}9oH4@Db@P%@g1+>2W^f4&A1#jY` z)v=n5BsX!)N5Xy|#(`Rw_YEqan%q7?H6L07cqutQ6)8DG5FM?c%jWy4dNKR7dAi1T z=4d=mbfaVCEKSYgY8eGV%75ndYZ4tyNp0`Hb!g7E5i%Fu5fnmX+ku{TRRk^fsx6EX z)dWrGI_EZg$+#rvR-yDx63==?-tx?v*tRERxyKy?F%*S0kmC0c_qpcAs@glAcJliQ z&_ueKImCOY^UHB1o>?LGebOJ(7CZIsZy2>s9Gh}-XsrQvkL|Y>VbvZOv}^D^ucRF9 z@cRt?Z#j(3z*nDqcv_NU9SCHP)aE40xa`>DpP4D%=Pc#abUMbWjMe#t&B{1pd(v-^mj)UQ8R(yb0*nCyiSHRorhus-yBBok)D zp}mfQe0~qX?_}dwkCn77621SsUyfSB{;Frs?Mwt7TAFm`0wOEt0Xl*fc64XUiNks@>A zTTHd1-Y|TIRBej0SU@^D(uMFEmobu%kXkvP@a?2>T=jiTk^_gRuocar; z;QWcGgy~OX{~X8O#x&kl2^7#*39Y5Me_*^jV6L?OEYQU2LlYE-{7hfu6VF8k_>j?U zk(cJsmBfoYmiG0@E$FA#6YKkWM8f(8D4iuLhq(n zkw#>Q8UL*>IM_2-bquytlJGek4#f#>tn%Iz7_Kn9tvVq}FmA2oSq#>`o5 zBm+aUaP2J9UwY3;KoP|44l~TB03zqio8?|d*5ytM<}uuHVL#nvJ}sWdgZ9=h61X>m z>-vDCNI^|I{3^H$H@-gC6b%tSjPdXMoTr_@Hn&e7myf}m+gtWj0I+Ei;JXP<_059M z2|ah64Nh9bYF@M;W^l_BFT(czaii(;z#%u8q&t*oIrK^wjO6yaQ*^|SUBMTR!eJd zffiOgPJznJQ099bBg@t3tz`_>N=+R-i?K4?2X|?SnP$cbR@o$V1*{jmP@dt?OKQeEt z{Vrx%AB2#6@HUamYt~=$Y338t`Z5qKcq&im$M5U z31C$bdnS5+BQJA1>abbw-W7X+cf3KN@?Yi`UPJT$LQnrQ(f$;)SY9^=yF9jx$!9ms z&kn$GXBpWONM-|nVnv?t3(2@xv~^7!KD|7d33_6_p}tp!+`zL|5@X$Dd&Oh4v9hPY zj{R0(Ze6-3^WQpD(LYs{yT}3D(`_c8>VI+{{{`XF^qXY=ZT{+u_46UwFNuZ=bZtAC zmW$xt$M3&?QFVHYHt~z(y-?cow!eqW6d%rE(7K=Tkg(q=)49Ve-%r#IA&Tx~f8wuN zWOtG%2?h|?e;2Nz4eawF-vzb_*l|%*FIKzauXoR&JW8boyf>`7X;zZ1EGv%YKkLoAriI##7kqy4r1ZO4KSh5JMQoy|S#f<%&nH)O@R(*S zDMX0|-i|%6DI1C>ZDSLRyV%c5M4Kt>Fuu^oPsPn4<=|NejY}cfpjo~cDOF{oa%96u*v%FWbW2s!1Q4qWhx(PeWm;usi${jFrXT52 zP08$dp)5x<%;xE}G!5*haN(O2y;Y>oi*>-ZYD|Bd$Fbk@xiNA`J5l0-?2i;O@~D7! zR7=?2$9AJSPlWtXH{*Rz6a<97WHUXgR9~o#4(7a$b}c+~A{TfLkzk8sHNbPK=b(%$jCz(tBplC0L9TZ= z9F4~_3ZoPO7AfNS)s9P?5WV$K<;d~AQspX1^%}3t1i273y-@uT&RTzQHNhLt#nNa* zkfT8OXRrEL0CJ_~+|VOMJ1~xOte_){SG6$D0cu+H;3Aw)*8NPMLg3LB5*doodQPV7 z^b@w~BCo5f%GnvEvLLRP#y6t~ozlu9P|Z(WyEZhjOY<=@b4KVr zZAU};BN^kZu_LuYAx6tu!N1txS~O5wkSOJRf~HtEYQ8~Ls%T2f5L>+wIzr##GyZ~| z?`QcpiUA)TWmQdr`4EF^er5wVI5s}Lg~%*y1rq&JLC0_vWfklR(plHxucHvt4x^)f zrAsvU6PPd{@Z+AEbKUR}N!g$)&k>a>Whv{s(O3DaY74{+n5_-&~RmiR4fkWDn z!PE8Z__I{x4h2W1O>N0Y-7!vYeDvZ;7jA%C=P~-ht;>~;pP$da8?`#Z1S@Li2P^kM&4_1Z|j>34<1eLVR6fxTq(F_)IO*-_|P^WXBc`4o6Q+mgt0hJ-a8KS zlR;eqpD0l(rmc}UDQ6F9iC2a_Z4Es6sQH(~%~;wv$bT>A-G-DTHldP{UJ4YU&dAarGy$dpwYe3`Qw&p{e%wi5jA*;d(9j5kn_LhF4gv?H;H)<4PdF>05 zwN5B4Po2_;W38!y#ltK6bhkJXKDU^x_4uhMaOfp5zPF|Lv6KGc)F@KAgbbyEbD(~9NQK! zWr8wIIjeo!)Ln$+`fn}20Q^8X8O2PeL*9o*k@wuM2cT#EVaa1-wd$5*pzV_u0gG_YtGBows6Cu{sAny?* zA9GoO5aS`;0HBgNROR4msIL)kl!6#Y_#{e2)k7pZ7B)nF4vp@$Mn${5NXdOlYvQ3J z_ldNMuxiG%nz89h);Hdu){foTG@@CXnSzi~27nrqF(Hp4K-M`E8%+_2>3qa?_Vjns z|2Q|kgbpuCUB2dpWNyy#!fi|P;EFUFm&Tph0~i6Dr@RGREtHjvAWME?9v|;)Mp@{v z6;UIH99}psGEl)l23K}*Q;vGfpbPS@h05f?vMk#Cpkl)s(Qp%s3Y6Y&Dxt3mP;m>0bG@e%D zLb;1JnY80*S;uQj75N4n+h!l%T+>K-8e=+!aP!PO{P0HV@df>!aXj~Tu7xDVbS8wu zyXf=L8~Fs$nJ9bj5{ADApP1?9Vk~}^@&`ID4?^reh$sioYf4*b{2d|q>@W6!4{u-n1{lWq5j%C{*l@I(;r$;wBT+vdE# zE)HKbS7w6@TdD$GUEVyg$X&W^)YVvbi!fi?5%|(NHpS*#V7`8A|4x5${p_mr$;Ng0 zyKdquxAzqys+-gAdjC$jeZWWxUs3sC`ib+K`bt;)`+KnZxJD+7HUTJm_Fw({L6_3F zN}u*z8S4Wjx)i;rti(a~>o4@Z$_?muc=yZl4oW;^@s&Vv2%}ud+oRcoHgc~0vQa2Y zQq&uw10CJx6LCQ*8O|R*J$vP8P4O*?;{DlTH+Rh!Qd>c;f;U#32!f>_kvR3FWe3Wf z51{8Qs_L0PGq{p8;BhDKBec5CXYDc$7!E}US@t+?8!cSo`8U(n#VY+an~4)g zEIF6|N24%4)bt_c>x9+N?tL>86XxHYdrZ*v;1~0K^~0SGm(2TcChvb&XP8{dF<(KF{|BM8|Ic~& zC3D`z;Vrps&@c6ukb@V;4^Ixvu_H=K{_S*xHumC3^a0tTCs|(*{G_?$1{-^XMPkty z&Lr>QDr4wLj57|S+igrf5VWgiVEn+K+8Vdy7gv)tvJdB{p5-oy9(LbN@(8Wkm?z%2 z7$Rcf&o-ecKkUv1R8Q1I2}~*men_*lD2}xS4%=cQ|4^o632C=u8N(Bi4%o&Q*s#r} zY!&ek2sW$EsHTnzrr|LHp@bZfpIeuK@tMFI&#<9ops_AMP}yYT0&@nX!4X_70p)91PO&>B!*WfDIeOur$3@St4iDn zu54vkvdylj=B^T@Y51v{FhpGLIZ`32`Id!pUYAmBi#iifPfV8lm2axGLpd9w-h48} zAvD2wk&lU!2eS}1z@!p&Dm#wBv2eeMWO#paC1JeeG)tzy=U^>VX8rU;sMcnCrE1I` zQSA9@JsiN_zRY;jIQd$Xz^iylA&EMmV?={ZPBL3FcDXN#Hrg*MBfw^=mWOdJS6X8d z=Cmpu@(WJMmio0%8}e;(wG<4b>yR@w=geJnGPtM7Ib>y|*0j3Up)qvgO7k(IVqLJQ)~KDI z+V{B%53S_?RObrl^6{k8#*Qba=&6Z#!N8gUwCP-3X%t^vRipk4MuT8uQb&{_ftX(! z)7B2=s!P%F;B^PbG9iLlH-YUCoKU?=oJ;JP96svBIRRbz9lKzb#QF0z+50|DZSh>W zk7LXqb89>joLaIm-SZGusCVVb#ek2qrXMWxAZT=@Hhnzw9WHZ+PvB3gn+NB2iz zDf1#ocoCmC$IS~i%V&sBTu*Rl9L%p@Dn4(fxjec&Eb%-=Dr(GPg@u|d#!g!R*R>*^Mm(=d2H-FpvEezOv;io}D{K)yc^3r0_?JH3*m7JN zX~Hl&hXYf4BM!9}vmwlwS=zW$^((gJoUh^6m5?Y|If5l8vyeQ6x={YNKj(~|=2uRw z&M$oV&*y8PG(o7LNy`*Lxa$*iX(&7~zlc3XxJ$hqf^7RlD)F&cIJS&27^~eOY||x1 z1_4k}A?&G);jTrp>rv6S(;A3l$8=V{npAJ_!%l9>x8xHN;Ul!bHjXt(XyTG55?{5g zr7XMAON%Ubv^D#tN*OA{S;YWaSTsgH1);jjdHGE0aMf#pSYK~emr6fj6b{G1VTPN- zpG~FBcM-|0Wu&ND+UXml1daSF7vRw;s_;h?2SMyh8u>2Q1a!+rDE`NQ-T`=);`V8NdA9LE0#NB%KKYi-0H6e~-f!S))R3U$5Qn76$R+$-28Fgl6D8N6XPLGE$|4V3P zHANMaOev52*3yygb4_yJj;0mEvxFbSv9Wr&%pMC!P?*pfS)3d$N8(!Y1s2T}__Zl1 zzvCwX8z4JlBny`Xnj71NIINdA>>`XDb^-2{vo#>YqHhd=5u0K}!17wb+XjiYaoDe% z0*hklRA#$1ZVjx7pGD5A@lOYDE)sv+Dy}O$*g=8~x!E%lYLsR`HY-z53t5>0y=>VH zIl&ua9w1WX)(($G|2}kjTRO6N-A2zono&#l;U<(bn2>%sjo$`)#H*G|s^`dt-eD@4 zUr5TjsDdzy&;VxLd}-UT9C{_Y(hg%1UBHGpgk4KZk_0Z9r^i^7^D_6%w|d|j$Fq$D z)b{gl=A=ph(NQF+NVw9LY%(~-1_h`6B50?B@|vs zOG5sD{}M=bwC~>qr`QKe9DJwSjA2!Yd2Yg@T1^#sDrKchW&isCu(X$yPVPE(klmD} zxTkm{Wj#4b!2O;`P%^qSoj_oR#Hcl@EWg?8B(lOSx(2Q2b8jDYb`(~YKvYU?NaNhB z^dceOoH=>A-!WZ`HVgjmAn$@PB20)D5gdnjLIZfL#zaZ9BYDsvc>+YtmHLvhdnc#g zT$7Gz=F?j@j0T{4KSixQUN|*uOwrf7O!h=urdr)aCVUa09eHMIJH(jD9a|t^G3XIH z7#yRc5+-p$Aep#A^frvqLkkXJ=}ok2*u>WIz{MES5RS?Y&bxIzs~gK9k?t}#Q7M6`_aubBI!tJrJTAAoP-+;IDR)KS1U) zltJSjvJb#3ypo|sC;&l52dwSXhS*L!w*EV}B#=Mv8I!cqK19#d*`ER3FG}GP#v4Cu zR3%TzZ1F(2QkPWu++e<~nHhV+qhcU)56Ky00dIh7Lncl#B3QGr_^8PP-d+}SM7pJP z+>6VsHgk&f2qO}Uys&aBO?$RKeRAOI(SWBFDUrn-)5Jry#wZq1t`0*i<7d$DF5n4jv9 zGSH_Zm(G2O5H|$yQPTPRZ*R~{SI-O@4p1Tsmx|Ba^|lZ0UvL=&yEtBw0`Ba?BqA9> zL~!dKgsie|t*=iN5XkL`DOMv?fzWpTx*WB-z9zUv0?c;Wi&f+< z*|j{W3l94ZPTTGBsnm?E!X7v?AcO2YMF?g8eb`;oA7tPTEhGSi*vI-raUY65qW-*E}qCjb34rJ=h*LOuX~p$^j1&K zKZCP&qKSN;$PbU&Yh3FhGs8cu>~~Hk=ZA(Afyj*^X%`s2FvI7*Jdzz%l{wDB{HNu> z6O9;_Wsm<}zRfRS){eaDi=5~%{#BK6R^4`Qwyu*D=NIM94i$fA_4kzih_Z!r@RmVO z&A|(J=xrsZP|nh<`PpBSFGBKuRFIddO)+5FHtZ|Z06URgJY3=>BmR_qXpMFn!V z>3~K0uaY&l*8xZmcjRF|D0?%$TneXdfXyM9%@@{} zA!KzxWTdVD9i z*@wa>7jXIIVV*0OiCH_?`h}O0ZPuwb;79-}84>I@*{yA!g(}HttPJta9wenpyTOlk z9fg<1ZGtUkyU3b%Bh93I#!s$%kH7lKnozAcw2Utr(^#sW()?74#L=y>Kc(|s90xjz z-RAxox!S8X#{V4utIM#_cDBX+{NLZ-|8G$ZbH}{+_vilZ`uzNRgMy7WihvdOu@N*d zb&Db#0(|xkCltcyiAyd6x`Y@q8t$ov;0g}_Q4ENu3=j?Y8|%n& zW~p)57eUbUsxyKk(D^Drp!2Z$lfb77Lylv}Q)?hfDc`d2Y3#j#{Y1(F@X@eTCWrAfzkYS zF&JT8rFOoIcKNL4p~-$XAKa!oqUx40qCTng@$cd9%Pky7xP<35CI5;pXeo>OC^%^b zk}rvAc2h2zCoF#as)$-|ST?=pU08mdpqcJw`o7zD!6He6W}3(^IRh$g;A}V>jFh~d zF!U!A-83g!1f$ixqfRN!xBB|Xj1~jiOat9--c6k()o`qMzW?|9peQEDZNDUEV`D8u zQ{lI{^0j8Ib>`creqU=^m8?0v7wRXn-ycP%iyI~8(wySbcr`SS10xBp&(z7C3E zM2%O-5zjG=!qDbcQr=1#CSyO2)@vbHAcA(&a7mdWmD0msmDl+2qN1PJt1*P}&t~9H ze42bkH!dl{bWTR)T7F<6SDp#|Zf9snb`@XPvTYH-vrTT(vkYbQ+ltUqh3`6Um;ye8 zBH~sasL_y%AX>&IjbQ25`p|%UcU6G9KlmKt)f8j(hlOUaof7(Q*lTd0AL|WTtk&Dv zp5(-c&JsOR^ef)Pr1A-l_Xr=KS(pj?+Bn7?|b<{!8J!o!?2i{r-Rv#D}Ek2&hKWG{8ug9g25bjA^h z?S$Jp9xMEOe%G%R{OPG`uiEvjh9eYotp%I(6piC?k*jY@m1nB7Mw^7+G5+3w?a*is zb_s?oOL57OSI>lvYvzP+?ZIR(#LVp#bBCf26e7q*-x#sSLF>l91MWV%5&z^#bU~;N zuJnEV{kA0KXC?fyLsuyPm_K7c_lKr>KJTivBJ=0#SMC0k7DmIx{|p?b=0RFuh1~qAVX-D2TL^p>U;I9H3aJu$SgFn>Tw|=mstz!_e0#$4VH) zKf8(&PTjgwyKgh#iDCV#Q3cTM)T^`jSYYz;*wQocYdxcHl?Q`{=_1d{m>#-W)9%VPo1p!g}97{jrtnvzIGdN;q@+Zyu+Ya_vI z{v#LJC$b+{J{D}Q*?Byrn`li;Z48livFjlFR`FM`|>y&8bqXdZM32{=SGzsoiB~Z5?ub-sFdsV;3Dr z)t;pfBZ=6KGO%7wP58^R`wUgfn>GL1L2B)8XkmrHopb{JO*p*mYaM?r8PFIcZ25`Z zt`C+q7W7Y~u=n6KT80*wUYfB8?~R}gmmMVLs}R^apY z!L5>uNd2yDs_)}anwij;L2#b#9eXTcT>U9hyT z2HnS2cMVi8WclD9{=zjt*f`cOY}V3kg1ko6l^ub16KV=XLjePjJrWwYMIOGjOn{~M zfOj`}&&9$TgeJN_80Nx!9{w%{lq^%r@#inOw8tk8#)jXRDf71y(wkUKsK(H&w>^9s zT&P{@FJLGvk9n5%!=atv!-L}+AzKw`9KTH*A(_aZ7=%VBO7PDXdGD{0moKhTNQ)R< ziojx|f5{d40w%;lMfb9#Z(Dk0VNpOLlgQuBgM$AqQ+ogGz5MTY2n6qe2n&4h-^)Kc z=fY1siU@0!J2mPXp(c*Kn12lgz82x`!Lrno{Y)1C>?;{6J{ZokLYx;cpi&`F3x;b{ zh-fda4)J{nKoPb`XZ@}Q+FFQThweu6G~(!)$YQba$!^<)V^##8hl#C$A-%Wzx7 z^sng23uRU=)i4WCi9sASM=?u4{NQF(d?6}|A~HsUh25x_-HL_7zL>*}h10i~)83YR zjrl#F4LO?8;R6d#c`=V|aReMI#T!+3LU_W@!oOsjdl25e8C~WTpSR{|$t z6{0E;!n5O?L~`XvKz41opAADdM}@RlpBmZ0S=4C`Vk#z!`F%^onpMB)5Df!}o~M^Q z&u5h=FOjHcl|+|FHkXj{?bv{jyN5O!lb9g~nMuhr)|a=e645(dux&9CHrZw?Yj|nyl)P`LauAysRjEomTcjsSiVRO$I9Snk zS0hwqB#}*HWEW#Op-}u<(P~%PiS5f6oAxc+{%olYpkK53wZ}=RHY2;PMCA;-&b{cCoV>Nb@@-j2MT$6iT(`@!g z?;mESO3^+EY-_z6iI(tnjRrukFr|}aM&H?SpQSB5eDGV z+bgkgm_6gLw=a*B=CHBKTdlK1++#)&P8^Qud%m7~RtkG>ni<@<${l++T<)oz_QIUh zn4CHG)JMwQ&dL!}<>oZVH)l2u_KfaS6`n@v?#+r8Z~!&vjq~1~r&5JCPwF~xxz}ov zhf+y`%)Ym8#XGI}GSdn(K2ECFZxSH;@5(CzQ2XSvjK2Ay$3I2_ra1$x^!(7cG+mtE zo`!x{s`&5UKK}Z?*#~WZG~<7ruwaf#)LcSv`S9JZzMmcWH#a{}MwMX_nj!hacM1i_ zGp2V|T#@0G^Fv{NW)tg*4mZq|k@Z|L&onI>Q=-C$f7TU7=sCn}aK+y$ThuC>O7%yv zFvMv&#FKC*jgQ4=hb8dzb4+3!qJtcgUT~+X<;uq?Cf7429u*`iRi(Re2hnq<2?vvz zRQ<4&C6wUK$mhJanbEca2hALa}2lo?eU`z4piRhOy}6qr?40zQSp&BzLV3^Q|v6;$l9~&GOI6S;n>GNzSmeWHBdPhl#_7d z@xC~!ZhBTzfEu15R&3s=*7B`xvEq$HDH5yHi10XnwB>CtuR;eXsI9UZl$*7e^Cpo@ zpvy~PqBdGeQJvGgsm++0PcIPa#k}2T$I&E&q$*Zqe=NI>czdZ%!qB>8e8U~_<^9k2 z0)5q~x)jt}OPwWZhm9&ZRj|nxM(ilcK3egOUX{CeD2rYpM)O_5&Xhvhiyeaa#(QcV z@j&?};K6~~sk6P_(e0@-zCd)G%oX1ZUfm1{|Lm&EG6nzKS$S=y zx4yx@u~)Zo#{d1c?)yLfO>6-^i?I0ClU2sE|0bvF#22!_K)!TgLr|%bhksZdgW2%N`Qh>s`7r1z=xTB{!D?>rTWv2v(sV$ z(5NhTEsEkd@N0klMgC{z1FSPf!7Gl2tFu!f2=2KA@;qQj)`el7q~WGMj4reP%1!Xj zSMcoFxsH_JPm2HI@-yzhaUc4lg5~J@?;QaDx2{!$vIb#zxZj4TP_7i8vdG zA_R%QdI0q?=X*yNTj+i$22R1`4tX;S`R)e&Cb+)p0TvV@m*i)$_MnKkJk`21GH5!q zYQp(iN5$(&-6jNLL(y=aa}CL{EHp8E7h>FRVmudOy7OdY9Wc#oIw)=eeL1DO7Nq{v zG}DY^9um45z^0XogQ=e#**2{+3X|}9-FNo$iVL5`W7EbE(OL}fM7l9g!Z&Q2!OqRp z2`J8eH#V^;t{hp;gfs3Zo*UI(EG@#5s{_24=7aENqe(CRj5B_7FCI=ImTTdA9s&5v zmR*7tL&)_h<6FApIsuWEn;-$vcP%?=Ey_CAmyFmv=dRD3MNZC;yzfOMF?H~mw^wxX z&vP&>!f%8nBwfFuTV7nBQVd>Sjf)7}oj(75y;?2Hjk(|*#ilvG-tlUD`BqSdRpdK~ zsI1uOee(rxW=OzRdC7Wy3v7N;4~17P-}Sr|sq0ScJ(S#k>QJ03e{LnO?UyR> zmTvG;Gw0Lz;;#PrN~f`Zdt6lh7>i+{RWk+tWdG-k{rN*aO6kGd(7RQK)JK;zj9g4W zjrV4%8SBCKoO=eFrLo_r6^k#i&NSxK0K>0KuK1)@WXJxaQSXVN;JI-Yb~P3s~Ua4p+m^sBY(BzP8^_xva6x@17cA zFi&5X@R2e#@U_b>nA{@1y4t&=cVFDTxvqI4b$Qx6z*i|dpLy%}#ntKhX1Ceb`3ooVRWw&padr-0ytb2bvznpSik+aq-=GMtFLK$k^$-y_IZh5f;WG z6!Uzg$Y&u2&p^>v`X2bUy`$#kY-sc*5A)1vX5QMb~G8-n@tqIv{9YryJnm`}wdc78G-a@J zrTo4jj9UEA-miZa$)Ec)_Om#5X}|aTp*({V*|=t=bMb_`_JngGK?B^LOdfZyw~_BL zEsU{k$}{~uCU=+l*hpTn(`NDBkFs<$*kPZA;3p{M#(u$6ERg7^uh*|XjaV!*15wT$ z_94L;%3dja1X=%M@2$4u>Xt3t6jO?sDaA|{+hS&Bv}7?^%*@Qp%*?XI%wREE%#4<@ z{I9jEYE^4>Q|Ibj?0kdSXGHXvkuk=nTEa)l%a7DVFe#$Ra7B0AA5z!u%b!g|6v*gZ zPje)qUL{Pn*iXp=2_HT*>id;v)2_OahtH^!>v;gfKlI zDd{rzsUwf_ft_W8whq$f=PfOuQIe>iNdU5zgO74jOy2$Vq}?6W?XDU%gmQzgw(N=Q zbEhM_OS#)!xYtmQYUfF5XQbjw9wre5}63|PG{%Y z>%jvbO$vYa2)L_z#;fhFL-IP1wfwCi2q4QEu!DW%&CSnB)1jUGS|Q5ZBKvZo@**VB zPj~#*xvst5L)^eeME&>N%hj66IyusfyyU?@w<|!Q7 zx;1mbqz4w6aQkuO=X>NQsM#LCB*3$S*u^zCOD@mfG7ANDfzLnuC=My zbAY<9_w5H|T<70}%p|qnsp6Y%>J)6#IperL`}SuK*XOqz+671Rh2rN+%^#L1tylcF zP1Yf_gZ8&Lel3*tyELn}T}+H1NDBYYZ*6{WH2v2zws)d`?j}BP<$tc{1~P&I-=GFb z0-z9ZINi~V`?Vv04NkXc6oZ0fzJiVJbA?1`6`rgZ>=79736#>QoE{ivGARt&t>q&P(G+z=4mrJWY;{_!F(16ezuD>~TQ*9_K|>--M8^v0NxPIRpfNci;MPiyGwBUD zZT8;sHWY3}6Y~2qcHwnk-+Xp z;^X;nw%X=4W1vweD=!>g`G$7;AW6XM34KD`3xFY-<=~dnMWGW#NifBMCicE=UKNU` zM7|~i$%vp?bve*(^kPIYLW&cyG3}BNgaFZ)=YmAn4Kk!qaL6kaex83I+OT4{Fphym zXbkA=Qr~n0XBcNz_|(}qdd6XIzcXYTnk*Dh9ihfxmX z1|`v;x*)NQf7*oZ6Qj{8f|^>~*_%fosB3cUBHAXZAK^a}s7c=YDx661o_ZhG_J!C7 zOC@vf{5Dx^jTT`>m`hzgPTNA+Zh^C|uu*|a*oJdn&5uJFm1~iQRjm>crhr+H>NlpO zdRJ3CHrgl|mqyX#EZW>CNOzH4KSlqO$|s{U6;v2iPPzr7njY7xE-5|^HB~oL9K9(y zfeHX5G!CRN!NHBBDu0A zZ8y|sKJ}B4EHPc1D$EZ&CQLKsIpd;v0C_6@@@CWKXEuXLk>knZ_HtRILrs>iSppe{ znZMUW_g3h8oJ&HqKk#+K#rHmG*snI@Tc*i%TdU-IHCmk{*fa4i7cVtB6q4jzo?xKW zE2v5PCADOpH|op$?zceANTvFO;X!!Wevq4W*?IA!>r%J1R?`Ccd+tgV>QAn$>x4o( z&#SO}oYl^Xma5L{tRKJlZo;(Q)>hJoa(Qp3YczfT&D47g%XIMp4K0 zI7jObxvqT~-_x1?p8nhR&EH+BU0&QgAN7;`Edx<=WB!eW7SxoM6T;RX?@3Kzxn8G@ zn+Cl{Wgiv6-m@IrKW4+wGkPxl(Y@!%bHg$WXCltgyX)VhF9LxrC^lII8|a9swP7d(q2{vK_dZh-ejN=<}K* zt>x@K^_&D2#~=i90b>w~pA)QnE(D#s8WuA7s?0!jxk5>O2%fmeu;|t;jVIYY1wMW| z*UelCf8y6YT4{FKM)V|MV*}|Gp)!^EGLRjanOHtun3}?kx5pp_L(r;x^EpT@2o%BO zsI3rw?4+ikTg08mIoX4~;CNa18#xI9E2dZs+3{E!U#$=}x4OU?vy=KzqeIe_q?y{r zeK-H>3BmWzYP84u2Q$ASlrTEJTVHz@3b05I6>ebWE$ko3keR^7#|~ynDx0kUt(4PR zi;?pKkLCQRmC?+b6MlMEB(a`iD%dsB<^ib)BwjF;P_R=Z<}AR7ypeKo7%;^-&X5GH z>hu1E1;rM$C}Q~;!U@HTv<%oJN&X$GQT>UfmM$x_t{$q{uk$A6J>{claLHzg#Ti1p zP@K{fQ;Ay-Rniw|*?5{`rFIRuUm~o;(vN1s7*#9%Lc%3hltSZtT=IJt4!{0grkV+r zt0|~iro9~Ji#+74&81RO^l(y1+W(&S9xNp!nu z3*dzA;Aa=wKJhCl5_XjY_*B}7DVtA7i2Bz$i$Y7-4&}9A{<#`*6OayTpc|Nh>_)*A zq*6j}TP=f8{do|m0|Vi?Borne>DUv(b!gm@uC*h9wAiUaPOR1t#F}M8gmOMv26SV|4^Pb$L3KY z{!`r|*43(EZFU($xkEh6S2BjR#7vz~v)durw()|WAfIlcS4cF*L) z;^Wc{jJ=N{wS(8#h*Hb>W9+kaNn~brzEeaR_!ACUIZGUb!cXRkZRJ?CTo*H;T#1z7 z`6veM5cF~lKjg#GY9((tq)%lr{t$%thDa0;A+4B!VLw`F_InV6*}SmubP1+R-kX)XtKI|{PFT$tlSjMLn#c?>g51K7TmY=ZZO%V3`}4x(w&#FWP_*BrQRU$ z+zd}Gj0k$y;mtSBl&5ZMIFrXZI#u3A)O;BaxVwtYp_t6+{gj~1lz!E?!3e~aE?T&@ zNEGYb7vmK*jA~RfAie9k47C~vz_@%%^xk?@c>JCg^S#Q@hs`PdQ>#qhC)Iqr#fwtG&jT8#8}jC;IGG6rEZJzzV-y)8qVvx_k9;AyO`s7V5o-)vjDai`MGMGLb%dgZ?>h`&iJn%*xcUsIPiyznMJf8n zfx*+`vIVa6kfJ~$`~BCt&*DBx3b`lAQ9o>w+kwpyV6r-$&s~#QV#GXG9^^ojXGik) z$S)*LG=yduZJMV;ZWo@#ZTyc{xjxiI_;B*W0iRViixGyh0e$j~ZGqP_&p%F}wX zZ139xYDzyY6`>_5!H*INLjD-tyba1pB;0qd!RNSLG#Z_o1Z6gbv4l2I^%Spfe z$#5L4_c3VHe?`S)-Zv1+T5iDz%~HexI?sV#X4dkfdRiq0h96?rE*8O51eRv@(LoW4 zCKe)21g-=4*f>m^Z~5R)f&453S|RHo>pxKvx%f1D^*RC7#%h@#kD4Na=tqqsRft|+ zgASlXdQf8ORHFTuN%^`Rn99HA^Qq8_jrO)HZV*WPL! zV)x6z_r@OXC?lb(P(9l)@XdV!+`duF!d;b1suSU-IKAdD?rqF3c#ZkR2Frs_GvFs#uw^Zhh238pKe&{r+k~FA^jOtVjEsf;(r8Tq# zV4QPAC^YKrM9}2C-Yh#Ncu9qRHIe@J4E+lR^Y3}QHWk&+v@pt3NVm5z=-;XSVCVuC z2qoc(0!o=sli10{*>JxzHw^uKZ-|slF#0zf9q}aF;ct7>Z#F8da4G?a3r`zPT-zW{ z*#x$^U>vDE*zB7fY7TBQ3<}6OoXc-o*-mYc3!$IxzIDQW*e!5GEy%kjVRIO$0=UDxvsVan7up|&*17!^2YI$|TC zz|+oup1`0m5T0y4Qt2*#bFHT=ax!Q>GPpJSjNJGc&ROz03H6~#T%o}Es~t8C`#obb z)m||VBDD*Tnuv!oJ2;p;$WG`}9wvpSIMlbYwNr=T+915h0VKY{rAHO9E-29gB~g}Q zto~>!eH9@;PM&i}=*cFx9g0R*Tf9ioz7NQI?`C(;eU+UB%X=Y8jRGxD5pJX@d}9oP zr<(LSNGi`kigX`GXdLs?4DA;du?1&=89MQK4#&$q&2(q~*Z>*u0%a&b)}>5Rs!!91 z%JK8Cggq8ztS~727L#CCE`o!~jtl`$NR>N9m48X~3$~i5x|(E)n(UIABDT7!y1HhH zx+FGi{|@6XXXte-Vb5sVEL6bAyuw=|O?y({;~|sSo;LFhy00)Om1Ri-S>E`H91X~c zafGuYf-JYF3}&K06QfYTWn}CZ($s{6)xp*qP}dtt(VJM(n@|UusB2usY1oQ(Nd$uX z*)@^W1+s?Gx+76+AnYGg4Bt`=pL(m#!}y9zIfaGpJ}_D1=P4DT`-I30jdukpG)!nd znP`$Dx5}b)TZoVfd-nV9=v%1jk%^b;gI)q=VGr!=EJ!)+Y9Z5$lP6Pn83Nbb9!>s~C# zWGhsQ0`PsW?QabSxHLPH04#TnCMyVg`9O?xBOatBs|F3#mS6nspHzONLiB&4c^n4* z%17Q8LfHTyTU-Ih{madj+J6C%_l%HL-JB^4oh8$fC;c(3pUV6Tzs~`j*8#{n+^!4$ zvMER%O59rGkDSNRXsS*2ZV!8QC(Oq}Y!t$Vzl}isM(5GLvZ*O>0(UpI4xyEI9jz&x zSg5VrG*r7Dm02~vJN8>n3$5HHKulenc<YXswZF%q0d*WbR^e9oEGU`>@kk(XXca-}Mh4=K z-e9UU2--G&#%1fiR5SiiQe}~PnL?=FWCiKX8X2~*Y@>2jxohBb}G z+niLNLpZoY2}@zsMJk`IBxJ`y1TF0n(_xmj7lAw!04>5z%y?@>5Xy>9vO7Jb0toi< z%XWi8i96N4&@D5567p4U?Fxbs3N(>1TuA=T%J*QLKnF$q6u76{;T44EyCmy#SXvit zv%nar;TT=K*ah6sp;R-msXycS$jxGvhf27nRiHl!G#_$MF?fV#B6%c%sfz$-@Bvxa z(p4BXQUrczLQ;Q{c)#cu2(hk|L~#?_Z4h4lbBZ<=w9>AGNUF#0*%V<98R2}mYoM$( zzL6b1kDgZAL3$d0DJYkhqB%18^jXlWpCF=&=CIx`13ybrBq1vUw73%r_na#=R=|%^ znB>kWJaqZP-gfV6c~WR zn2s`wpS<+Ku+A$$C56;%1mB;J=?}nG3gBksO)7f5?w`cl%jXdj4vrGdjiLlz+9+M| zrrCNpO{GE1E-Np(#hy_W1ySTf6HowFYDfd?SYItI{p><_9k^vE4B!Zy>6k%Y|K70>ev%A4^_<8Cwk^Gfqv zIsUo=N_-=iDN8?!`Vos)kJ|~N(0M}9F1q5Y7Y4lWh@mFe(SlJMCRRo0AS&b`u@WbgX3*Nu8{nSPUcCiO ztz*g=v##({NCcSJ6ODZL7Bm`43gQc*CiiHI>7Fug7!ZPgT^G}aXif8WAa8ALBM4e> zRl>!AOX};25bI3V~FNRJHS=f9%)?S?QjDl$$Ca5quj7;gD__?FNe? z^SQh3b@X<;@(WY+O|3E3Z_LSxOcLwE^6bE<2+azU!GL@9n5MHKVsoZS^g%mBuxLJ@ z=uJ>_&bl<@jIhwmOZEhA?_AF2#?N<%R-cKx?lsB1HA#_8`NFLN!7W+H`PH^G!--DP z!b~{)!jRdTG|NnZ_xnlW^mkrZ8@XGMzpt2ZU_MBP-s7|7wky})cSFt-#>2Ozb@N9BMUiw zk5e_iVgnpI#B4mieCC5zj8XuS)N2MSaYLWo<{T z)2;c-rj6bEG7pGTbgUlsgWVUU^%J&9;G+W3!TNjK+#!1b6lipzXk6~28EKK5}+wG*cu?7 z9_#*lmI0Ky`H+?aYe9P2V*s+)eyk#SsQcLH^W8MfgR=5_?jn9N`#IT?yOo!7{@|lG zVg!G>Wo+(Vh@C;&cRB-U3u4X&r4#Nd$|SJ;JzrCJ#dUC16$m;fLvr_r`v4%Y0$|&P zK4kMg&bB|UNWpi8;HNw=L}6%e05lSTKsakbe+ZC}&l?`SFo&FsUZ*>J&V+)7h~M)M zJbUqI0!TLV-aQf-UNSDYLd~OiB2}pt-0PszAAyO3#|q8%jF23VPb1i@#FxodF<&B= z#pi>_bvmR@Q>D`r$pvEMVjxBSJ>CMJ%KLfPMkg?UCfYF!0z&e@b}*0v!#blbK8v5II?X&*1QDc4zYz zSuSD|ng%mwa7nB}NEvQ8akpKz3No6%BkO%7NRe6h=lrfLFUg5B<^cNMV45A}__?%C zN@ZG{lRQK6r{_EC)6RYk##nZ|tD3O9}AyW}w?1bPlFk*xWM7^8BtCK`v4up0-}QUn`UJPMV>UfWK35OkdLK>bzA$*5E`3ZzO zNic4VQFvr1k=?`vvg`G=Di}vDUkbPBFgMDs^VEEBUX$#+0UJIK&zQV*&1u3GwZP~) z2_qYb9*Jyg*1?!36mxQ*!tQX5nLC-AQ7Udt61mzR4LMvs7#e8AmVuX)aij>{W=@#x zo2sWgLgo$ZA1w2sCd^{Bw@D~^>)VN_?7SpW!Ot=PRY`uDRfCnVoP5=nQdXS$?$P1;K3-}-BG6y4<| zH6cd)%Rt$EFM?(I8QdxvT>uSb>TV)K8KW1m+`(K&q^0U#phrEZ`vV8R0DCD_r$Dbi zg60)MRra#mYv33nM%ZEW~5_L7c$wZG=N3gVZVUk43{vkE8_jVddflBHJHF5P4DnjaftJP?q_q z1(>lov$GFkEtplZ9U>@{BbWlA+vj}>;WX2Y@tnhlh;L`ZgluwfO_sx1M~7%SIF>Kf zhLbm86xjxvM#25icV%5XlV*-`YNO-jrHL7#UcFVONC-0!A`<{_xaR{<$A0Tx#K>%ur(8O!Y z>Ra8>$()-}aJPi1low;N3P94wM--ZAjAhIaiJ*AVP7$yQ0Y%^kK%+d3>=nu}O%S=M z!Q5pB@0PF@`*?8dzt}~woAa>)3`k1aMlSKO3W$p+b3o%Gi-2L)wikq#S$KL{={mE-&=;=zrQUi@JB#iQLO?W44 z?7mmX*;cBuP{5H$yHu*xoW_JVMX3jp0bN-2De)52#`X7UzY31?+0sHgL=-qYVx6gG ztie`|yVN?Dpp(#JC|q>UrZ*N-snDzZYNT(p9&aqL7s zc!W@%w6K6gbEqY}G}q}Kv&+17swu#aoa_5Qxr$x4{%gV6c&2oZ0OSAMUDsk}G z(2mF0;IE$Oe8rq?BpGyzR`i_F=_)*Y@1#!F>tfxPa#%P8gEY~vOA7A&;r17`Za=M= z!EJ$>+V0_lwBGyUeQbr8wke3(A-#2=ui-r##C1MbNGV1ZDd`6KSFS@* z6sSIOVZ_bKYH~I57yRWlxWICl8p^wMwYmGFFGr~=pwx{#DaIDl-*!%;Y}8|l3z+1+ zp2E=YOLjgtQ3s6MX&5t{;xtNq&=RvHz-HQ}jG5>|&MJ>78@r~g83B6bbbK7o{7XM=$g+g3kJ;YXVLv88r1qKAgcdq`pkTW%b`d!=`f} ziAuVGyB8n5=!ys$o_~P1wM7HP8Mg`ZnVS0dx1nZv9y*48Sl)60N;{qx8evF=sGY^- zBIg$;-ohWHj9sf;shMN8^cT`|dlcOHje~F(H^mG+a>=uhh01;5ltji`;Ny=M>0g@( z@XGy2;_Nh^UUHI29QO7;Y4z{&-9MBtL`@hULu1xn_Xg?q&?8-$cU|cf)0Ya;3!x1R z;nznrLG5OW(zdLn1zMFxdar}r9ySCqT1wU-#p53Q53n?!r%#dZQz= z_(XwxE20cte(M+e#NM~k4VJvr5NDvLrb!D+c=kzrr5VEF9JVQ12BQmbxs|11->9I= z^?G{J;2Poj;g<&xTA(XPGRqdg#Lwbr*Z)1H??vP!4;~5#BiB-gq<4V{Vrz%X!_-Vr zLg!Bw9a9rc8n73wM;L#?9AbrwA(OXwGW?dPc*E_tuI5+j>c^DmHzEP|Wr66YxT=!N zS3EWk(i@K{VT>*_8!Bbk0S$DkS=i=7kH41+bh>b&;yL#@BKC+VU}1%F!XMVU-li}e+Y$|~EFHF|G;$vzK!aQX#~6&LhU4p6t`;>K^%O$V zz@v}7YvvV(PSFd{c5q!yWU`=<=vs-w34qU`j9HM1$%aB2H0GgC$I9vjC>nVYHAY`9 zM;{bMFpNfY?nmgrMlwJ~UmVBEe~O}UM5^9Hpdj-WnGKsMkJ}Q5ZM%+5-jgN+Ku4q5 z2f1R2#=`*P5tPC}1SUM1_W^HGDn-|ENs07Q?7pVr2r<`~wE%Ouco1rbzKnV-k$Y@M za;$c1EWJts(@EkHW*k+3CHAh&)3GK-M3Ul?14{;WNiX&qxkDo-G+sKosFK)pd7M=* zq5uL>u~I0R1Jog>;}R9LG9B-f8dWJEp-U@~&^@s|8Jwuqni$rXY-XAI6FrIY#sTNX zM_FGzi#Ark{-(oN)IgW&PmAdYa1u(` ze?bpbLLa=&B16j_kjDL*4@Y&AL6#3w9wd+J2&T3i$VWcSN6jRy3H5uHF1U2hAxVH= zGIw51wB0!=NHK-SUPJfnmHBy`X+S2LD}-A?i;<^_j_Ry1mlh^NS4iZDG<&1lOPBqu zg&ru4Q8XJ+j;gl6@ULypjnB_C{wU#j_~AB z$S#I%wG#&twzUNiN342_cEo+wDaw3_;ALhV)A-_CqWW zKxDifDps&6r-mzewM35=DnW=WiK}FEX3gh1O(p{%5#MCg(TU!bmXNX`x|zZAA?Cl9 zXK{5RVnYCtY0Henami&cdX>;$Uwk4h!HDdL6>U0BVU<<0t_8)j4CTF^25{-^GSy1t zx$>28p{wX+h>(J4qQ(G77a5E^OQOQaI1PHQ$JOE%EqLOD0k&+#| zW~-{9@!Exssw)E1Wdt5+84w|X^1+?b=90zk=F1i7xy}H!p0n# z+{p1f1vD0wMfe=Fnj}69I7eU&nCf%T5*k%CvQ}(| zSZ0jLV`qs-Z-#Lwll2+_C&=2~qSG!@R>MW0M&^%TR)z7+nw(d(jR_Hwkj+{534y!5 zjFh26Evvm}o$F@B4tp+jc;B$It80Y8r-EK?P>sn@9X)@?e6h5_6$vuhh_C%DXY@_q zT_~YNN?|w{v1+xAQrH&qv}!?xiH@LSEvoLv*^f?)xBv#T74`0ti60mdaEOIJ-zI*( zpZ$dB#~w~-$^2!=i-~QS4_4pqN)z?``CFZMLRT)^+)h~-$&^8yUnUz_pyg_!5Ar?~ zYNdK()pEG1&(R~3E3?4M-|}S0Qi#>wuAb6O95L@iMvt)Q@yyYgu8>X)DP5v>r4+X) zUZf4rS6!!{aHCHeNQ73Ni8BYUmf0f-%%x#0q_g>U^~=*($c4J#Z$RlAP$i!c`tj)% z&|x8=wOMXP_)sgOFAJ-Ahs51c50O_5xLfF35IzRDHQK@)Ft^MrN}Q#qnn4(uBd zPljp}o9P(~jj&R2f#8{!>Y2C6nfLPr@+RGmy2syw&FE1!FEvd>csrc~y z0(vVfBWTWo;aPnaB_KOwYUVxg=1=}`>4+!Q4Yn8y{wf}Gh4O$#{mTDce%Zx#*)3+- zqh{G_YT4&P2-O)HS~}Wh89|w5*%f)E9LmRJ(_ReO%@=t!foU}fc~zNi<>lFa=W)f; zhdh`k)AoJNEM~GJv9n)S&0(@PKPE~3Tk>mZbRF_~1Jinw{CbP+dRxqTgHOb79u4qg zOzVYjUQf7Qs6_y5;z-QKSk1=7)W+1s#tic2T+RmJ$okTObE(nBl&w*C`Pwk!+DJCT zB8*l+hJOF%=4<*alHlyw)Yiqt7GzEk`sz9&@+?2?48y2d3!LKT!R_~pZ7}i<1oPhu z=XYT2z&n3@#K%Ae)x`3U)1q9?+ebZd>{7efcDuN-yZE)cE-so^7=PgsX6oi!7z#7; zWePO0dvvvX4AXl|mwPO=a(FcftjxdfyA{rZfAiM<=AZs8c=`Ja%Km2qsz2s?Uq0_g z%kN3o?lYO#X2?y-PDce$9jGcCsM{TA#vW+b9(Xz)kW?NRq8u7CADVt(>7pFi`5f|U zI}hkhTV5X8qZ~P2+F~*udA55FWcRt$9(he4`D{^ahaz&vBi_xchu9s5#U4l09!E_d z$6OxAp`0WzpCl=qq}ZLLF`vK+1oTBN`Cgvnp`7MVFNO#@AnH1l#hzBwo>ont)?A*} zp@7dCn9rIN&RXow+G5W-KA&aD)=e`m7NDH>F`rv1tQfn(sDz!5)t*mGpHE$$&!Ak) zF<&ewTrAmLEXQ7~)?WOw3oK=2!M;5kV7~mVaEXz#H9yFAQhRweeR*+td4+Oy!+dq8 zaP?q!^%Q&c5_?4m=>oM3g(Dw6t9J>dcnwq6^8l3BF1|*ZxkkRaMn%0rXSu;tyur4= z!Hv7Yue;&fH&b$hiQZX7x4WiPyrqgO`3m!!uI`p$=9cN|mId{WjpdHxr$X~@@-W(K z>bg7rnL9z$HF*1NsmnW2#d~r4`*zPN}t4Dj(Cr6g2?}|?@_D^ncPabtoUNcWV zS5JPZ&jBpYL5j~I_RnE)&k=RcQ8UjmSI=>%F9|F!Ns2Ei_AhC1FBx?&Su-y=S1);} zuLUfxMT)N__OE4euN8H#RWq+OSFd%bZw)MOO^R6-q&Z|H?Q8eQ9pKBK7K2H z9N2#x#eJOAeVomFTwHxzp@MH%z;}w^2Yc{S9QdUU{5AuA{|lA*@85qb@K=HO|39ff z`Tzm(FGv{>fCXSo1kgbk12h2tK+5RgyV=V^{}WP19*IU7pCim-gU%-Dt$}&O$uZb3m|3J!o_)>(G5JjWx{zA&m=W7iI zGW91k7}hFH*2iWP)d|~KSNr^s8KxswtW@A3Sup@cSnLuA zGEBHURxf*BrxRFABq}qUEnxG6Iaa(=PxVKnpg^pVJAFrhB2-p9TeTS6`gg)bJz188is-6{eg5R+l0h>e9IH|G-!z%#Y)-=D4~GGg5vNV?UQeT}O| zY8Qo0_fO6i>io6?-d^?}Qn#J2(T9`mrl?x<9iKyJi~W`$bjkEz5M`p9)INNY1p5 zbvH^^qM#~)QoDTySjW$48moerhRXnN?;VT5fy3dyb3FFK=2B3?-7}OoEuBl8fI|AzT4>MeK-~Y0{>UrLp80`G>cy{#@0LOUU3yo`Y-3L!oeccb_KEED7lVrRZ#L~36 z8NySY9Mr^ji@wJBgQyHOLXt*wjfoi|&^X2jj=KFxk+jh`#sWojH_5b2bUnr6Ro&Dp z@Z^0n0|m!)KPZN2b3cblqklaw$8z4>rzGify$Gji`_QXJS^e;fxs2#$*{E*)q5o@| z&!+)P-5%EgThjN|0mt70PXjJZ-rR#8Z`O>TCVWi0p9TXo1$c%+WWC*oBDmkV7h*WN zd4~UP=XngL5PExzWPE>jUp=oCxIfAdW9AslYTMxbSuxYyDOB^j+w)xTn?l!Y!nUvT zUZ*H?=V5VL?!#3sQk)yI4w{YR^)O|&K;O&^5!%1<4;erJV9W)4f{+IQ0RR~APG2-7 z1P?8URi!hvOt#gcrtvXq*`@xDmK2$a9$+0B5P~C>kA|umPfbvmI6?C8+Rnv(cBUvapRSf7O zfR2rrAwZ$vV3eC5Uh)+^ATp=ME;E~%DTAA`ShBh}wV3`B{E>__uM zzd?ZBXc}d988QiS^84oMrqX7Res_g2stv@v(xK~F6zwR=^(|7z!~WPfsA&gT>J!4= zGE4p!C}{k65vkdTAF@a8LimAbcw!9L zMEG1kbm8#jNwzcTu8B`77O1nVcbpoA*W z%4E~JfBmarWLg+)MOCUEy{0lRTT67&->orj|LSTd#@^Kaa1K65Ok@<9$pJ=8!tSqM zsTARO|Ax;R%Z4y zSyfl$NH~3*;9>Xf6~qM1PO}AhAkdS!gK6sv3L1jOVXO^ZTIx}sFXIPeMx#@GPU?mDt324*h26{y>snRBcFkcf@f^?5l zWXG496>Fhx^5HAZn02OHHM351vaQK-2mT2QdktSd54pf#x9`eftbbp(QmoS7uwdh4 zOLFq}%*Zl|K*>o~Vk2g!&K05dFKUFWV#wuVFm8(B*R8Auw%Hilw6Q?QP{0Wm4OkA9 zbB)SQFc$^LOjFF3hUn*8qjK8tc1i8*V(e2aE7@RNpr|O8ZI_hQ@dNFK?>!cC$Vh0m`oVnnnj&^sS`knqCg3D<+)hyL zl+|=Vie0a!5WD;P0Cb=CFvU$HcFmDI+@WFfu9C?Rggd`;Um&ogy^a=rFDqGpIH}-uoz|W6Jlw_9pq84 zj)i#Mwc32XqmwuBz@mEj2!50L8*nxjG7eI(-$TRQw7xT7qzI>^i35EF|HfQq5Kz(4 zIIke0)C@f^D!0}?D~E+SlLu5HRa25ySl@{fOWQ3tfHGuG1;Rx3r~PTrD9B(ugEF@Q znG8AQytTHayc2BDQ)z-~3$dVlU^ht&B zCl@sXR1}<{he-7srBfSB!ZYtg#*)IMiaOCn=3y^LP#H~1iBTmc^z-z|xkHzVF;n&K z>ijzVg+lOfOQuUEtdQY_A@c8Xj{Hv_`oDefF&_#+P8tv^m8x=DDYqL-^?jOQ;YV}y za$DXEwp1}%oUW1EY)@v1@lCoIZ)(NiG(=2KDazM+e(w$-RLBcKG$Y2;EmDmEoSj{} zTTUVWt)urhOKVtR<^XTskT5;3$l&leYk3LRm{=!mU}~C1R%TXCzBwmV5wk~fTxoV- zrD9S|c}AcyY62Z)dW*GGM<--@#E*8D;#MhL&ECXTN`-5JpS#XYG!tuMd~wUa7t^>OCQC<_b2##M5BXFR-xs}VH9pI85`Ab z6bUgJG|IvvT4qyZ=l|tw|J@S&e`*Q-yJG#nw*<2P*yDdzEK0ukUM$nG>UpV528ec+ zg~*Z03Df3d1h~C|g-s`+OehZmnAlI>l%98DfKU^*yh^mhp@(g4@P|sW!)p7o*&`4P z$Y6fpaSvRct4RkrhaQxW&n)j*CmeNi@z9BWhah7;&3q!Fza zov^fM0Fr#!%->e1&d3#2UFOWZXk>AMsOH_@`raW^OCTE;%})F!*p=4smlV; z^{_kn(Ig`*w9#>Qd&uF<*&7Ud<(wIEv_!Jo8TOkBhkrNF)ZGa?3PpaVQe`}f)W&zY zW9!JH{@^7xQIF+L2jJ=(rGs9eIO(N!sH>%u*e;|luq>FKIOi~Q`IH3!0RcRNm& zsf(rluB$(-D#Ux|#AQRE2DXjh2a6}1tDsbk;`*QNqbq1MJ?lp8lwV%A?VB z{(WpihTp-PVR<1^$Yl^3S~oB;xt68upX{?`cxP^gn>8hq1(nCIb1v8 z)Rm!yqV%5ax`C+IB?}SAxf;dskOJ7)+J0llNq|14v3S2Lu_0s2O|uYv)j!zyxEj0K z2+3i%iTGq1OqW{9@-}Ot##s*Rl4jX9Kcv6OyKcRxv)YM9EYx2sH?{ zC?rG2g#NEq|8In*074*60W|-b>->e!^UTH~!~S34^T8GaD1C84pZ+I&UODuI=UQU? z-|%@=c-a7E{C$Vs|A5ac7f_)Qk*y7H7I!E#!_pUP#BB*66A%{ccLdINz+8=Zc?^&cT}_*KTG z5%|_yz(q&1j>Iofxf9qNBK6s-_KyNOw#UEfzZg7v>a^GnSDWhk)bKx^ceU6fEoXH- zscsERf+dK&+rKvqC2@!|_uM)KX5?9OpS5|ao^Bx+g6&uT&_F`~5$^@^lmZnW;Sm6= zaa)2jP)G+)(e-4;kZ|wPd12=8GkF8lRCxHAUlQ5Gn(Lfx|Y1Uflc4G~)?;S2F9ND)GX%s)|%q!W-T%EV^~ zz~t;*@c8mrY?k4hNUwwh8bmY6DlJVvt+ZAEe~Ql{?SG|FEw3D>%4N#*Jd^yXkX~S; zw`6qQFihcCq!__BR<0O($aX*ir(=x4Du7jM5^{N4NO@Dw2bBN%+?fl=!NIP9 z`ZMNc(25fNrVPNDN4l=4K?F5+L)y}^^neR(ZYzIYGN6qj$Ld{8G6xBziNUe}4-{1t zY<9|)M7;AvQgW9eJmJ;qBAf|(YkB6~x>+(rlHpj#9cSRU=UG4F&C0J6=zL)DBKD84Tln)ywk?sL zS~yf$g?6izruO;bUOqoS^b%8$X;I>oq$k@HT0{B)aD~CpHE9<5{oPak+@rH z$Rr^7P6vRjmK;A#r6dMWon3)8!TVwt@3TI3fJBO!3-ef?wx_*EYKtYMPw+jhH&~NB zNE?@_`YL_48^n@^kZaaY!2gS{CrEP#=ecJ6m#>$}=LIWP{L9yyxT=F{fvPC~ z^7X#{e|)`PC0w!XA78KL3#XX<$JYb7!&@gix<>x-^}#XV#OmqtJaF;s`etSwxY@RS z@bdaLI(`eDD}^9>j>{F)cz&kS1w)$yvpJe>66vPWD>YdYe{l@R|B!*ecIbrerx7o|_x zn^(lov*J3cv*M^UfHSaNy2t%japlXB3j80Oy@glQd*A&%^Z-LQ0uDp>(4itA4N@xI z-I5Y2F+&X9-Q6h-BHayA(jlD!A_mXkIp@01b)IuS>-qiugjs9WUi4TxJH z02(&SRfQI|bro6-R!6EU9ke!V?qzi`7kP|!Cp!R*8mgL*T_BY2nKZD^6BkkCTc`64-dA zz*ot7>{v3MDRmZQK<`f%eb+X0S%1I~FIKo)A6P`|PDqD!K3wK5`~Je4LdE6{=nH+z z5^KG|wZDf2d!5&uoEo~6Gq39fKJ5>U1j`4dC@;-`x1ygkz=@%lVoBMzJh;a~ofw20 z%sDV6Op;^+a-nO9;I=pNh(CnX7LHC%$f(bb2-h6a0?P;j{4ra z!{CrW^GzwX!(5aVZC*yrAC*RNa7`E0Tw6H~|CDJ?=Y`nXwoO9kfYn(FYt;!?)gyn#vkE(M=u z9mN|@&sx|2Db;*!k7oa{E8T@mb+AFiFqf}!ABRpGzHf=uZ4`l;GNL4_K+LMgOy%L{ z7O^2+m-4_y-8~8`%IfN~c7e>^Y;$I@+}(%!9j=&IuCwUWBC!osszP=&qwh6a z0I#g3m$oOtP2QHRA%34civ3#eML%Ha+B+)|<~z?=ebqP6v?Y(mF7(tK_uYZ3=iG?J zSi8R0D_9V!+}CC0eTR#>Psfe41Ga|xUYXS0?KMr8Y=)Ox4RIw!W%Mq~EU$fih`~U# zKKoPm4s^|Bol=6=vtLkmd$nH9hv4tU&w2C+XXZaLbhtf*&x!cdKg(-*P*3m@OB`)y zY;b2*!Vv%Y=QgP{`6W0}>xXwE8j%oSUy^h_p2IC)_*ZRVZW*<3pR$%`sbECueQd~E z9z`++ONma8T!$0gZ$+{ zBaIJHIAhKIXFei*MQ%0hR?=qtJ@c|miOz@z@n)1Yo{za^d6{0uE7DwAH^Yq!f_$GV zfaCb&rDn&Y&2s`7Sri5pRfuEZz(6M9!9f*o4PxRlV@#6R(?N~Y^Y}U-42b$i*ob!r zn}z?7Nm;RfmC2{N0a?L+$z-8yRzS%g_yZ}2hv5H(Kgi$N5z=snKjl(=!*}=tQ$^JG zH}%}%PuJM=`ot(=3|esqx)XbJSwFD)-u+{a4Tf~NOCE7>d9rs zH(cVnI--jI5{IepT@g50mh6}P3)kZ5m)o)Joa`T$ru3eANfLHs`&CwiFdm|YApn31 z{oc=F)dS^~K-^nmCMUl&6oz{H?XfV$;$8?bhcgjqChYdC;_T7RBgLy}7+8=P<2 z36f+ZS77dGI$7<2^KmS4icMN*YGGg)qz%|r0z9dT-3g7km$4k(sVI$2u8@)D8>(G) z(6N3)<-+2M;N*!7A>4>i4D{rTWv9GY@AiUHdTS8Qo~2T=koan1h3a7xUCTrI^ELj* z_v4Y@5ZxT`#TXd1^ElOaR|osO?6@>tf_~2+>p;ibs{Lr+B2cvQnnX%g3Y1s_TXv_g zY$7pw+l&SCOb(gX3LbYr=mef3HxIyILCaV{!5Qnkh_b!dETZbm%$DcTqZv-6P}i>_BvS0@|%e`b*MZ9$m27`gvD2Cy&eA|ae>a0 zH`g+PvGZ_#IJS-Tt0o4{L-{RVBkYcB=wmTJl8zqj9w0soJ)1Jbu~2vwK_!bL<*};% zIj11r@G3WTg3WR-3?&&T_1F#7Y=;|5Y=8_h{B4iLE`+q{1y&UwbXOZDl#Hv75TT++ zL_6qgn6o`>@pH?3nrd&Hz^eo-j0|r?)QxKlaTaqW1_9r#XxQME#>^jaC6jy`Y z^DC6|bGO6;&ZBW5SLXfRG==7jz5{{y7nwWzn)N(-NL$Hpg(>DAeNnqqnuE)^0~l7F zwTGsf3qc&FIQY)53Zy6=eJ*zFes5`(mx#4rGAlpo*K9ywB{Zm#+olw2^(C0afg$Sc z)qu@cz3Q5C8BWA!C)Y92Wx?0N7oN=CV}+^bvjtYbcW?b;2Ua&9dM9U2eb+b#XBv<_mo4C0!Wco0e_=>Jln$={jn-2I}` zWHNMMr1?8@dzE?P=gp5*Y%ZSLy6jTbS6R;!KPO(>u`}!@a!_6@HXx`j#!UoH!+w&I z3(I&8J@QHUbWnH|kHg2}_5#HiGhymc{F`wYxXl} zjiY7VNxr`o2u%+H*)&Pr>q8F~4e!JE0!rO)K}Sd`W8wHqNkUe75KNM$#Qe3=g(DLo zQvMKyd=VLQ5K)-Qq^W$IAgbaHkUIwH-P8JCh zzd4KYyV#_|CJL3HK95Eyn=@)UgLvm9Vxq(I8Lc|uQ1rirQdR#DLRHYe+<~GspQ{H1 zJWBo3FBVf~!6AS6#k#U`a3x6Nzx?8}VEsS*qIR(AZ@&mfG?XLl;@utSw_V)3vy1yD zrxTw>R<@9Lpn;*YACuER0pCYkU+`pg!Z${8a0j9?9t08A;2pl&z1I~+>CYBUIZodn zb&l`+{W&yGA^e_X;g{mt?V=Dyj?DBBXn~R)=gXD=g<{6htS$TfH;JyS@|hLps0OJ{ zS?amBnRH|ds%+C`y#b1sbB+gc`LH)PFtDGbzo9vi0;S#+AqwEb?NsHqyTs%tLn3mp z;@#0m#`WMBudqJwKZ+RkA&ihfcPUv%{cnm$YQrp@61^@RixsFM;4PRt-q^8GyRTHe zV2FaspL_rYthN&zU-3aZP*2d%NYVM7(zFfR-N(g>zkkv)!K{|#^pV`<4M$de-<{+C znzkTJ5hmCNJ?P!l+afU|=do_x{~EAVMv##aZC```kRk($0{n{WJao1}fq_bsL<1eC zdIr`Jw2aOhZHv0O#z>`IFVOTe#Yqyg6if<|tvZ#`# zZ8cl#y=qxWYwFNq#P{rg0Y=A8tCx)Wbq&P>MXy-L=h6OLP3PDFz?E(nqx#*>8&mFd zR=0&?vm>cti%hTt=<{uZ0h@klSgshTuy=PEo1-OHk)u`!vYdTB#O}ds?lAg|xFheG z>E7JSn_p5EV{u|mZ2D~@>Ba_FRyT)5S?GS0&2jb3(CNz%#Zqrr@(ugUVnjprtJwE9 zrb*j5BOUUO-XEHev_V;*Q1hqRk_>j=IXhxqSsp+~TQqc+m(^^&+y;Keq;NwPQ4KdC zfl)(TmiHR9_!ySB(hKKK9JmI2EwRGQt9sO^wBiJ-Ed2a~u7bXzzW#dX(KRU&w=w0pX@TM(?r-@j#tq`xk0<m@s+qN|5rjrcw`qNd754nL?Xl2jk+S1I}s*QgE4KQYw?-sgQJr6{r$r zEyS4+%W-U}oBL{qfs{JQneoVD<8K(h^TR4nv|4-)9>eP09E?K44l3%N$0o+- zgQfhDe({_vE;~MeSuz`gGT=PESec0_hcHm$uUrsm85{qhloAjB)iOSQ5RfJQmt`!X z%L)+uldQ|iVU-|;|58eNgxnuWDTI*vgRCKlhQ|MmtjqsN*6&sSPs!RmQN7@)&!1$i z{F3D*&hlSm-A3V7JRS5amX3_|g^fb$(=1yq%{p5N55vdYGRc?!KgqiC|4r5-(K!E~ zWZm%M|C+1?;A@9ogu4rD%By1Io~~Y!D|*8$q#qvH9K&aX4dPXaX?ORNY<)}TAGCfX2M|AVY4#IF5<+x-4U*36+_@sMQAt&y?;M*l7=7QzTh8I$LtEM^&dhNQEHD+Kw@h9cQ^V z4PO{Z*4Sac$vU~V`%khy4OZVCbg=r9tOr?cfh1ALmkFnH+09CbqEgPhy~k`FO87%r ztse>39o7!Z(}a9_-}=;MJJBC|=Y&V=*uDfUb*xtj@NADEHoHhi zU!;=3{ic8~BFjeALo2169~P1+q=izTR4MS_G`+JkUCR-ZiL#3zbc8_FJn>2 zBSl~kkV%yWSwqcaUKya&eLFEL&cF%(6`Kkz64X7WCY`2~ z3K|4)@sr`Il6hJ)O?{U3M3E{nW-oTN<-8(dIA8YUsa>#=iC>+0`qn)KW7v>LG51CX zgVZ2c(qVT>ncTJ|2_yzFOE7;ZD4E`-wNP})!3p*Bp{BIVRo zwGEmf)go2vM^Ulpp{lHtMfkUDGGb2q8gYUdQp>g@#V`C%+9S1>b@SHQ5p0zi3Jb;hG^3XHdMyA+^1riZf&hhR8sO*v~8wzj5M+M;jFs|Z3L*oQI zhD!KD(OSbUG15IM;BDP+y)bH$g@6M*K=mN!Z_mDJZVvlyjL=?!C+nUy$=&+Bu{#E} z!95;jJ+>w+^pZn3z~+1AP_ds2D+Bsa;OVaKfyhhbupq^VTR&9(?h-kHtJ`r|yX;lD z{aY`gx*Uw`i5sED>TagKrwOxJVeH;>5I<&A&%CHx^}+?^8u2$YMg{GQn$MOZ6EJOJD&#!~2 z4zI2XQ>;-J6fx+4lq6K~BM{tLDqY(pPwP>`@ufC#j9SK~xW zHKlea^7+XeUYtdkDpi6T5NzA95r1aSm`ZCE8yU@7%8!jkG%yl17>~=}qQQ$=s?qC~H5vJq& zfSqfgvJ%#@pK;2qk8jxb1<#Ci>}Xm6poT_;YU z$nj`Vvb@Adn z21ByD_1;g{gmHeJ4#T(K5)F2pjdUMD<-SlFwwgBp+i(4vf(u{IY&Kd`x3G*iUcP1j z*oH<89}U2WpVD#0Fp5px1a`p0x>FwW}g5<+*ILzXiE9RVT|i zKh*63F7Y}+Q13EmZGDMp_P9gPu$!kT_bW9vWVCqeW~4BrB4(#Ke0ic zRNT!>P83d&v+fWpBAe?r$!;WVrm&SnCe%R0@-khKX8Rh%yK=_n^?Zo#+dSy;FK1T& zheKd&g@=OV#pHK%%_6E00D_RlkK{8WkB|!5F8G8pyZNkg3X1Z?C}{qFbCUx|i9EPV z#sA7_p8l&uYCbm#$QJpJL`th?2k4dl?qAeDrmTclgI?hOMhFVN0WX19iN%G;qD}<|NA5v)*TKe zNY($Q^XzW`P9DPClM-zvlZsWKS?B#Kce-){rg2ZXM$Z_9n13D#;Okukzfk#+0Dgu9 za6CFEyJO@bDblyFZm7sIyi*#u zgifIi1i2B*Vl(ju9rdmU5QJYVg#`SML^cepg6$ea%`_`ffT(Ya7qD5d?9W3s(rhzR zn4?ivgv}k<6*ko4KH_~TfG(kE`lCV&L+A}q-yp){@zGyV=;?_`Fx#cBEA0C4q?Q(e z1r|eCfJI~dkmyIT)H>zWD-<22)NHolab4Dwrg{iBEt`TjY%qE~TEbz!!epsWCC1$- zb@;6Hzl3#h3b-Wj>Da8c$n9iB%rwe3Z>;Qbl}gSwaNCAvmnc=ma3ag}PS}L( zE|heq6t$5p7V`x`3azvsX1u`3U1qwMR!zAnHYc|hS1S62*9#^h3nXf%jlTa zl#GQIz2nMrqAAl=}!*>yw&pj%u=8ec z+x8nKv;u}AT0QuEhk~oQ?_pZTUG7ERw;z&VJh46X-9v!S>>t`*-(0je)knmeeG>Ov zDC~0_24F^CeE}m@>d141dl)&02&Y$EN$D#(7){+?azsK(S=cWM%8_qFXZe`R4ZQA_^zyp z_hB8uvTkyO@A-O|$EZvIi??R9-WiTGyUrkAD$a;`lR=V2H{ITE;{K zr^|w=76!T;CZl5nChmEdg(10{J}&!*IYg2^NDZ0O6f18t%6i2ym7FJ3hg)#P128~; zH!~Ov~BRNwbnm9|M}w-V&~v+W)ZYBva*S6t#xl7-N5%i-*3OK^iB(&WOl;W&QZ+g zULsW!)s;wk1~;cS?0V*rd9hQToB>g*dXIdpd4JRlb*?@(dwyFClNsH^!P=CeR89jG zb2arsRc`@jSzLC~Y!xjGU-qA}b;a3fD#COa32r4HO`m2+MeIB6b0l|xkrlVKqo7=av+A~*L0T>~~A`+*5>PyXD{5NPHO^HItDp8@?yaO^uvcXtvmgRP3 z+2ky0gc>!*LD{5Xd?cyL#nrh3a0w3L3b7a~Ekmpq32DXURRCYA9(O{ClNBs?-@E+g zD>A;4{U@G}{&EN( zc%6h4D5Dv2--IF2dc}CxrZ6+~sM*>ybS~pMB^cbZi%hpgWU1(hKHjC z7K;7LbR7f#mrFWKnOhWOs&e5 znc@*tY?)#jJGdFV_YJ7$8+*a19NT3b!iY9~=P9Wbv2%1$^*xah_tM8iZB4OLCRP+_ zp`EOxBQ~p$d~tW;^t4XT)v(Mn>pXA{B+)i<595>_NJOR!%I%O(Ue`t_Q`qF!F`?#Y z->GInyi^*SVGEmUX6E<3WLPooOfVPgCrDpP2K3N~*&Lw5DTu(jRWu7g(n0BwvbYp4>LR()`iUyDjx* z;jL@?0Zy;Eu5w}P;&Ew3$&XHWCmyt)<{iEqD%zn#oZ%poQ9CvbC{f&OA5i4DUcRP} z?<=-wvZ?rLwfyPyO{oRA8iymJQaU2T`goR|uPHZhZy8*3r136(gf~Tq*YqyW`JVcM zEq)3Isg={B;EQffQ%+#&8MD-Jx&JUO&PPpL;`55YX|2ml2fobA*0w7aV$~0o6~cM_ z#@{sK#fmIC{6o(Zzbt$2jCiE3@5#CJnahH{AJTrMg$z{Ae!E$HOB|WE#f`HVyUk;w z0?M7j?oM(rEfE*kHRa`zF!0zG%GhyH)qM|D+}RZwvRwrF+&-0 zy5}VRq%KSuP+&9&**N{u#|Akvs8`opa?C@tIS-f>D)jWOe9gVTfbb91>xhz2YZu{) zB;xm5E3uB2kaik*9fnAFjq{{(sQJ+4OKT_&f%St*LYOW0jNF0*G>xnh$|2)#0$Skh zrd~W{7ae z1iJDtl(Ly^rk9XN6ajuh9G5(q*&EAx;=f5*nlq3@uTbdb;ZiuNcCXhfV2~ttByG_a z^?i!#>R6`y&!046Pg$qqWggrpDv~Wv6-}g@j#AcdPnH_T87xyPa_9sYU^mlXN&?`h zowtk3v0!Cx2r6K{r2zM^1Jc$B;gpZ>K!IU}U*9n4+uMi9Flx5pboljwDG*dLbkYmw z-0%Jtc84&}q)eE}r2XYATc^5i*zM0g8KaQ$uN{CTOu7jGSbsT7QvTC>DQjIm>td&` z^^@*le`g%G1$G~d!BQZ zWycdVmutU|jf8I$)6Y~Y93SuC8`Amd7K*E~lMN+A74F0!!$dPc!ne+d$r}gObu=Ik{aGK?#Ad*Nh`)rMJ>UN_ONCBq^OzN zhlFzZisQJV&*)7N@+n1yy&$LYD%u070C2FKI3JOr{*QXrVJ+ zQ0*>L9Jk6eq1;oJ+tlQRvirRh@MzxD?IBOcj4#Nybo;>_Wk*qq8v1LB!aba>BO;s& zpSn79T9}f9X@yUr`oG#r(6T;bC<792Flvg^WrVn`ZYOWtDuinl7t1Pe`072&I_=8L zn^2RPv5vgn#i~3z3VVk(V`HWK+f;sXHc>37dxHDG!NdN5=B%ECWT3DuBsz_+H(*>Z zvAHrvza~2(TFx%reaW=tIJH-YWBqA=msQCi+$o4LeQX)T@i7pMT{WT)i> z!^VP7QH*D|jm5m+=HcGecIO7tua%c4TVF(;WR=tmySz2x@NH1H!BTR7Jad`VkHzR9 z*xMEjjZQQsmTYVw3g_KG)AuGdsrq3Mq3T$heG=63pl`C|g&?t7i@>!wbv7k^6mqSRv(LBb+h8fuaS|Hq{v`Ln(O(%+&R@5Kh#p<-}{n}AE*ap%lyYt(q(1C zRsZC0Y0Anf#Iyf$l%fccmb)E9r4T}R>TU;tY)m$dSA*UU-f?)}FlhAC(ZUR97Rlk0 z%b?Y<_03(RT6WFUl*vUCKJ>yMnQBc^ofG#XWXL2bhOT#pQa19A6htNUM1d1{hqX_T z96lig`$Ac3As@>6DJ5LNHF_v=Lw`RW_>Q?DMciz~ZNQ~y(&rIe7OgaXOHGR)N>MPW zu7tl(lS3SX%)NBZ?8Q4+7kk5+rj!Bvt{T))RUdN82!P*pgOEj_8)P@=xC)5-XEo^k z8w`T7#s9IEfhMw1SPF%2>Ql@9W-X;i7L|)@a!25592#5?Vr;amJhn*_n~tgg2&!FV zH3+(n<@4KGUjMe1rw*V~<90{dQ$hT2Uic?4;|H)g73SgWszJiz$Fuyb6S-J1?HN+_ zm6y>Nf|xww4R56`dxNPxg}l0n)LT)^XkYc9N9#j}WpYJf=hYAcBpcW{>;Y2BEE279eA~VDGhrj1 zR+#~{p)6sK&$Zdji}$IF0OgK#*1RCgCV+<O$nQ^*aa^L|-4anyM9F~x!5f=jBhDLUq=qT*MG<~_*j*aK@MK%a8(c3QIUJ5$oF zY1KwGyr3)$d|GA@hp)UNX^aykO57w7#B6<=nz)>1n_^}9!>VBg!>sGi^D7lXQklQwHgTF)QPZ^9VnO&ml{b8@qa`nxYPq)Hkt>JTgk* zT)l6`L|;O-VAbbq7b>Hr)#@a0NehMLAGj=Tbn5$|(Ew8}_(`TNX#~}jF z1jp&yD|lZHze?Qezgq6~w*&DU`M=WVmI^mAIL~a#((hUq7x&pkdqSREwHWT=Q&7`I znz*c6dC#HXavFDy!no6!LTowN<^IHN4=ZYD>eeDL4r`mqhw%Dl-S1gWGoc z4-|7y(lbPXX?e4d;tNh0bQU6_cbTrFyj&fOxvq|J;ii3G8_(G`41W$sy&;D(dRh>Y z<}1(vr8V>1kWu*kaw0taIAApWm_VSd@;Wq0C|%%$L*x+u+feNTI@2v*lo1pB?u{q4 z*G_a2Z7GDoP2CKUPR=U&@_0mU-Aq1#h=&5Er1dd9^*Ths+MHqJjfe^$v0 zd0Creq6n$yW}5T!eeudf?1}-K>RZ-iVzZM}FK0H%(mbW_I2@}hj{?JnR9py|>M%~x zHpj}zw)Dg(`kOOOHatw9-(b2+byy!S5NdIn{7!YWL_;)S8#s!l1)Nq2!@Am?=#+o= znFoI$6+|A`C{!1gO~%^1T-3geYzd zX1D*|_1q_9AN;-R;f??+qyDk$5tsCQw>Oq&e7EZnV1pOvOdBQ)`IRm|hSA9_%o8jN_B>(m9@*1F$o=F{v}`5?41LbYo)?92kE62{IqQGh%pE*Kj-Y|pF*qXo*F;jnyWWKPjH z8~`LU&MFXQI3;=(N(jXkQK~)DWP1*f{S}ZO_YgzgAD|=@vWu#N-@E(f&WEb*pbSnY zTK>{0mAJcbBDl9xvP;WrZxvEPePCd#ET;w>yQIokPxfqX6x^-=D&hbgyaDDk`&Xi} z*zqV4Hy5l?B>ECIs>)LA4t0_k)~kgv;^0!W{7g19EY5g9SF=F%r~MMNnuE%6$60R< zU>A&$2dnq0g}Y_{^MPqb&#W~ykeH~zT5U}z%>tc_m5{w5v7N=QNapDQ!1p|(-=P_d zVZ2^}>I$rqV4P#02zm*lv>Rl7$6o%yP#5^F8l@P7YKcuyf2#VdGMG+EN9Ez!TO1wa z1DH?v{c3tuUoNdiN&5e=3TNQy*pUz@ioTpht2vxV$8|Vzhtr=gxQAPOPgQFX9c2n) zdW3uVZel6OZV%;#_7-mjj)AW2?5A$DSB|FUJz=!I1=0ST?U#xBHNeUBZSB^+MkTi- z=cn(rW61>H0ZVqip8TKS#6x75!ga?j2O~Fb$Vt!hrHUpL{JpQLE60^JXmsOpuY0e_ z94`Ywg>OwNezEhYjWt(tYL{h>m%RI8m?{5m059{`db7E0y|?SD`;krGE)2^3pJ+-s zILv&&8jbt$@aM|4&PnPpPdlFfQB^n&$~~YM#rxOG<-W|*MnP@CrEw*ZCp zUo7@tZ7yc0wgooH3UbOfr=pQLS`?t8JFF4n;yuNjXt2bLr;HNSuf3qBk}mhnR=oKYh9?!8B0G0QF04rm7(*Q zGP+yJrQ>z4p^dY#a8FWJ6P7d(wV$bGb6l$QW8D>)i#}X$BbJm{P!y66Q!51@k-Bse zw=2;nnB@)MVDQNF*`V}NuU!y7f7Hlkju{zFg{OJZFskDsYdewvLl;Q`QrkW#-iqAp z`jVkgtMO3sp#{6uUfgk;%af{rVg2h<+323g#KjsW4(Al5dQzN75maXOKq@*@a(<5f z3k$vks*xAu(<$R^iULM_Pi@75Q&u`Hh06FSL@r{}NG>b|&xBQ+Bfqfesl(V}QdHc1 zrc;~Ub{?c@s1Lc~ZzWyn}C z>cmBQU*v(0b{|Tb!lRM99@eLO(#5BNh4zvK(1;S{2a4!X=zq}sZ-07$RN1}%$%$aP z;{QhTF`CZ<0u2AtI@0`~e&${2NCW?mo$l`_z4HY^zu|7DTP}~#8^61F!b66eTKevG zy4?eyq4}NJNznA}(ee0V!_o%w;@LlVax*dY{nz(1?a@}bYOsjQ=U;oz`c-ne?NA=$ z3CP!M@B|R7@{SA;(d9ZIT6Ac1h|Kz3@2QslAdQ)jj)k72=<9GXjV5sE1%?k!uZ*OP z*`ppMf0;$nJi+IC)OGit<=)?>eX5u+KVI}>)?{0ov}f3m5FN_e!C?= zb*;DfoTkGZT`*~E8n9;vuu{LRqp|^+pkw@zpm!#zuS+7xcu4*$K_3o)kWiQJo`J_h zCGu2y7BuIooJnGq$vSw@n($G#K7RM(zDv;8#Gw)>P&BiUg;5TVhNb2A==|1rsK^;l zxJfeIql_0Ts{<&$Db2pKctRTs$OaRm)i7+uN-60}NFwTEUWEj8U#X<2v;n z)gr5zAgv{yVKNe9J)~@QaGR|6g}GfX|IW^~ksoTYqVM>=8q!N7id-H#cun*kMN7D+rnosp;VSyAn;JBEk+QFhryzY+y^9q6@*h{@p+;C8t-r|U* z@!)9`&t_XNg;?8%a8hbwHS)FW2DHux$|q28GZi5?3Z3>)=bZZw-%SR26sAXHH_F$K zQ5Wje6%7S1*dnBrjuVGF*hjLORfaynuqNs`vdxYPb`87wgv!tcyqvV!2NS<2G}-4y zGqr^0v~ni8!=j-{v$lfJV)j?w(Ay+}DB+#b%~y+ueG6ch?g7TArQWFb)kSWb4tD4+_Q=Fm(5BmlbJl} z`2iZ-2h4K$bDaTqHKRkj19bV%dae~wS8|NQnm6UVKE|~&v#R^?l(dyOjl2WV!G4Q?+%P6uaiBpVxBXEk_N!fHaZ-yZ0+LAu_J#y>bs`q|UK z^=Zy>I06Eus19h7Bf?QyWf5@Ab7F(aw4nKaO)iAUj;#6T=c3pUn~16FOuRZ?|5WD5 zLbUo~JHQ!jS+jO3n(UXEbB$CEsA@wB`=%o3#4iWrp)EmEdmJP#9gOeQ^n|)a4JoVr zgdqqihDv1XC;*6UU@FCY-V>tdZ%SHLBh8_K5vD!4LH?+#eWiIkOaW!{S&vAcr5jPi zBXx#nNPp_~RGq~tV3TZH^NHAO4B5*W2IVagQe>3=Rxd9QLNPcX%k4rX>x7Kbk$WBu zQ!3rlnBRMzDO5C^zvt&a{^34PaR~kw_bG3Vg>;`g|KmObh%p#Dso8(KPs^tS_YH6Y z28{#YSrTv@TE)8JyVnBA@%&E_V?}CtitZ_D1HWGjBx6OTS1Eq@mL2(8VEICxGL^{k zkdWQS2B%GxqoHgCl?;>d{pDc~n`g~_C6GGmrfU5b)!ffV!%fZ$b#{1YJ{--pnmwUJ zq3$EiU(^N?w>9veQnOoDr#>pv#A^}wgmj;-GRc(g;~$%78xteQgifZ4vbe{d>Yp61 zYP@A=q@j7azcF$D)*$l@)P1dve>HOK(caksjEe9U)2O+5cwOrEGYG{u0mQI&IeCD@ z&E=UdowoLU>i`UFrZoU60W^Nq2Zi|302eo=8m5E-mFSk>CLM@|qsfS@KO3rdLd8KZ zsqO%w7F16Jqua<6!f{MQqC;?UfM!yRE#`FcyC{L+*Af^`V6<=Zr7v@mwa_cOt487-$A46~IIIoF2qoIbWb;mWZtp%!X_s{u%~^g&5+yZ7Pjp$P^^VU^wNgDTsd~@h1g#G^7s2a z+*lnO>}pM$v$z`R?c#v)>;;87omvh2f(kXA8!dm-OqGM;*QoZP@$c||Xk~fNik&)y zQV!uj+xGiH_XpM^lWMZGG ziU8uFc8$qgDm(YfXxw^B_{wmM(D~00&(}?A{UR;E0?--O>oWS{K|gG1ihRvrdWH|% z-iqWhEahyp{nEan`Ag!1W7NZ&Pe$W?07lOx@b|-a4E~(m*k9$3>X(S+&DW$%a3A*J zJK3+QqNufIZPMvQe47)f>Ub6OX6WIgv2&aYTSV>`@1IGmEwt}HphwVDrdA632RmSG zW;Sg!6BMi<;r>E=VnRG(>-e!%n_nV6II}Sw3pFLjP8Nqq4@D`cBY;)ywYgqOn{Hnj zCWKKLvuCcnc890Y-;bMaLghOww~-Yk+G82jP_3G*LxxLP{>OKtcdvvc2D~cX7);UZ zaToE>CYHHnK3mARmBM1t{TA)QcaQ9wV}q#wWCV&4(b$oEa&-{K35u2m0bUpj7q_K4 z;ODpTsJb4hP<5s7Ec)zr2DB+nNzn)%ZNuhauR>PA zz^!o!Sta0?rUAw$Qlq}uUPkf9ER2Ea)j=_x=}Tf?`^7#h8Dt17bR3g+(yOSsfl?${ zcj^Ju)vWYM-=DD$_Ge?kCWsCXBDo{ZY0p8@qU{fr!LH52rj8+gos8Q%u{xB5IK*<# z1S~zgsg#ZR;<&~b3kAXyo*LL3jOlPU0?1IlkCpJjkM6qOcN%ANsg7!&LK5`aF zSLLc%^UdTod9k`cTGU~ZXDI=-A&Oc!T%B7!X+Y%EeZNRgtzc1$$bNu-yrxO z!b|H9{Zn`sFiav!kk7O(i&bMvrK@_~JXb^t?>o5^KBuAjirG?7WlM&VN2wO3v3sb@ zaAVbK!P5hrLRJ%)RDNK5mlPxM1$_Xq zhR8%HPQARD6x+U=7OiLbPKp|+3+p)mmu~|3um`2*8X5|!1@d7J8ZYF-9)uQt(QXC^( zYs+mudq7p6qPBi5zHLz`dsZ$Wt9rDqsEt|z zzGx>#Dym>X!MvdoDeR}e_a0i2SoD51>L26FHEz5wLqm?OG!tnr5rOq3Wfh*}I8$wx zIHcvRr_=`;9jNqWo3&u+i%qqU_!ivJAU`Te44mYBuA(b!D7(gj7}VJ3IHZ+3*YZ^p zM>n+ghf9qs4ydaVr&Yi;r?WwsegwUfMxtg^it|jJ3~Sq_`-A`* zLvVWiAUd_e%n+D29X5=cP31aop7t~vfxp}wy=eB#Gk4)p*w2Pg9Ht*ov=O>nhv!qu zVXwK1u+S;%dr#?sd@#M&A=|22-V(-}`{MKa@B1J$RYBhO-c)@CJJFpi{*<~t$>@b~ zw`6gK8I&(`dSIO4)y=825>0FTxQ+%#g>l0a>9|RoyOItihHie60tRjc@f*TO#*Wsr zI~92*CWPQ>??M0+cJEWTu4p8JB}mwLu$-B3YNF&%jynOxR~K0ze?L{f@76YySxpHmgdcHON#;EpM|YvHtT}nv+8TTN zCW(6;BT)Y&ZKgMR=E1L@1o|lPBin@TtP|^HuJ3BszlqIB=zklw6yaFKzm*g2F{WjQ z;pWA4>rY9_))cXleVFRzl15kMLRxLs)1ZSV4lDSVW&pL zwbR@dp%MiaRj;)SR5)fT3r_R`6QcA*Q@IgG3Lv7H$eN-_QMjZ)oVxcP12c7fB4R&N z$$Po5CF55j|Bf{UP_uzyy};V!_xiIuMzO6Xvl_~6OH6#r8%nxj(}@!!1p-Bb3AW@r zA#-n-x%2iU9LHqThe_q3-3l4@sa9#9M{wM1xwijvpTMbk*L+cM*?7VxLpMW-Jtf>K>5|JGdD zBtGkwdI!x?P&ra_g>AJkjWU90!y2kqKS+J7tx!q^>o*6IOuy&YBht?FV^9+3(01PF zPUL_2zKo&Ba3JnU7@e*Tzrjf1vnTI42HuUm&ok@iuJGpAUu?pveRV|KaJU+4v(xVV z+ViMY!4rOg*XCuk-j_ojtSP0MG<9 z8kc}CeqDmbdzaMn@0Ztnh$IuSTaFY1K53p5|8ep}7&krEi&u{otdUkodZ5D(AHBmE zPC#>gcX{o&ySzfRG-B8B*(KL-=Em8^Rl>WFMg zaG|DjWpX!Tv!pWebufqf?KfG4ySiMiL}#O1S|m$jfGyOX+wR4|Nr6rliBfMv;tK$n zNbf5?*}tV~HKah8hgN@!R9@~D>Egh5v!Pb{4a|!yxg7h992GVzIC*8@A5@2BuVK~@ zNvT;iG=0253eo~SL!9S@@+waLMKZ9^l7=UuBH)rV@#<35im^YBuB`$Sb{w^6lXfSS zh~E9O%Ax&y9;|Wd2Rv=(n4s9MG0bnp(zB?66>7VN!xAaT>w#bCx@~9{pop%w0uB3@ z-2G>}O@@t$emt3@*>#8h)Vg0f$%reo9;ZV$b5@S+Q`ZGPT+-jD-6uxcu z`_b9a+27L61gj1F@DDFl#fH>zmyz`?Sa-11wRPk`qa1`556*0Jp7?MFyjq}c@U$K` zAAV~ub+&)|+)bK@V!>jT^$GSq3YOH;5rkm`$^1&D@!GaaZ_QP15uR0ED56XaGN2pdej(C8ThFuiRIq%$Xi@HU>dnR z6vW4&{RquJ`m-EqzH^DPG_RIldt&8J$~6r#yI24&r9>1x)YbHLLb^T+AzdH7k@y8Y z#_h6Y=S)TATS;k3^q7z0vlwM2V5)Vip=Vv4F$%2s#3XO=cON>rtB0YAsKMf&Gn4r! z>zjd;QGJsODIK7egI!5ArzNdq%m&?1da3*sRDK9D}&=$GLu;B<<^ zI*3kQLGKh9QR%knZkAS`-kZ zkuH%ANeM+jg!>-!ljrw6cb&V=y7%0*et*P!uh)A&_uh}YQ=J7*_6`Fq-T0Fizz;>b zkmOGK7A)Q38=j+^>8>@8*!NZo#EYBE-xk-U(z+)Fyha@e6`vYr=^rx6uSNmfIUndr#e_sD`O1nn5We&66j;-yGGCpNWJHW*$G=iePqOg=HN2pzG086sbwx z$+VLxDTR!czE6{gWS^kd(0tll^6Fv(2w_22R^gpillswk^ ze1c*umpudX8)m#Xn!hh2*^NV>mbVa)Tn;hBzLr^F8zWM=ouqNjzm4&v|1yYD)WfbgdleK93Ha#`{~L=Xp)h%0x?PG&EZZS#07fUO-N=O(^0nNWaH=5<}V;6 z-%Xxf`16|Hmc@5Aivg=r0#DaxCyaqMMjjEdM2l;aT8~8AfUv1NHcMvG(rE!QODbMH zHLWZ3Rz&7Ek6cJP^OKUOEvzbbTwwKtkv9naXzuAVCj2t(sL2G}KoeJzvb-4c&jk9R zmNWET?uQK~_!-=W26b76KsEm3p>qktE>}%?L+ArLD|I`shB(x0_l?a&*4vdmaTiNTTp%PJ?KkY=9B3V&6(7*LsxqCZ44bw~T%MH$ zDonm!8=+fyTF`c*}yXn&)77f7HP3di{A<}Y5>SY@Qwj(lQ_drju`5&>v-g1|uJUA9X^ z@U90AnL|<>Xm>x<8%WJb?!RNokPhX*M6-?dh^O1iL#lLQlR3+GF=!t!YYpTG0*4V= zw`;5hE(%m#pQCJL9K$Tm6=-yTe!N6L1TVkw%~B6Bn#qx1mH-)E8MQHhQ43SU1|j3%SZ6qy z7#H+xaRJ~}T=XCwl0bSe-y5oRC5r-T(ojgK{4$JrJqbNrtd7kn)CON>J;H<3Wh0F} zOkp^R_W=u8f;J6#TdcI;9VS&AbqFXT^Xvv}qd=+DjRzZFDxIybpBv}%a_Uy|dX$b`6=GSTEUH^7 zZb!ABw2rF-?1AzIA{2M?4)8$M>K{ZQkmtL4+n`1+J9(ZqpAONQR`dyWo>oY-vPEh8 z8BI+fcSD2)h&7;%x<-!a^=EYb*(ryvuL^USQpxpG{@%EHx|v|Z>rW) z5IqEO#paW`-anaN{}3_-JX(9MY@~iam=!4uU3HyXm8z?4zpHcls$0SQ(hCHa;!e_oAh|_mnS2QK52z)^WY{Xiq(6@R7P<0#V3CBOgoc8>-T<7jR)_n5V*BViJ0^qU#aqY{wPq#*xlJ(V1Ch@ zy&0w>)p`8Z;C3LKjX@_=#)4&1Fi$zwnet?R{H{Ml5pp*r{j6k_Dc4l#p2iA=FBnuD zM7{a^toByd8BSB>PiyS_7Rq&e)@Z6p2WQOU`EnY|)*C}rF0s<_TbKHLWjJKps#RhO z?qRW2+}GA%I@ZLO2w^UESv3%dbU6C;*Y+?CrSRN?%#V*T+sE-@f-RNRwp>p5=wyc? zjA#I3_I)$#w*5nS&P;bxVZoqb9!WW+o`WJ>rhBpvOfaNE&r2BJ&a&kNyvPM-k|CPJ zf;(lpoKl(WU1dnB4!jzTd%!}cd^ByW^!(3~SwnhQFt<37qfd=J%&CDCexZ0$lbJDh z&-Je(hlxG4`P?|@g+`M>iPV_p9`E@FjA@RzdcNlKC2qboXWvhDK^AZpDm*Zv8B3m? z151%r%h_GTCO2bRh}0nxt60_C)|H7w?Td$8OM=n%BACQiW^_|MGYT_~;}pfd=g?Ul z)@Dv9ZwO-asZ^1~$zk7ReRi%u2j`13Jn^y2sb^E0S9KAiXf3MdD@jdFx=IKr98t$| z6amYhKth16V>Ei)us{T`3Lb3v{}mRX263|dOK?eW!T-r8Fp&d%g7Ck5g0K64Pr&lW zQ4C5A_yi*V@(I>qq0+y6f>-|g!M}V04~+l0PXNdFUqhmN0>$J>TJbverFQ{eND(w{ zoPgl=mzafn@ah7BYtafUwJZRFOPpTTgc96c=+0}+vMa&00|eI=;eOl0jj%=7bf%$t zlF07Io@QaBFUKW8n#cIkklKw8$n&Ga?N}^1KRb^Wm&$Qh=F4ssIxFWdK`S{tcU$XL zvQT+~eg5ZCc(7dtMiA(Y&$$F`6^Y-yzf>2E6@tjM5?1~Dd5pIQ*j6@c%ziYCH~x2n zmX(wdDoMtUxeViBCo_q{tNX0(J#j!W9&q%N3?2XmeTISX*iS(I_o#W{Sc-JKaCB*E z)jTz9W>$zV5$-gj>W12923+blFx3#=Ie7*Q3#SuUD&^K=C@xC@;QC4wkmRa7Yql~E z1s82DXJVcfZ-hHKVP$wrxt=nqp~0x*;$(n6;4|GTnJ<5XPS8;US?c$% zegA%&`!#6g#G>||)Qy-|um_@XO=D3g=`GsYEj-0@*ixGjHH7#bAh+9^Ay^=272b+f zC5-cj=y1AcNs&!I?^yG*c1uL)Q4LxTxWi?Hg2_=;Z<6Jfl!^p@en;&1=kJVB=G^sAknub)fr2J#++<%mVO4Q;Q5~wDl+#jp9$0{ zrtYj3;*gxYQl+M-f^-v@(=sn=dpTsSY$;kU&#>0FxQBSB4(_!NNDQCOzE+w3GALz3 z#IvzK*_u1-7O=~T(T%i7SCzZbd(ilqdwO+AGKRpXhbV3iIIuWyLe^OOEtlr#&$M~J zqGNIG4CJSJcx6gGdSM-;dcG@It(_;&A0~_%VJ8B=|ZV)d*#=9y4gGz0YRdOYsV)-6h{H4*g9+9Y zTOKU~8?xMpZ_q|sHLYa~g)?0~x-2S7`V$+HaZ;(KWmlVM+}_z+*NoqOr&pn;Cxe)A z7e)`QjhJKBPBDFd1!6+9Mc#AyC}m#Nn>Laqi$|?TEk`Y6q$Y1mlc(o#;?Z(A&Bwa& zl$e;dNU3Az8l&&)d|sxRer$^Cx8E|#^M-i#>mDDfbh{|=xz|XT&yFTH2bv2s@ICP7 z97|bkU-x>|G&sl`lQ4nF;?{|zb4oa3|Ag5tJkfO1&8s{8%i~B+`ujQ`4yT>PP6jp} zE#LX@{CGWc1g{8o>ZW2iIhyrGvdEdNS@o{a<7B{_ea5JGGwg{A@&`Effvh4hwd|5t z=iE!G0vyGFspabmZ1NRZ7*|uvbx3mM=s(PXD_@rP554_u4jBH|E24C2Kpj=`&+-5> zP)Gf}bMhEyqlW%-=j2wXViRiTq(U}S;n&W|!_bDImLAmD@_W?G$rftn1Q=TeW=+dRAlAd#MaF?5{mR@D0>~p?Gi0XJwh8*4%Ujds9tJY;;alQFrEh#Q$bY?j^4CdkEj0XrOvnd z2l(4ohj!v?qEQV~t>*ADbO%5m4!PF-W9LNRx^Wrq5o9b(^__~0XyS~fY5=|YHb{XbP-b$%qjKTO|`}hhp0)YQtNH&I+v7> zCQvgWlWm5^3#TGoEjM82#24>|vMCk`1)EVHk+&Yth$l#^eI%!rne{S~+TQFSMZWy9 z(_H4^$TiJX zDsVhAVkI1r;QrvLv#v5amu`TR&QswI&l{iiz)*tG=EeEei?gNW_js-)!hJ&<%^Y$> zpD|>Jw3?$sNyicuks7%2#{IP9y^8Q{9CQ-6nZ z7`foSVg20?eI|4AJKmSWN8dzCap!^wQ*qzf@w>mBJ06RlxyZ*I6a+&k9?5hq;^2?0 zBIUqj8vA`A?9sQ4v9Af-BGkgDj1-I#Vi6-Z0plP(g3-D36_(tNWhts56+t++v$+im zI%u{Ajd)#*cAc~ms#?qRg?8|@3`HpDDx`x0bBs_WehP|_&{-H1Kanb)Id%=H+8In1 zFW<#p6CHvw2R<)F-f~k5dIDCW>I#jun=|3i70*=}4UHG98KE}yS$Vq5+MO_5&F=P^ zp}$Z5tpxr-_#JQ_Bz#qNnR=Af&om55sc=WCqxz4kl@g+Z2K!gls!u_6iC}12icPb( z?}>3N?jOz6D=+m9AeaBhvO52-XIVA=JInh2qb%#o(69Y|-FVXk{;y>`BoVJkG#6h; zpx07f>JrnOz=K*0|Cr2sJQ~du`h_rdErD57aMlNsHbtGR@069Fa>EU27Oy!ZpXnvk zoRG^aeleQI^I<~6ADx_{$xxe=6eADAt(yEvERj6*tciKwW=3dC4qFe>GzAZlx9%&# z5b=WM{bs=ymLVH%+~*z(C-AXmf;JdNX_-~cRAZ<`+osK$eSOcE5~`}-_&60>k%XQ{ zpxdoi-NSw(Bgs|>F%KQ0vq>`VL$Kd6FQw0U*6@V;C3{9$K^Ln%0UeC8+$*YXD$9G9 z=Hs&#$VR)~A->KK3owC?9>2s#!Cn2R0}s)rDN#!PHo3%-txXduo{^g8WK(=uO=fXD z9`>VL(LOqW{d85orFy$Rmig9JTaN9BP?7GbkmyccCZ;M?eRRwW&(QwUFe^`lr6~J{ z3I9oZ*B6n^(D+5G0g!xC^p9$co(H=LAe3b~Vf27E?=`#d=hD)*K{wY1uCFwhH6TS& z-6A3yec4{c3r5U$Me0uRBq^4IWt_9?T=%PqVfz4qD|c9%W)oSraLc{IlL0ai!(!NS?Q`W{#O(PHa)N$6Bn zh6V@pcBS&_8Mw#hc~g*1B$Z*W4xKF&!|xJlE{}+;wnjIpB#K6sU%&y4 zL~8;wfKj8%c~G`$FxS4})#&mi?mw19CI5If{`N)pWl8_TZ~Cw7s?lG+=~vm+fM37q z%)hd$r|thd=Lf?)exLJ|S!GHl0Ma!+nLo+KqYMR9bL#lBI`)IQk}gHp@{bMbO?>-X zWY1<=JdTL&rczWGAZ#!3gE<-$@+xt?w}9pp=R!LILpmcuWAA#A+YOs}&ab!E8UP}a zn>Dqw@lcVPH(j})!1feGk-W6Q5OhpziqCxPi{k0$BRl^q_ za0wXW;20<@((`k?M#@M3tWWuaB}Ik<$wj+#{*FZok|znlyi*h%jFDXw9mdCOnxo_- zc_{BD%``p#5Dn4;e@=wS3-KpD`Hni`!+sy}@6li_!q1yFKz?%Q8fgK-2wvcbuZN2f z!No^X5Ja3tP4BwYgqahH5#wQk&%R~KoMLF#14?FDS0Kr7$!T1Ff-C4qC%<_IINi%& zWtplfD{ejlQmp%?aZ-B7xV-OIf9U0Ms}BuI?i7`vqasvHeV4t~;g#?4SumFCSXpu1 zuoVl_>Vju1BFad&Vyhv#)AW)~W{06NvshT0aWBy|*Z_w#YxAM1wzX}YGd^lvES`DmG#tf76fxl zDO-Sq`h#A+laU0+73Po19e95UM&gsd=EVpUzr3OL3PznS&@1oc1@}{to74BdL8?MODQ^wF-ROHyZu{YyobILyLN1T35j#AGa)&zJLYce&GLOiNBdd2X_Ncr?%-V$ zo`Nt@r7uU->=ohbFejsG28UO7(^^)K2CU0_UDiFpL&!P`2-58m%1bNCH(QP~qkK^d{6~q+GK^Od zs=i0aX|i0&&&8@CijPyz4RK!J{*9Ta_%Hqak3_l%Tr5JSh*$&y^>W8eLCzIlo z{F`H{cZ9#)Y!>`HQdE}`^&mBCt5QsFI|JNOKQZ&h>Z2Z+mFwQ8o}b4=7i1zwW4iG> zC&uE>4!7eHC0=a#c$>HAf1?9z()rI$Umz{H55e=dB`0C158_hau9GM0xZfcU=FGV`U{3fJ&0Hll^IvCOrad(r?!T zzn+q{1%NRDn-rh>1m-XCr%ftFt!k=JV7GCicXdTH+b%LiLp~GgcxV z&myN1|8gAo&94fzC=(d9E=_k>LbBre(3P-cG-upljjCqfimico$V26K?=v#0#+xHI zAEuye(#$i{HNYn2APYcC=-b37J6`>}P1+y?oRwZfg;X=x_xd>HzdP;kRHN7Z;KsdN zJ}IodC&A98Hi2!%T?dXp*`#G#wnb-n@Dji#bujch{AH7p7+2v1z^Y)Jm+aBVx7guT z1H2#mcKR)Yrw<3cu;Ki;BT@pp(K_gYB_&7n0tN4B2#QpT4p9--TkdIfJ-E!t8Uyp20}|teQ!X{y-?0gQo9j+Oef*xSf#yvTgL8^!;aODGKc-8TI~O~EJ6T4K1wQ99Y=4$n}oAJLajV#^Wk zxlw0?#VV6n+@63hD$d;u7Ah7|T_w6zgTeHpTdW&HKdL5za*}Jgl1GUrdiY(&yv^3k z$Mf26mhXFN`=~C;p0(J`9$Q9}e5qhclJ32-N$;K1(-qE+9Vj{9U0;3kE=_yuK8e?X zJpD888MNyiLL|dw-lhE+^HezniA()He#^-)cwp)r-hBt{vxP6Cg0C~9ZJd%)rel4k z?tu_W@PLt5fKBO3x9K}r%t~$q-fgwx7GlSnM9+=! z@dMfzGeOWw9nC!G(z!E)F>*67U`2}(<7LxLXeq)M+(Dg&uF!y6W`D#~6$ z)agRtGx3&v9F|jF86d~;f>TH1{kK=UA@z?V^v)c_NaU>(+Qc7n zPrU4Jnk#rwjcM)~Xr*LKQOnisGvE!+x{lfkz2{D{<2BQ)Yv4~f5oX7zro0Oe-r7h zOj7lKsVy(~KOUvtVFFF9-9Od#S9tZ$qZCSQ)0Y3Kw)qgB-)g%BV}<^H?IK7l9{mTk zC5Y$1fcmHXk81m&?g!3``Sic3t&Q2v3CC)0mNY?mnJ4%9Xi=uq^P5jz*-YgrTCG=_|kf_vy|&Usn8l3H)e$Jgt_wBN;OFfxj znccjMEe9VxqoqL6BKQ_*XR^#T+8S$o%!L3d3IH#DsHP6=1W3{LWERFts9HZPtodsv zfS|Mr*a@&J4=oSlDDPYcb^?0QTTnXz1hH*BTcNDAGIwu~H4gDDqILpc?DZ*=EU+Tk z2itJ?NnLk2#u|bQ6w-wMn*B9;Jm+T^{k-=^AKP2@s<$RimWNp_*r21DYl7Rk@i0fx z5^r43I|rRV+48KsX-Nh_?#69y1RyV9Ldp9Jyw!GCyf)hJM_U=RXubZGcNjT z_Cp8o8T4{IkEDO3+UqA`ieW0L3?r7yU#yc-+MKsHX#^zew4yslhJe15?19T+N|Ls} z>*Mhs5jQENO1r zg)hEW(cHQ_`9o)z9_WBfN8MR;@->lAtrd9-$r8cp4`yzI-hRi}T5dh7ULKP|mHEK2 zJ9|Ebj|SM(A6lW;W-OX+a2^#uZ0_Pu2jvglO_Ux+OdfFm+!+$MZvD`Ii!X$z760B- zlixc5MVd~~*yyXBfMOZhEmCI2UpoP|##roz5XfIaRh>U%_V+F7KM?I?fYraOkUwrw zg^vyXaf?F!9Z&KO*@OamS4i~^p@7~1)UKhwr5gqG?i!g~9UBf^+uRzR2G91*EdfC9 z_Lc3EfDQ2J&(qy6PFEQ7m zwb_nXR!Pr59QC|@1mh!aF*g3SzEH6KRvBgOdToZp&rdFb4uvCjK&Qbv0XH6(B=;Zz+CxH9B9RG{==|nJ9(Hb78%?YjU&;Vfz zU^fl-hwf*+LptB49bd-8mtvl%OXH0=>(Lfj zrn4stA)+N~D}U^|)WbJNUnO@JVT`k`dkD+{yz4Ogx93l8@^}JlJBLoR+_c*m6{w8r z{^5jet4w#B@39)dwo7SR);GKrd~)5;zZVDLnN}Kx6DX*QY7?Yq?fWec zLkmF)H{qORoAu=gE@Go!sw*r&W*Vo=dwdO z666C6T%$QKBG|Qea$RSbmGh6XgE!G9ZM8RQM-Ym!hLLH&Pym}M$9&SDegX}2BudO8 z1KcyqQtrntx@kv92hpr-yZHpBk6d>x!>AK=NW*d6^=1lNa8k@n)8lrtYY&8g5gmHk zN>v`Y85X&h??@VO?0lAIEmj@(z(Md@n1bvYO&G_Y>r~n#xY!`o~^95o+KQxDrL)$6Mh?T4o2>u8)sggvI7%$0DgFdOToIgU}=4U1_Hl1_Gf_12wb z*V(M$Q9DyI%xcW{sh@pN!&UH!UxYJs!<86a^fQF2ykRlZp8EEjZlAo#c*-($jTnP- zkOyxa(b*wJjc?uYfFk-r3&?3ioxTh#$lZRR z{CI`|Kz#DTBu#^{rxiOpR_j9teH3|JFeGhU)M|=7NJMc4!q7f4cRYU<{cz()7Csw! zM_FJ=;Fide%@YywGR(CgUd|A(n7nlH^e~IaK(?S;QU~2xRnQZ>9Fk&58HS4e5J9zN z(itO>G!eBR)i@+s;dBJE{z$-6hyK-7t}Oe>h`*?tcSPf`czAmSzY^_PG3 z?lc7i@rpbDTM+-ZknNuSKP21HTR-_X*)GrhUu3&$Wl7bhy^)YHPvzdju}&SV2Ymve zHTiY%LOO4DWSt5=cndm9ykjF<9eQ}%j~$Eh6)S&^3IiQe9IzE_^dR>+qC{|U{K?&` z*uoYc)wG|z-a38f5eg1W! z@UKC?u&b?T2h>(H3u!q`%!ZBumPUGb4`(F^PTd0x`tdB_xOxAv6^)=~)d7FeZ?4}w zJHDUP{?}IYc3GqMf_2lY&yr~dg(9~uB;7j^_y!*`Qha>}Aut0LvKyMyEd-1p0M&%~ zz2BktU=)~7p$fUlJ4F3x5jCFz;xXBsRC4{Xc{QIhOwDl^L$w^*;1ERp9Fg}u**8Dk zLl0T(pLi=mczJ`$j2nrGyx#^cO7njMnN|v-6aWO#5f3GZzP*Ck2x7|~f{@>n`Y1t+ zwOoN11ScDN-kRMoj%tYOMSCHDpTm^+?0HQ_6!Csf=8G4g)9~mvPP*TyXJ9Iwyq{afU3|=mH?fG09#FB_ask;TP{fTS|dc zv93KXNM^+wP~xZw{|c~3Ur}|;dVZ?JhC}nMR5sIQxZA?r8(hX|YDyVJX?!^V*-oE8 zs{X(gpQ|yGNs8r}kLYqCPyM>~radv8VPd6!!o*aLFa0*Wyx%iA@vY|Gqw@6R!I^xM z?Sz)h4hZkuT0L=o@A741{xWWLC!`3UD=O8ihZ}=oQ=P;4EoK#KoW}9mjW=&)@c8qH z0B)3R_~`xp{8(C9?lQ{KGk!Ob68RD@5h7Z+C0%V;QYnvh!J5Zxs7y?6M`uf#ZASz! zniA>Y`y^KZs>EN>tFi$a#1i)AO}1a}4y~tkpVfxC5Ey^$vXSEY4xKHwE?CI&;*|HR zHMU=yQ_(rnOF21Ip&a+(+W<3)BV?UhnWr z+4+_>c14_ezpxM0xwL&X`>2&VRhGB^mcWowzv+SS>2x@>GN%1j6rT3tdYG=)*U6NY z@8;!VHifQ^Dwph+9h{M<=%eo@6CNtPoc+Vhf( z;(%RlT#+>1GSbsy82M0Fkt~<*K6`K=+8nG8r}pzpF46pOeV1VJRC#H>l+K9zk|s3C z)v~vZM^KeG*4x>8WjIw`G+XmfpeE6aK6j0DtbKH!?(}@&Vw_Lo7&% zq!bZ<5f8Z&iV=Ui4`9SA1C00q$`r$Pep)acb9s)y6qRq4htaJ0V}B%y3HKP zE%^2T{e;+Wlj~AzIDtL4h|urpftOo{Xn7HT*k_Bo%$v~4wwAkWYw`YggH{EldEB<#J~^ZS#7@p#bEcHv=@-PVhPOd<|7L&N z6~rz&l0Q!w-N(5i4uIHAb6Zdg^njuOh~1~4;jknQq!T zt?Yg~Rak|P$e+HRLc6ZzYBAATuV+Ee1K0QY7EHVGLW0^?&RtGv)?FiY&g(n9Fm3MT z(s1y3<}o;0>F_z)Gs4&VK3p}X)wXD1^<$6B0@ysk=gfIA9FHch}vzf`Rv=i(aS9{a?}RAk2goHMr(UH?wBe|Dx9=Te;O2B$)#A zx^xu1E++aWwQ_8`B_7z#MWAgO+Vne_OA-uY z@z-};N4}w_<2?VlZD!0;fybC>raoDbfzAg;yfgE>SiHlGc?kx2bC#d#|&D&^W+Hb5Dl zE88%5viLe$C~5v=S@3c`XD)r!j8h81Tt|G&VVC~y*01;eoFKtKxX99hvw=`J-bp&H z3XY~Yu>OuK#cn-`oFK>Ly~})&=sPiNR*||ryjjH+Y$-aST)umTwAzjzZ{{DoBdF3e zcw-iFXEv6PIO2nNa0qu2mp;$pc6L|Pt7EPdp^D3%BL!cB-s7}RL0(_3!@L?h^3>4w z_dJE6wYv;XLepn-LU%j7j5WIkzT=I6i|=FZ%txP7P#j@K$%Q9LqA%2fXgFoz-rs!Zu|IPJ?iV`Yj%#)-K|2ad;!mhLDC+lvm?N^mE0WUEGpd0i zWZ^{ajZt(L`yrC&eI!Va7~=VYV7WO((()P^X8m`eYA*C3Gp+j^35>o^{f#M*d|kyZ zBjF#~mZ|a^?^9h6Mn1q?>Gf%pO^Z`wvk1&>Avu&0opfY!7gwbFCeL`suABmuRiaFm zm%xXTMW7IN3cU&<>LmAzPzXB(8B#QiKe%;Q&qm*W*^Ju%6Kk^}5h;fv)?Eht4Ou7D%lJPc>rlFgLe^On{E4jV?PbQXTt+UZm`6SR zjjWTEMda}+64f&0fL&0f_)rn1U>Cf7dOj6Vl4-qXdYho6GAmh@tRJl+CFzJ^R+e-~ zwCJsH*fEv0X+^!40jS8@CGR$py%FZ_Du|yL7kday5b+hHmL&cW|}@5*Lbh6o548e8f7_l z)Uw4!AM8Q^Xq+cRtKC4muCO5odFPASk;Kh{%S?!>?s}t{M$1-Yk)m$F`~3qej`|`1 zS(klM7WV|9KzFVL0sy@EM%_O-loLcPwqS)GgUVJ0;DBao(X%xlsQ;Cn&6J+d!#l zo(f$~cxKGtU#Q4!c}w%I>+6W)xpt4H^lm?0XUZRRrrux7>6-8X zBJX}%4lOnQEQjgj1VlgH`@XmH=yp^YEGexdfbxxT$Z;=ZWj*G`wNHA;wlhR**$wpJ zYt~+a{IHmH-P4JcioZe2xxHUUrM^DA{Jz@#BWGNQUBCQf@oB1dGaCjKX!?BsT>Mpd zTVzr-lK1>*1A9AjZa*Y+ptnpUZ2Bhh_4gE+$IqUhd6LJJVM(gS1VX-<$8jfJ*M5R-1n%JmvTMh?&5o?7BTw z+3!L~7!=dwt8==-sraqusA77Ez?jmAq<7U<+xR8A#iWX4F_<=0znbsDcj19-s>}h` zh!B6Sld|i13CMIXhy%@cMe;x?dJUlYo}wWmm9FlKZgw@;q>#=BM~&o_+O72EZ^ffc z7a5NL>!b~vV@>e;9fZmrcAr|rkB;>QrpvVJgV2bhl%H-dr6aFL*$y;0k95axs1Q9! z*;xC%PU?bMCk+sZ6#lmLF+!(*2;W=SYBt$#nQln4;Y)Gri$~Z*k8U4qm_>4IB>RXO ztwYnL7c!13zZFfqy>WRF*3`6{gX&*G1X`u=q(8ARg5X8oCz8axc{~Cg=s{PdcfzH@ zTX0#0DRgPZGRW`JJEqY1B8)^)UQbFZ=x_B)bZH1_9K9p~x62ZYg*(nT0zaOW)Q#SX zW!!%oj~wm~Ufh6z(C|+{ep0Ahkrb+aDN8+UqJDu@bjzFQv*xNQKA#~2F3B4hNf7Vr zo}5HzjFq{3t1s0ujA1rODvY;yGYdxWoSHepg;Zc8mF4*zlBnD1Qw!*Lx}J|g@}&8U zagv0go*=NzL@q_QLQXtXeKa=Phzc_OUn4G zIMgVR)xuthkzLANcC&(=qr7#NJ-X#4xOBU9HHDxo(*@s~!IS7)beV(PZ5^_Pe!eQy z%^PH07hTT+D^!%+hWmZZ4=Kl3D)FE%zg+IEfH8iw(RfWa^uxN>p#*>D4LX(s{lK?3 z)bQ3Wp|8E|spR?ls!7jF^rduE#2ud#JWbKZk>iIu`cQh)#QEX*a+J6iWTZJ)GVnmw zlM#sB#ZZ&l-os>~-d@#Nw!phWg9c+s!_#hw1dl!tv|ldb4a*bSe(jdk_5%4S@w}dg zPZEg;j%i^t<>Or5ee+G5&gxUqn>OE^{v4=fUtFq9a&>-4(uFLpF2QN4~T6ygTw_ ziv+_{TQ4*ujD2}UBwJ?vD01GS-+n+pG-mt~*Q)N4P3HN*qnn5!t#=h%tIoa=$#16P z6}}KEK^!BJKT`1ps0>-730THRxlNY_$9*;+P|w2IRnORA4Hs)%B}MDvkKW%OB1W)@6^O{(EUVOc>PNO?J+h#5t8o7W1VfLbSQj)St2BPq-F zN3RB(fJxGv-wC6uH)-_W-=r!5fdQ&dz{s%hh{&iH(J`?v=!M ze-Q7))UvY0eiQGQRVst30pk4MiFXW0NeGH~huX*=*Fy?UqfXxog2<+pKmdEUwY{^8 z!rm<%eH{kqpx@4ZEUkdovaz$Bfz!97`Opd5D>t5nju7IXXkd~3tgi5##omCED*Emh zKNz?0Kj%T;zhp&PVKxmj^d~O&MCK*2>h-0vYIcloI2As$h7RJDA!}J>)9=0erkoYi-b6q@m7`?NJ3(ee?2Rj$$g&>+0^GtQw{OP5?^-L_>FVIsnIqEmRm ztMK;z{4-2N{zbo6Gn5Y;H*PjeqvJ(eD1#;lo%P(?WPobstfO3nN1ua;7ND@80lg1s zx%$3Dqqq-%KoNE&?e9Twb&qVidBoxR`Uf_nVrB2waWP*2o0)&is--mo#Bo@iT=p?mV_x&T@dg=Mbr zG45cg-|W#7b3g1p%ktX26ULn3SF_Y*2<(0iT#ZrJ{M%270+z!)m=M4m1YLb7(%qGW z3nMppw!ApwtuPh>`)J~xEE)>GBmGP1K83B4rY17xC`ktJa3;waE z{S;$6`shhb1xOs$C%gHc_pz-_7g8*WFEJK8hqb!wjAb(eiP;r5EJ5A)g=q};RBOu5 zmqb~!WDnW-a2dynzr=Lz^|Q8IS8R@dfNcO)24!XRnwyT^6$hs%CT_t>0tgA&jmckn z(^#Bj9J5qCz43z&w{(r>Xo|P=2Hf@xzmz|&zUxk=K(EyOfp#i_2T4UV;_4X6YcC{tndY)? zXzqXZ&XiL&UHf$ZWX#AZ)3+nw_T$(o~~Z%J&jjo0&yNOw>)2qic#t04iwM!$2jnCV66>=P{v1&-#JW zH!(=NILu;4k){{eXnNln{L~YudZ#(;@y;Ycv|a=TRQVDvC639`K1dM zCqNcyc0af&q+3*NA`!Yaz$9e>ypfHl?lP|y)tEIp(x)qnD~y>cCZ1|7&#@7j_9P1i zP`vKFo;H*t?u&kt?G>A3j(iJk4yy%-iLrWEYfHI{Pyc>)zhMVPa z5YW*E23KXBw}G%a!DRQ`vpeU>-Lrx(8>utVP*GT)z7FJ`+m4? zAKIe~1fJ9wD&H>j0M6gRnyZ~Z@&tl=+EmYAE0iI}V7Kq@uqYsh7@oPb9N}eE=Xo!m zq!-k#YYAZJ9dILDsh%h>-HyOwHV!7vJLwM_`Guj+VkWd7(qa^_e~(>&|R!zW%7QBi&1Aqrnkpxa`CA$zno+l+jBzvW|C_F-$k z2u2s#;4eDHlk)YNPhx-0$ISMb9}O4;4h6CiB~nGM=hb+s=A2*E7~^$*w|Q2{ zr7cttO>*UK*cz*<2{7289d(@a+plACe~IfGyhSx(hqgqq{u;+4+rVyqd0q)y^!Gt= zh5#MGwX#s(+R0XEtBboXAfkq7f^x~XuD)_2=gf+EtnARAjqStfI0Af$_2j~)`heaE zr#v?5Iep&!$xCd1;f?-E(%81^)I-=ClZ!f78@w8;+yymSW%@0gt6;0v(=*^(4|%^5 zFNd{#5QLE31jTxS0%c!>hJ#=&&a7nJ9b5NE@;oYo8`Te zQ^ZnjRV_?C{;&_n@BzTv6XAmM1`@w}pu$NbHoObg(<>k7S_*5;l26Ef|7eYhTX6my zlD!0LH&WueHY=(L#{aMp4J0oV@Wwo6B@-lSy*S_l_jvO=%E5W6%DpG z%!gZprT{Ea<)m$;5d#8b=<*q?7ZJpP((mAp9TUb=L@4sa;`a*%aEY>uB~50{s9; znh6~<*5QLJ(z_tdX0qTXhqFh}sV>8H2#goi+9Rr6km36bA7_`mM{-v>OsBo@G09Wu zeKgzsm9`95g0obE`-v-o=LQM@tgz62kVOnqQX*S+{);T)>xPZ>m3kOG@OnbygFxS| z27{aXKR%)&sE<-5OelV+W0)T3|2@k$6bytRVgG;4^4_lFXqbi)P6LCb|1--^G?h+e z{x|3Dqs5Nj{dD6iR?0X_Es=7OR9f+WNF$8KlP&*A3lYN%Bu^lOeWW!%TI^b@SL^?a zbN8RZd)uWdwEDiR(%19nPF7kEEmRWq z@6+`j_(y1Q3l>NI@YL_Q@9*xIy10coL2!8Ezk!}cBk}~2)Hd5;K$*2POxc)2>`HRwx6QJOFjHWw!mUiO`tvHvZcx9i{|3G#QVFxrz7 zt~kYdl8Pqj^XZ94TBy%SdC9MFhV0U^s*OSu5_5*Ks?m3%oyw*aBI4@0gwJPn2#b?v z^?o~l85@QtkL;a4{w4cS32D0>l39gaaD{&%SKBv!FqN2{XE|fd+oh`-`n9(#Y*=c3 zmaT8Jd3}^=pwa|SIK+~Ln!uK)-l=Q*g8qmpWUKS=2Q+prvy82Q(Uk7 zU6=H9nb&yhrC8Wb!Qap?cKa&&F+#S6az)->Wq@ABb7Z=%JD?OD!Ev7{<8D|GVm+cb zKI60}JO}0ZFOI~~n=3d8>Rr&YO~T-VO0)`b)Tl~Q2bvsHGz5G*9$pjeC8JpcPj|c-xOYOzY zj5L*z+3RM06B9~84GYB(7BD=cpQU8AP$wY^DN!fa+$b1jwjHEbP`7}q*&$)$A2Va! z&+v+~V0A^Frd&*6OG+!@PL`M`*K6{mpfi~ zg|ob@=(praS9RVS6?Wj_-`mDj0WqhAuoG)yr&UdO^YSPe%>lk&AeWKl%f)_=R zccwxym9)^blFxT5Ib)7ZC-$m7~))qctg1=E!ntffG6r``Lo{@q)d4wK*;|^$=UQ;HJdmV=Fr27xd zgvr}(%egM_+r(Xhn+8JM~DxiWF5Q8|9MP*|?Riy&v`%)l-> zxJq9wctxvuSnN{Uu!w&jz;(UhF%I!5@-g-&-dc4?vN!JzcD1GsO=WJj3Sxd~6N31hzKCLrFv}QjN^0-o*qGmFjLCN_!4?Ed-{cA8x3xZZh{ zijT0*Lpcs!enWZgEH`56saGVh?>a@WCkprKD4tuC;=~vQG*^QY^pEW>v)xAb@il2K zY)if9h&f)x6myHo>0U`+JI%Mo!aK}?|-^jX-?;N z_!2Pi61l^Hh8{tikLpccc8PcPx5a@(5rTE@!H5*r3DmIA*S>SqMuFBLrl}!ex&bS? z%)Dg*G*BYU1!l+lo`G#_)Y}+_H)sdI&of>^ht1ZQ=5~3sqQ2qQujOIZ)BHpswLUouwmRwIIyqnEK`u#Uh9g9MG@a)W(Dp8fc3A$ph!_7!%eBSE;& zGKDQlNbk6w_&edIQFNX7k@_H6&H_h9HH`X*5FA=bW^sWGL@V-!pypyZxMBaK4yh$c z0slLToVDm*(xRKoigorpcMD(uJ+&CB9rE56`5O`P;berLCm{fpxEUI?$t+U#c-ERo=82LWB39*24i7dABbrb=_E!~g zL+@UZ6qRZy(NP#bahq3CjmP70kiYzX2JS?q`0+&cj{EZCDhZCH>6;s}k3{K>cs-VD zE_(x+eInhW(qH&}HRL5S5VR)vlLUO!z&-|x74c&75sm_BhUK2pe;Dv8)2I$XhXmqe z$mvzB8Q%Lq!>^fi0*PVBMqP6D&(EI!e&`UxXL+S-m(nGrJ{f&R&d}wsb1scSP>)w2 zP&lT~wA0Ppiekh`PP@}fSJM={T}v*f0b0=Qx8)t$cbJhDo=YUoquEw?1D~k^N~WbL!&Y#7$lAf6Fr(^!Y0DIqm%JCl2-(1*PTBFR*#>`#AI4N3Um~mppkYMS}EYVU6URRBAPh(JV3Y~{#O0z^_6S(_pAfeoTi z)U7#Mig9=|me$HL*GgsnDh}C{J256pA(wjkq@jbpxgUAbC1s)h&3h~l`|`e)hcFNd z8s|U!8EVTf zp#*SK5^O-ziRg1|?cvsJUzv)IxF_*qgnS;6j)=Ujz#&h!g$kgk4 z!0ps*VShAZ#Pt0Qp4|;Pr1xn2ReOS8)7$01lwNb*=7>z6vk_BQs^t0RXa)}W;a9V zuTP{cG3c?4gw<5oFGRCNUn!V?Ef^9la;V_q&K42-Y!yXvS>o2W!WJz*d`-XB(cNYPLo)sK z)+_T?vojo1p|)Rxt=8RK?qAzwZ9fZJ`tW(X=<-`8F+I*0 zykgr|3)@rW$z0FcRWUm-Kx~h<#0l&6bsQa#Gm;3@0=cF3ct0J5fe!Qmc7!SXf)}DR z!%p(BHo3<3ndFWfA?>`Wj~H0tze#OOAN;1AuIz4LseRX^YiDkBN9Q^)|BSss(Q^Rx zQ%!ZZ&{Q{5Y*#5yRmDL)G=bXuit&q0WVJpJfuKtvhNdey5^ul}Z@R4~7eZ zf7S1^&S}TCuS@kHIbaDM&oFiW9$NezcE_QS4wgu%pCp%UcJMoTRKNe8P=ouxluyG{ zP9MivPd9ZQ;zNX9A-6O^F3ZnI-zcC=gqS95?`#U9aFnQE6g6sP*l9FK!@I=Ci(3I8 zbzmW-V=277Ek?)2?`Ih` z6DbulKAwDTP7D^M3(nd89H!i*BFX@YAW@2PNDvzZRPMu+_v9Q%3_cZ)7Y<7uELpX_ zG_X00@tyVf`o<(wC9_1xeVTf`q_7UFNX%{I!K=!RGgG(U zKdL?BV<4RIb!u`tL|tnT)H>XlTe(HTQy^u1SUqJwHC47dC3O%**qIz$GbA{nDHk1Y zgR43{tTJIgqbr~d^`^K1k%kjdWSgJCmnr&9JX;DdNorLdu$*0K6>4&rpFvd7ex5~8 zAG7!1pX>VIGN!{^p&bPE^XxyBQHV zB}O&^EK%ZRBV9^rWfMD`Z%O@uLA?amvQXe5B2^n~PBRNnu}C#T6qBwPC|$}}JC})! zXQCA6!r*XBlQNN`4{y9|pQpyQx6*u%vRI_14=;1+^#d^A-$ixd zc!Dq) z+pEmtWI~3}yjH|Zjei9kDl8jKJT!SPm|M9w$uH;n0@j@DOc6;jM~r{_EEq;al$d4b zSqaYASH-I+vmHh4sv-y>PewH0SUHbvn!qo>EP%!E_J?V$R+MMju`M-~Eu$*fqc$v8 zT7~<%go2~Qwnmlo`u6BVwI7!iBxnx~$1PQK{NgWm;TH`P4;3S_v%p@Jr_7)lgD}Lu zqu$oLWxbh`&FB~nNz5H`Qh_!;y#8VDPBPf=;;eh4KJ77K5nB0Hmc9wpL@XlDlB35` zC$->{aMHto%i};9+l}>Ihgr#_3x8}Br+tOm8zI(R!Mdpo^xsv1kH4J2`@!~98sD~# z)_Knsu#(?U9qQk<3ik%KuRjCHh6lS6W^O$rS4y%cmKjC zHd;`?DAyM5xe7~_lZKa%R zS=PUW+r6P-yPo4xhr!i>PS^iwKl2ZVrlqe1KA1Wg-D+B}O)J8ktdFM*QqA)gRTsHYv9I_hd z;=?${Nn4R;H)bnfQEz`_yO=LQWRe*V*4&wN5x6X)P$$ifHFEhpvfq9_I;vLzQhaMF zxr$;6)Pz=qLntk0I_wtmMd()!w`$<>U;=V4tA{cX84QLiIPPrb3#Aijjep(S{ot@E zYC$Y!;U{39COr3XGI`$^MDpY0hu)*zg9PJJ;fM|u#3J(gwZBF9a9q?Ov7M2PueU32 zs}vW{EInFZM%9{**qyryb>26B&swQ2^1!3<<|7FVwKK7&n7x{2+Z~jd)Rs71bX z+u#b-rK~nwv@(AZnjyboco7 z=Tl!Y3_M92^gS&L)LUmOs=f!yiiD9zAjAx5l@lB^KaSW7At)_)szoNjfLv(&xJ(g6 zp5F(S3KFTCQb2S%xS-BuM2aaO;@3%yym`zBDb8(#%?1lLgkdlpXR}U%+K2?cj*H&B zUyh~1c;8&~NhAvdb&hO2n2G0*R}C~P&=rDO0IfI@$xcW_((TI{xR1I4|mZoYc65z#Qx z1BIf6p2(yTGwhCtE*H-@A=}H z=_ShCL4?yMj+_)1+cJhK>@#64dt`CKbo{@0#pggvna5I;0?wQ`HY%raGe6CqLuC|$ z5$?mu$OIRMFffB0<}tD4vyuN zeHT+8IHgSR=JNV~HL}ppbva5aiH!|3b7Qnh1r8V%oPKE*$b2aW(R{8CG|(zR`BEWo z#h9D$ORJ(S8H=|e1h2?f+vFq|x@ryocf((8UX5K0KnIN8%-=G0_I?Bpxe?r9FP)BT zXKa9;gwX|2Aq)F9hJ(kM*wx?F?;IdxOLzx!Nmw{y_5xHH+iKwJXT5O*rFT?gGjU)R zP=C4%f^2XQiWD~wE0bk`WisPn=OK-(DlSoL#_nh@W&t5*heEEc2*Y;@j$w~mY3R}gMPo^_!=qbNvttVLbtUsiU^{5UDN|=Q z%J$bfwfmVM|5?G7=m^EYnt~z~9zc>5cQy(qhxufyU8}4n?IxCta+_^|^sCl6B#}4z zfwK@(x?o({j6ITN?Ga&!huv<_1r}hVH$;5s5-IX(4vf?rrn+QDk5Pkt`$dhcY8&p| zJ0Avxk=24*=4wqJVn$K0ixLktgw4*r)(NjaE=lW_9Pe*QO(!rx`3|LLlKyH*FZ*YL zx4$3Tg?vl3=NTamDm1v2eUB)zlculKi7v|}ocO*UwXR`^06+iZ-MkcDkC2Tq#CH``?pXN;hSY7EeAYPtUbOOVgBjmcfkk^hm%yU)Dg7OHFF5^f6- zgyoqJ*YMJ9NAlfwZH(+ODN%42`@8qXQsqteQNUHe`@7#ZqUrMxUEoc8kpDiaDXNHB zKZy%`#ISYY_sMV$YzWlD5S{7E`cdGM*Ehdwziv!GMM!Q-16&R_=%>sz%$B-2N(Gs|T#^QdVcfA|0&uioHh=lQ{UwHP!>e^93we`mus0lU6D8t05a}`zO~0@xrWZk3VX2s&UDPFh7BT!8{ne=y%r}~XjZcV z>zBb0M1K(BD~KEdB&P?V+=Q-SK@>Duq1?rh0R80t67*Wg6yy@fuABtd0!m?xDzV?` z&n4LWqZw)j5JBA1cOl*OAgEUf9;2aDq@i~tbC?)$Ueb*wvN&4;Je<KBEO-d4$g8yv z3Z|CNgcD0WA7Xx%G>rQm>@S~NQ=erPoH`#WH4VYFtdo81&t;yBTbECr7n5F+dbEeA z;K&!pO%gRnr_f9P0EKt_Gz6ni)7hGCE$w8U$)M%p(N2f0}!UXX&QWWN>n#ZpfW`YUY-DkYE) zdFPHL{ZJU6o^DQ=j#?WFw5$o5R-7T38Q-0btst9~!VC^zC^z7sf^sn* z)5W0)6`DN78+WgU9nZjdCWtJeju+0rnJT>EpiXGTFh)F0*t-yS+6!1yC%aJp^rlXZ zra?ifLCK;)C89yCtU+U}LF=eN7ob5OufdR~!C0%o)T_ZfqrtMN!Fr*=_NKv(rpZC7 z$;qP0C8Ei#tjS}n`OfR8$rqr>AFnBprzu#gDb%YeJfkVHsVRD)DfXr*j-~}7)skS* zk`&RBQr40-){=45k`2(3i`SCR(^9C_QtZ`In$c3;)Ka<7Qhn1>L(^6#)z)Cq))dj! zQr6Zs*4A;<)(z0si`UlA(>AEpHtf|ln$b4i)Hb=$Hht4JL(?%Q)v;jF0gLEZD(hGo z>sUML*aYa<#_QPS>3pu$vG3J!n9*_E)N#7daemWrLDO|5)pcXhbr;e7qO9v-tn2Bh z>lL8u9k1(?r|Vm*>({I6KcgG4sT+8q8}z0djHVYtsu#+l7bc#jsh#utnLh)!4Aj(Xc(hup{2EGtaQA*08(R zuxG}wchj)%!tnc>VLzJD0IAU+i_wsX(Xg`7h_TVAqtRG^(RjSkM4r)Pt*0;%yLi}8|(@egI=Wn<$NN8{B1pLxc=YK_->jW=eDH#d#9 zE{uP_8NY9%ne337?6R2biJ0swn;aOM96FjD1(+Pio1EmCoYtD0^_rZ|m|Sd{Twa)5 zy_sC2nck3^-m;k9iJ0Cin?4wuK02B{1(-g^oBqi&{ab7L(rfxUWBRsf`tQQ@{mm2# z-3*${42IPVR@4km#SGrW48h3^G0+St!3;Uy45iKtwa*MNYlgOEhJI;=@y`s1ZjMQ2 zj>T$@EozRVVvcKKj^|{KA81aHU{08CPE==3+-FWQYfidlPIkGoqCNGL!bw49L3J0x z-mgym4{%6jLF=?jjvYpwu$uvdrmM4HYKvw`vS3j`X0(Q4aDie+2Xl~tIa$G6qF`5ue@TZfMBIbYpG6lAjf*3>2x5Z zVx=u=spDy7paa%RI1tT0FxWca?6Wco1REoOk$_MLNl@mr);S-6E2KU1K4dW2o^_x# zqOEmKlJ#e6C@b1MTTyEp)_swGR{EFwT)e^14Z$|(!EjJuIPYKw&tNF;Ls&^yr6BS;43Uww#{FoV-v$tS70L$3g#W*>&vvcJBiJ_{ey;xjQShFbu-aCW*}0PK!H!$k;_Z3N+S=j;d*+{6)!AFG zoW-`CA@Z}iz+Mx3AH1uw8(4ql#e zvpSw$s-3NzZdwPg93FOvJEZj;IyqfEtyssDU42Gyl2f@l4RkO;clq~tRgK^REp|PE z?gZnkekS9hD{}>pIFI0Utr>BR)INt??xNOqjcPLoSiM#}yhf*+!$7=Iz`Ma*oyFpF zm65r@37W;Van;Jd#DAY7$aDpH-VlA7B_4AXUb!J1n_=yUv>E1-WtD?Of)gsy4 zqC+V`-c;J8Fw8kJ%*hQ+OfB^=-K|XN1?Zq|fo5Wix*Ck+;X*1JRnQDZAET4ng0nkx z@+y6nX|P%P6y2VBJ51a*hO~wxz_J=0NYdBSmuCG3ZScfeBO2zR-h@r%H;j4gAOx7^ zQeHrDGO7wFgP4_>LE0Fh;t8a+s4I#}QLvJf>qsGc+HRYuks>M%S{{37s4Sxd+s%!k z$^`TRUg7^+F(N4D@(;yS{zox)c4~Pjbn3M7y*@^&PVhuaJ@&Xy-<*i7rMg0t1K$tx z0wjbu^kLX1P5^Vi71wc!MFkt%nz zJ;=$&(whw$8{d;V4#bF+E|Q)Z50(v2aWkS)W5vWp$&Lm=VhgHW-NhZPqj=*usEZkr zD_RQ>SR^~Y(+{|JMl{C=sbj4CSRvZn(ir2G`z4~$XpX_P{p09Z ze1sJ`?ppBoN#TSK<39T`8jswqW48`1d0MDk+<7zeyQIRQ4P*YN8!IAeROv)AOx4HBz3ZAX-ZYYlWC8O|YK^=$-L)eD; z2ZaDQow;d@1~Iu3OuS6L@VZlF6kJ$M%~eqR?rHfx-M0BLw~ZaKLrbXmYJhF=g9ALF zv7>#_Bfdlm#3u@1qOvfm$+Le5$EfY0Ur-dxPOXFI-1h02OlXpvQ_JW8Zg zBjup;6h1{5-N}qhq~XA>nGM#%2|%*MGjk|ockhqZ>De!IFkx(7Ul=BhMG(qg2+$%OxNq~xwE=#fS)hX$*eZCAm5MY-(? zcgB-eCj5hZcD#*86C3OFbE)HI0A$HX5skyEdI&+F$NjT2TnSY#$Cu2qe{zRCkHDgO z=rGKgE}y2%B%-Xvy;xWp&B%h~QC(CS5GP!#DOGt!36>1Am@$a9GRR#=hzs?5p$Gnt zG{pa}<@BG|7rk8(;$9bAu*4waqBCi4`xZY@hGt_!?}+6cX2fPp1v_4C)ch8*4HT*#ROf(V<{ z%j*CTv;;LTO&qd>1hVgk-3EnErE&P-xl#;A-@pt^@u}vE`+KOgc+=2a_2Ymi zY8K_PnV>t^mSV=Lrob)7$cVdzOPg-u*|0uD@Cm#&YR}v80N5!<0X2Hkh{N`Fq(e2u zQLTN&+%ae-v@={ZhR}<`YKKH)S1xF5G)fvnR%cTLH`XsI*!VtFejW+&rjmRio)}SS z77DrC0`?ygMyC0*(m;YJ6VXLEX|nhWSpy^3KQp9ObqM;?koMNs!i+bIse@xC+O_-< zg$Ii0Bx@w6>}(qWWMZ2Izg23!=1Xd>a%W#OvAIFl2<&gUcPi8oNlPF0P%<##pl-5S z+xHhR9gX8ND|7$q3?8?Qh*C#C))%ap$C5Nc7Aj0k+$CMvV-0; z5F9eW;&GS1$uwV$nNfC{5gtWVzcb{q8d_kVxu4!utK{)_>WMjHmO0B&ObH%AkWE#J-}`dVR;};s8ULr?JlVs3ovcoS%O<8C^B)4Vq4|2$ z03k0Mzp>!pDdIO9C)>|h(&sR(T<^L20fpX4N4SH$vqCMmUF5>Jb=~kU)Kn4e1qQaC z9gLa5J4x%{ph7o7SY3dn0uv%?ozKn`dEM2EzL z!Lh7uhaq}|t_IOiQWu7J(D188`kZ(fN1zj_lY#gb>59Y?zpiA4t?jhKCp{nVQ-fF! zX~_NXXpRhx=_ps^LEM5_2F4sRNZGc4?IbIE@)8&#yvB4NYZC|0#qA*CM-Os5Q%;~Y zD3b-b!~}llz$V)sZf<-I{1rKhygV_b|t01=%j2=HDT579z-cH!q8*gw{ft zl`%Qp@t+s0PaGk`d|A}s`$|dts-4a^Lw5oCECyZwC|Eo`hc!#ah|?J9(EOg~-H&!m z9$?J_8h5pX@;{_Ou!o}$*mxM_-o9bct-CgVjtF$-7jyfUqNQmi%feXEc3s{)w~?4N zw3C-s?X!d1*Nf`=*4X;ccSnJV!fx%KhE;k$eo{MxKPal%0i<=AGZ4%(e-*%RtgwU7 z(El6^)8k3GO5~Xd0~0sNCi)|Ys07s}0eb86g{q;zMiAZAS-}jSxDn?>9cyH58xuxv z^8}y+WiU45(CV{Pg^3ZJ`(-FQayFcmPb&xydsuG@z+>kDQWmv4SV8ux&6dbV|Dyj{ z#qW??!n*tQK>|$tKHOGm0y_=$Gtk{}cRhB1&nYhVvt!5B4vz}3O;b{NAS^Y5(hR_QLC)6~wfXZGAzsWn<@3eU-TFTUbNaRqs_o z=I~(kR+o4_s+9Yzmd=;XV>7zxH9Tm9j&q5^Z+$>UJ_3%F@vP!YksC|O>^Hp+*g$F9 zmymRibHorfQS^OO?y4O0i$KB0Gy6~A#|$ZCstgW44tpZ(ghUJVz?3hL1X?pPMyWM z$vY4|ub!T}qx;G9&(zY-bLmay{lOOfq1@BR0AyX-KS#>ZBrn~3IlATu3bq-I| zdA3h&Uivr+UYI)v= zky0*hm8$jkP$08kQ0(Im;TA-Q4^6)PAvk_@P-o@p=v&S+yjZNTDqD!_wa7zNXc$$Izu$cLBB5;a#? z`J5vX89OS4Qq{6Nm*H|8tLQjA<5%bQBuE@mJ)Ypw!*t{(Is48@R$^;!&Lc zc37Im5_3>3C$sXBO#J|FAG0T7;Q%Vh&1mY}KhLDk^kD7h&kiBINXI9a6~7sC+dnHnI6b{_8+Tg- zqQ9~}Tw~VQhz5_#`k3A{88{NT>W1<*o?cCc;maI#ZE%%zyaw&?M~fj7kDp#}Ld!x! z;ngj(Tj|pzEzl{zY&#ZH%NE>+nEbXVo}R}1hkV@p5Gg%~j5kCs3!=~gQCfqjJVVq7 z!ZrBAwe-SuK0*aq;RYSyMr+|F&*5mvcz(KKrkHrpoS|>aVXhnz3Ya1*Uu=mNEQ#=3 zqXr`6b|R#;vDUB%Qwz=Kp9np@alE~OyUmuNh*%S9T;ONjCWf6Fy&T;EWiaZdpjcH!VkDIG!;J%1r%0-3f z1}``YC4lYe1S$FS1TNdPS2MWcK3|XO#r{rmSA}noEElAeY zyCo#>WT@9w0BZ<7MbT1}=szA?yY7AtePnpYWYijn){cOuq|~a_H0)kv3b0~n7_|i< zG7lC>bf&P9MDw6qup_z4CY8~pAka-OGQuuvE-l8i-Qv-_cP95yraVdT6A4)3hSP^q zIP6%ndFjNd4Mg9$@?Xth4x!BR{|^_ZR=efB{}a7 zBzEU8Cgi-65>%Ar#{LSb8|3xl{Nyf`;_K<-F6jhg&WEb5O{OK}HleAY>)AGxrhmux zbRQy57ZR`s4E*X;i0f?+mg>U84e}epCy)mu-^~He|3s&SW2= z0x@uBP+7;|OUrN<6I4fQHxbyms%Lserp(g2QsIk-0Q|@qymbptVam9W+idx+h zzeojQK8TD&i;c<45TuJDl!%mgM{YhzEpSz%ofub<%wE#iLa zAV+&Zq+}vmtb@IC!cIVbcX^J>9>yj7eMr)^eP289vnTFuCQ$EAmBowwbK%*$iDF^DW9((Q3FvD)&E$`6r`F^yGPq3BL}S zwT#97=}=iXQVy0byrNc{lL(m?$cW_khJwe$_@!ccT7oC2BH0XFT8$|27HI%c>6x+A z>wl07KN(C4;aF)vjzES$Ey;9WwPK#G=o0RCqIl8L7)2r_5u!9R#$wfMbrIZ8{0E>X zKAh$#8wP<2lGR|J9Ti1sZHX9Q1g&1>QIIQqu_@YTR&-}CiS2u zR9|8#xi+S?HYTG$tI#5NCydZM3=6s*C&Wl~1yeu|>pt7UtfT(*SN*@g^-#nOFhUJ* zh7AaQ4M;f+DBTT!^#=4Q2o$gpOQ;dYuo2I%kszm$sJoG5y^-vtk({`RQmBdAu!+{M zi9V-^vAcdBSu$lMWubDrmS+KiVc)eNlrCFS~MM9`W%CJSouSG7W zMWMSzX}v||rA3XnRYRy%%dl0)uT?Ln)u6l8XuZ|srPYkM%|fWn(y-0iugx~6?Q?gV z!+M+3OPdREyPHt^7sGZ>zjp7OcHi!H|Mm93m-b-dj!>Zvh+#*BUq@6bQTbI6$y2f7s`y~{ng#OvEIA&(!2dm+_x*#w{O^Y=+}3g(|6k4cfQ_t`OFlePBJVZJS=52EaN{cmpiP`Gpw{RtnxanMlzxyJfdYZqT@fJmpfw6Gh(zc zV)8m-Mlxz4JZfn)YVAL2n>+e>x=(!@+Gl5&Rt;ZG3Eu5>_{%gDMlis)XUuFZ2ZZsaZF`n=`9_l|1F#8?@n8@(|UwplVLzMm2{XKLIh;%!2 zHzFm{(hM!#LkS|Hk}{-pNOyO4Bb`HccZYy9BJZH*e&YPj^Im_%zSdsfwb!RV{%v1? z$oH7!{?uRnVQl@;`ozJ&fn4{2FKh!B3;p?v19`;*frg2(=w}WSc z1C751Ltula2ZL?;FfTUPi2|&r8Ri}W`%wggf5V5ZqZC6uB11=dL(@RmEUb0Dd8l!5 z=-_T>RdH~=xOG#1xYT`kFKKu`WZ*EQ_4wCtF2%@>@W}bE{>!(m*U2LZ%_Cb2Bfpym zlNJZ-MMfKdqnoUw==Xh?FI$02qoKb>*U8854EhKtTZufze3Hjjo5m`(9Y#6}Eh>754QPMq|92%Y)jKIhLq>s~yId(S~*TxC@eudpj>osUaUP@if3P*PZ_vQ8NW4HD7>Hlb`M1S zvOruqJ9V^(UfP>$w*qWky=YmoPFZOkS_w*7+fi?FTEWJlC3p;VSQ!HObTs zvgI}I<+UEWjlR`QA*!tfY_#)WG@6s~nW41-5Uv8pDtGH9new)Q{R;J$ZEWS0XJ1wV z)V|w=ZF#gVw%xBHK5)#Vne4d2mT_8F!OJ@$zjxf&`t?A&_8gn8O1P99t8*#1+ef>R z9NV7uSi|p05qloX^F*l|+{5c%IQCqQd*`s1Kwq#2#TF7p_nbwyfLv%7gBZoX z_YIe~0$MiQ+~+C{4}1(}QB{`)TDQK3?SDkTxUfYl9tMW8;|?9K%-wIAD9;;E!RwT< zzjDk)+s(Bs?^zxwSQfld^ zu+g5wv#Wg3tM?<9`v;e@c2~mTS9?WQ&yTKlv97t;uXhx#S?#X3gRdD%uD1rSsgJHV zv2G~XZ#EQei0y9HgKzLkZq^2Gu#aw5v2M}XZ&ws z|1>70!W)x*0N(v+^-Mvhkc~*kp!v_Oo=m4tBD_IpuB)>DvNaWT=*(q(Sw?v`{aLD=&*3CX^{Hey$@1t$tzBug=Sh+o zH;>3*O!`#-;uF5f6;Bk@Pbuo`Tv8pFswiy$Y~_XsV@Z4=3u=FL!AE4UNKOYLFJBD2 z{ZsT}P5mjyWQIB`$E0Z}W)6wwXAY%akh>^KISA=q5Etr&CW@Q>ze$#pP}JYVX-E&$ zHxtfJ_tCxmI7M=(fpCU4G@eux%HX#}Ni-EeFZ3}pjJcX=D#6-+j~dCMFn>qgWx9bT zN$K<&&rQsvU<-`EhM^Iqe(4KBfxq2ZfZ=5f1z+F*A~BU?!ae+WTf9aF)M8UOx1DMD zp?5-=3TE{FQSK!M=#d-DW&Gv%ksAy~8C@$IlyELisi^%G z9q?sgZ+*tXz6L1M)SX+%si=53R;P|V#M8Ese-lBO0%wA-In&umv%$#n1M`KX83pG(`bXSK~^ zSg)~67KU;2aciwrv_BM*rrPX8@Eie+UQOsM<876%bFB(I-7tu0<|A-C%G3K^6kZc; zNhinsL?7Ur22kl~Kq=k(h{C%x2gvQD$i+b};*Gp|sQlXLoG|Q<4>PX9w`Sq#ZhuhM)r$rJ;bf_ncy*nXOzdhtH zkGpsZft#|eZ4B+L+~%lhZwCUc0Cm3EVO|9`I=&RUT`gkVBK6gD2qXBJN2irMHTolH zALJCr9FF5Mr5HX7F{S7c;frjj=DI`|kV0JHB+G1NzDPkOn@0Nh@c{n5Xtzo( z9EFdqo*X00V1NFx3~3)LsosQ9M~=x%y|p|g8F;H_qEmKgWEh_EUv4nIj<>5~xmx`E zd9FZ7AYFWVYU=HIp4bsH9Xp zTA8WDW-my0tn{+R*3Qn#L_x3OVIa1uW~jvEou1Cp?PY-*da1)#g~fHUtNK2rQpdPK z{k7kh4e}@jPI(GT`?^<+vqQ%&>4QsI(`)~3Yql>eUE)k({kyG6Zgh1Ur}-Ma9Ezs6 zib#IlhOS)hO$;+ec$oQ~5>W2TsJMoycillUT<-q@W`gl*wj~w4BH*>+I$qLs7n5>D zkT%Tpsb_tQZa_tdrQ!zJ!gY_pa7EZ>m>KE!`lk7pL*WhNn>6G%eX`1x-{N4K48k}4 z;IPW*JjE>*y_;tXt?zv)J9$RVsMc}Hngf*Sj5$AFj@Q zF|?=bb~}-dQ)7qt_Z9z7i)%6b?|SsunGJu%hxZZsDr>y@Pkn^nr2Nvn1Cq1;wz&Q; zfN5!2AWlF~(tkVM}Yyv22PS|zZq-aDvgZGB_2dvb1f4>S?D zfBa*20l2ihx^;DZ)4p?Z4?6_@!k|Expn9o)dCsga5cW*m8SqSA!*X=tg#i%W**#-V zBlVR^QmDv^d#xvmOgyNW=zWd?gzmsZO726(K-{SAx;rWU8Z1%l$I>FR9h0i}OM?X9 z0AKQ0R=<4Qgf0*70Y**FMsjCKztvxwgo?7jt>v84vUDAUQM0EwHR^gHdW3wZ~=f$ z<0$xT4y^=riyWS+Ab{h*J)!|OTF)cJ^iWOfU9<6yk>@}){CAo5{6oBFLg*V)RlSth zXXrdv=xwPe`X3pvQoHne2@!eSFB zGA}o0UU)_VC=fTKOXot7uZIT%={t&|Lh%Y@eJwtw6Cr(*NPL^)cG~kaX+0y~3^Rpe z)Swy$E{eCDNwwUkJ?0)SspZmDNUJUlB%h}-4m-D$dv*VfH9G;7cn!fBMQ>Nf^X2VK zr4K_t6wM8x*&=uc(v%Q)Br$CtkikQd+iBt&?C=1w&y_FidMP?uTEyc>WZTHZpl+Lf zN~LRVAFh_LWz@EJpb*2Oz7NQKe}vbT^@+53uZYz_VJ;YiWw#Qtn=+8vbC5BARGjS9 zOj(@0znkO2@SSy{q#f3z@WB^R9Zp;k!K?L;k{Ys-j%dT`}vCNXF1D0;SR=+;<|Tm`ibESO9L*=fvxPpx0DH0@6eAawia+^+3FJ9 zM%v!<2u{l{hAgc=3Pm9#tR+0Vv9qT}Tv@{7_Cd)ELPb*aJy@MY zAMM)X@~~a`Q7O@ZbAQD8L~2b+>bf4U(ZPx3SFgG$N%*pkg)e8<05IH}imcJcPY}3{ z6F4sUEEg$2+fi$_ql7s^DR@XF3DL$fFd2ulXXm1 zrnAThIB|u!9Wz)=93$$HETDr$bJ&K2;q^C9_h;*<`)4k~Sptt+$0!B?>VNDXj7HB% zf6XY&|4*1g_4rzLRBGUF|KJCD1uqWLO^3Gs5vEYhpv6T+X#dkc2;Vv|Yp^=VG#>j0 zKicB?^1s_&bosM&1Tt8ZKW-h0B|L4Ib)`$CMx?$Lg8U^b-=UE#EedZ6^&8<^$8gh? z*$RB?NHbW_dcWQo%e!FVj?XAj`AsqyRbJ_}@A5~{NP!O3=Y=uhd==G)Eo(G;VhFug{z{pn8P2aDmC`#;YT zTHH2|@E^Ah*G3hljC(iu*6}OZC~e2f@8$x&bzuD2I=KF99nw_j>}>F@1N^vkC^bZY zB=Py-TgSHDl?E1L`f4;L7OYJJ6DwwS@~g6RKKQFrMSesuKSQ>u#y(+JswYNwuQ~vW zXEY57fy8+g3E|Sb4M0TU(gwgpwg9+GV_U6yO8m~tR(T>*Pm4~}x*F}zHA+H@WCpnw zOC->uHx1$7_gfERp2Q$bv){waBSZEV{NFFaqDrM3m;)z_q9eQ(*5j2mX`cJe$GojSMl5td!d4Aaq8KXyjW3V7M1*3=D$FJ2EKCggL0*c zgVK_KibUIzZW($`v;ov6j>i4%yXdz5v%Y!z;NQsX;8hk_TihekuV7A#B@K{CBwd1p zw7o-BhZB9L0ifJx;VL@eu{cYAKV)520os*k8)WHZDgSQ%$(bjk8C8rI9p;)l0mizU zWG=XR>Hgk>04ZTK_xNLkQ_rR95Vw~MX3uof*X<;Uek|l5#~I_`rAZea9^V}aQ%@!8 zAg}eq=L;PS(WM&VO|j)F(zFlQXOFvv@dU8*YkDoZ?vdD-wyRkB`le|eWQIP~tC~M)T6YTfG?s@EnX{wb;A}0! znN?1|yYcmHpP#%oy3avsd);~wz}%FSB?0+4^MGesyVnrHOjk(NYQ-<+8{cpA^VTrM zp@-n?=tyU8qd(^OYt#GFVaDZ-v}`hnaPZU<&$^4;^!32E_vd|qPO+(b%wM>Kg7;WG8n#TNX7cZE4U)1BGBECC`7{+x1*sfG+3ql z3F4P@T0AV$pf0cCrtHT};>^hXGjQ0J20#AyCZ-sQJow;{SNL9$iIP=3@bma)Cdp8~ z3^xlht`h?tId;J#OCZp<>%8&A9%g&w-%|Lz7AK3}7!5)fPMh-s$QG4lW%X!={0=Kh7_fR#uhQcYodg?i)D7h$ecs+~$LJ>a}oHmLd6Jf0kP0 zjYDR)E9N_H_r40+@&IBqEuh@EUZ(pkUg*!hO4`0}=Q17180=<6q3j=iyUA50!BSt^ zd3O|4?Fy!f)!Zv$s^_!D$YfDr_i60a6!N94d$ZIOac95DV#l^swG}9Bdn~_BkJFXL zdvI@2k^;1q)xCG2G}fro{;&4yPAdT8NUZnkLEblS)U4;jqmbcDczOU8#(!aIi z#%lXN5e3k2(g@N19hz}`5d}2iLlM^7!DsnQw4pEO`$7^afCU@L#z7e7o&O`xz`>t_iWlAN{ziS@^&euY-rN=AKkNDI#XcYLCltz=@o6I&m znFBY~1wrj@)@r5{&8#}Ct5>#;S;LLJXkt9JuV&w$S*ZjC)8`;7p6vA+g2%lslb)}f z+-!vp2V8bS5q=#CrOF+w#2ssG+gBs-u;q4|x-R5CSmyRH=5>jSu5vVrc92z854AOo zmrUH_L8CQo*7^p1%#KASL^1gGr`m@_bh8Dc z&lDRs4$I3iqL5S~at)eQjlBNGJ^FHa)5E)l9ZMx$+pZeUdK#9WNG$~@bwgkpqh^4| zJxcPY*jFq$KcDq`>{$D;hHR&R6pE^?l(52FAEuTJMgR?t$AZrzTUO46tAf)F4r$t$ zJ9y8Ay35#dp!BA-PLQ8NG&E>Jf$la>pXeDC9{Mt%@Yus zZ=`yj$>(MYTqc=m&GJjPqVkGEX^r}^68 z9UZJ-0+z@xig&9qP+PK4_d0>c0kgJrDNl#=ZOdTY5A6zIACU+x+CF}b1HAdVxw>Gb zSM%qwpCT!baXZqW?90Wdik*>nTjM2)I&i<+o%2cRfD8NXO!?O!8SFW}qXm;*A~uQ| zCH$@mpWf8aq_U&+zMMh^rsrY!PvnKL(tam6JC^sBF&c4jg=%<>=BPhBOPg)HES($K zXiYXrzsg_DYGP1HD{;Bdn%H>l(GcoZU@O9CA6*mU1RZlc9fzL^&B2~BQ!I5CqhKLwL7P>7B=oA1^yjl7=s)NK- zJT(|$v=17HgM300@+2QU8Ug8z*bV{`lUOvuJF4#WU?!VgK+tDYKe$ZwUfsY_#lS#{ z(~%I0$%&WGc^0KCfwC3P{6>y2Pee4vEIaCxwT(uO|AV|mHaNy*+cT-6VI2{JPFDlq zirJl){;C_!!SX~En#_WN7? z^^x8SIk})Np_pb6dZ4*REm5|PMhWTGL3%stbGBrBeJC3kipT2ECe>|~S=B8HK2n*1 zw{W1bMFTpz`5b<+H-q0FayQ6BtT`G_3-6-)C>9Tn2S{ucIg4}W6(ADNtF^&oZ%J}( zll*W{xJN@};LHCcP4VH^F`DP)NNhpQ)SWmQ?iP`|!^JFpDi$R?=v)5t7xlWq`|K^8 zuL#8=E%GRA04zwc$VfsN8K~&@L>FaXnDPS_4N@pW%6T9bvzrN;=Zm50>Q@!mP;xR0SU3)YTVk49hW4QZ9#E)7s z02&(whX^b<98Uh+9F$q>zO1+S8C2B)?wcRj`)d}6J2~hMGbVIfdS+~YH5jg>D%K7x z%-jJE3kMf!Zzo>S3oli_`YPNZ-r3;PiP!6#cOoGOdziq9pAYzg2hGXYbGP32aWzqEEY)#{5bVOhN)=jW*X3Jq7@MXF&G znePObW*~O9k&WbxFoF(&iraQl#+G0hd1MIIgsXF^nT)G^nNGj$44Ux;TrzH z4n@^fLw`2afXh6@_F4%UhzfplO!7Rv9f-sY@j`XY(&S)bxfRT}z(Yj(BIAec7$K?K zB|924{hkj~dKaJfmZZ(0J)<}wO&Y@~J%k}Tt3VE&*nZ1bV3A#$fYRDazHl@ubCQF~ zq5vNz_BHi}EtjX{iP96Bi6n3OJWg&&vQa21TL54F2I;KAW)%J z46C-%8njwS-6zp0%jhM`u+#0g;%_n8kP>Fy37e@J@3E41IZw2&HZ&W1hD+a2+8Xv( zY5zK(DvL0OCLEKcBnezrM1&Tb5tF~^*S)NaA3BsuY@3dVUqwsAF0p#;76m#7AR{3B zxgYwYj%WT+$N!iQfq~Edk0;Ma^h|G1pu<0x9GL`2l^}_jKk$PO+p)38MqmETe83ck zBd`9N4?=|BH2z$27%qKt2&NFUAI(N!W?mc4dW0V+R2NRyIf#RmNZ{r}oj&PX>w#RD z7_S_xl2WmrORe!U{;QNhF*y7HbSCQJ3NbcDwZyhvPM&7p>8Q9WoYgXsSWTSI1_opcPN@Gl+!Lpu zRBGU2_)Gw8|DjpA)#36ucqHo~`Lm+4*T&$WcF~u6wd2dzJ4@%wa=&f>M4ColuD5y( zC6dptR#b4&+r$uFKF^Op7L|*~MF4Q^g8W1%+i?9~N|!?={!$O$?@|YrQTJ$I0VB)3 z)e*SFI@LJRXCp!srku@OIa-|&F%=8S+ko;pZKDy2H`k^iyc{{35{k+NxZjkwru@jP zeCv!=SVd>m0W3Ui8Au4xR_jQhKPE-;Uy}kFFBSME^DC~)yPe z|Cqx-JYY7%Mm%6|7%C|J)%p3IQ>-2e6Z$6zgDA00#Tv z+upQXGDl2RPKVv7AYRd|$Z%eI<`5i{0r1v0AF&2C6BRoPiSTf$Q+2DVQ-Wfn#!$vp z#WLnY1kiHmPaj51_w^O$tNw`;s*t|BHEYS`=z%9`sT+F}S}Dz4g9>jOrdfRyYt=@4 za6Q(0wfjqVHH!)(@GZ`JG~#~OU~eCoVd|H6Fcwvu@+QMRcM{GP zU>CL`hRN+AVRYRR23UeS-X9ppg-Ht17L-&6TBA#5ER{PCDG(M`etj98!)<2&miA|~ zqaaOKu-97=oi0U&5_*{;H4a;OLwlMCekoO74dj8L-^kJU7X{+{UC-L+Ze$UlvQid^ z(L`SvxD*k)t@ng9cDejZRdWl&rhGt1N`V~o?~lD#$|xWixT?rG|kML zp5LM;I8a_l`jww3vn{Sjl*={;v-`SKx*PX%5h*FK0}QbV*6XP91^r>^iCS3*+XOtl zl&%xuT>B>GR(r@yJUKk-Fh%J0jT|*uKp0Y^r2#5)8(LnymtA0Xo)|)ajK?x#8ftfN zbD{)lB8pS`Pbnr>x)^X15YPAG8>1Ah&4`;?b!N5>6MEljT!_6>I^NOnYw<#GOYzzZ zkoA(>R+QRNadeIjX|}hFz{J6%li-W)J+0Y2`qay4fmfQ!U_TbZl-Ad|uWOXm!mBiL zCAtfwJ*+fx=2ek2rwTbgtgDAMYECQG@Ef7n;$tLCCDvcSpFE57=7OT0F^QKt4;2|+ z2|bN%{)*|2U2KeYFipor4f-?G|2WF)|31_)2D!W-o?X!9RkFExim*G~C2 z$C5h~%Yo8ij@#ii@;`Ka;1}6^WZ!?~SZWG2XfdMR{2|(uKF8x1Qb$!v;G@RBRQ#js zW#V|OZfi;n^4^eIJ?i?Ia-hA`%b#lOi=A+yjm3T)_f)eRr9v$54cFvzKNpr|*iDIk zV-&q4j#A@0ix=P}bHjy(8rzIC1z{@oCjMF97t>-ERktNLdrGpW1 zKqq374Hh;oA9ZFfIy#M)5*O%%qmk++JILhVj4i1TQU$xKDhSzqZT>jOVy1yl+^?hHLLRye7xG-u2xer2 zG=Y?&yJBB$e#rRoHFi=}<^!i4W)F{r6=y;TalI6cLugfu!|^5R;-sbb}C+uPNc z0F|#14#fh9dE(2vR8h)l`;Ywx?Q>@!_XH6%QNJqtH>mcG2b6W#vu3!-F{{*}++4VE zDo;@%s-h!}V(EmK57^Z0uRqj-%YmOpjU^OWQ?4gyQUwX7^0Zto5VLJsY%rs=e_ud3 zMEN?afl3SZ+sYX)KQ#d(ZRn9WCXz?RN=5zVmTqqgoH}sO+}gf+VM&`IFfiDyuX`RJ z08*&}WZk>i`CS_#*o{KW4szawzV9A?CHB%VS(uc+;oa*e@E+SFLym>KB6-b4q;3RF za%DDe+!3)YCCE7DtGDZkEoe0k56T~)lU$oo0J;*%E+2|;Q;qBa6ftuvTTr+$Dt~1l zwg;Z#!Z*dd+KCohIRY~R4S)}l_u)2{M|_&<;b)Nz48K3~{q5BYFLrhvQH<4c_sUL+ z^>CLDYa|*E{Ix=URycOjiUHeV;P%QIY+Y<|f_YK@)+(KFO;j>;()2SFnS9)LJ)P?5 z0hQ%I3^CoCB=C3icm{pa6XTa6%TEXc8c74fEoQ40)sLN9j-E%_CV7)S%lazyNwY$o zS6G<{MdIrblZ2LJKY6;ZDa|YH-LHsrZy4B_p-=p*bfcU|syG^oaK#n9P-s?lt~M}g9M*ft;oHN85f)o<7KSkCh zlhyD~7~p)kj*=Fq8#Nnd9v$6O2RTA9U+rC~cp~PfZx<85pYy?t>Ean(Z+Blk(*@ru zPI3||A<5hojD_0#%%ZwyGGf{H^%b(npl4@(jgqJqGw+wv5@;=HDW47p)pE8XV;ni{ zKTAdJ%X`(LWb9bUo0-U$&M$4FR_CpbB3P5pn3AuNryEnqe^GePZR1fppgFSyEif8j zdXq-0brVrj+@jB-{@FCDasHyzx#mD8fy}S@_M!}m{Z_gZI?W^|ULK%SYZLj?@@e{r~x;sSnY$_z>W3R2|r|NlAK>H#|c?P$LVQ2Fa<2c}uu zTD`YahTGbYV8=hU_Sw%zTN@5`Tw3w98-Wbhkjs{Xcr5Pl@mjv_JOzOF`{ZdUn=mz6ONO7W5+fGFzkz*&Ds+m|tI-hh~ln)B0ExH88AFefC zDqOvpubnDgyO&o7t3n*JdGNVk`~l>i3nj~XbM^$F1FpMgxyz7(>8^sxL4N?bT$Len zAIhuQi6Y-1umh0DhV%m<)r|?Zvsf3Rws1f$FC37|rBIPySG6####*=(QctrnjE@mc zq{@ZP=P8cMfmQ6ZZipbuTYd;?vmAZGcg4fihIoU7M1ahDl0vdG5>F`H=Dtj9gF4~0 zI*&Enhl=!}9|1ko3thC6=w0h`q(vuY5@KwhV(utiC=$PA1}~wEtUh#DYEzNS0b47c z^JXMwc*6NnEO+{kD{{wh3s=6p}S zpm+Fo>LesbBS_38dxLz@L*qex{tLYK*=r%7p|_TrpDz&1#6ntO=*!5&tFu_{eA9B4 zTp2psW}#0A`UfM2{{?_#!VVY3fbfRP$miJi>jYZF>++~GqglG{?PZ33!^rf5sLc?Q z4Mk7~7~A7)m~#32?pT2kGKp=b3W+j^MRd>Z0W7~!UgjYMP-&CL=Gq7_^TIx1O2j;s z5Voko6Ozl#harQ>Ym;S2pw;(%V?fF;1$_owRlhqnA_Az#S4x`C>(fJ}@{@JtD+puqBA0_26 z(=66c>sHQ>jafz%3nj&+C?-ckcyJ|@CWXm&?FsA9c6Yccijq?4uG?aj{CU^+RIc7k zvjQv4trYI?ylVNGRU^wy{0FB`PCiShK1DO@x*Od<>;rsw-U;*@9S-8hFPBQU=es=1 z*mu96lKvIU8(2;?Kahofm{4XM1fB;zAug0t;?}dgO_}^;_I-if6ji&L2s=6|;L=6) zX$QBajXRpRlzXy&>f@y>VQm1Hw1ubVEsN zJ&{ji{ONn+#Z3IW`bQYXvc};erlu!vFdh67M_PV_Ni$o1!`E>`!(g%uJ(dV7Y~8^_S7M9Sr(?MsVT^=8tuFS(?>(FIIa;5&q;nK7Vgmh-_qfmzNeBR_ zE|I>*F@#S6pyIPFBQ!EQR3el1Ok^Bf5r=cZb8Ay?JwBQW(?^2>5FD;6S{b8Kehsa0E6KV*|!_k+wx8K1+1|{RLPIy)B>SCxbo`S?|a3gC_Xcb zyvFvcc}c71jitL|!bb_2)%P9+#ZH6F#UxQV4I^vC5D|&++uS=Q>sB}m;c2-qx7bL= zJi?AdZ4b!UzYulY+9>+ggGL{pEC-%4X7Fj5_M7q%r=oZG!vdL?VswJ)=|AY@3WO$s z4vF;n0=DR7`J6_r6vKXo$r|$5m;gfu?T#m%trG2pEtwlnVD@&LeJ=P25h#Ox`p`wF zw`&&@;V>)PgEtea-@P5{lKd%1Bcw8CvL0(FnCxYhdQ0bG(YxwXLYFqHhg+5eo8H3M za-^%v9WQIi*YgqGJufG&2k; z6ZPIBp_G6|$g9`Zej~rKI-4z}qIwp>rr2J16yYPyA(M%DQ+4<-9DZ)aB;JLt$d7dK z@g-$8%l6D>vbzt=%7(FTnM>L)(E?+CSvPKFQr-$Q@LRC%KSx|}^=w?gE_hgOXKNG= z|K6zm;<#yMsj0JDC2)0SWc1mqlah7L=X@qYD*H8;MY{d@lg%$&WVPhlmj~<5fP(1W zkmV$U^2y)8uAi_=a~hvL-7-wPKTku)C+Xy?_Zw}x!zA`%_Prs z>RHEYU-B>l5FlKB z%(A99J@LKGJ)B-QvJmg?gil@&z9McV1Ne+qZQs_fZWz*`S5H_$wgh)s6FJ86+U;aR z7^g4@K81Cs{Ae~5X>keua{Dt4aL*{XNjmCHcAk!&gZw0V&zJHSC<8Y%U+SF+($jxU z?my}p0r7vwl)V|G{$pN*OUy4_nd-l=>Czc~0Y!iEBGoFTzU8zy{}og2>FuNrd<}Yx zDZ}$3lVd>=Q;&I(d73~KTPtf{ON$LiQ{Us{?im2Wmd-DRW-cGqHBe=EGdbHOS7r&W zgYhwgU%X3`v<)nOnJiGT@*QG{jO`8qXY__2lBiJxzRQ+#BT6bDtsc{P9l>RWi0?9P z(w`_$m4m$IPhTC!d z&orMtW}1i8xX6AN*V)cirZ5|Ixi`{mj;Yyi4SeF{nhNtkksUIw@&RNkyt+OdYy)6z zKLLV4FtKaX47tx=4%0u}8kx5EQ=(V5oB-{)4v8p`kd`mSyvM}5pi-sWJ0b69bBs;+ z&{@#Eq0QXJ#*XCjmKl!N{AN!{{fbc}^lpw`C;|= z`!OWkJk#16oG*f2w4;dJ(mV@uUSpv}Tl}@HdrC#E@dEE&7SX0_MyFiE6Bn04_ePK}d4vh}DhkgMWws zMMWOAx|>a1mrh(?0L?3w(8j|7cpj)uf&oyqf8*R{dA+_LZ{3l|;NW>8WSoYUc~rdH zPQ@sqpT)2NIqS@1xNjRLe0RH9Yv>xxmn|>JQrfZ1@~a{!C_7|!pz-WV0nmXHlyAK^ z1q5c;KRalvjKA>a4@!$i ze~J0Sc;(1TPMKoV@c5&%)Go5Q;KehXUuh%OPuNGiLt<#hE}UmLR_M9t;~5M_?0ie*>s9Dp zelkxptHO5=YXf#Zz7r3Aql+;&!@z@GpD>g!)b*oOF0XEA$$AYQ`m zu+JU8OiDS8>16a#qe|$%RnQnD$DHvH_i%-shBygsh@Ry25O9=*I=j=7ZZP$_k46fA zGN+}w$?R=EsR+Ng&H@dmqgqC^8~C^@P$PVhl{%vhZGf87we$2hYK(vUwg5I~;%ksA za8lz)L(Wm=+QU?fRb$HIQ()1Q!&dd~h$)MfW9#Kn&`k}A$NRMBlN0YD!ob6f2Gg5gPn?D2@>c~0TL^if%g^Qt^vVr8Dw|>~J9%StSPy?{{FzcS zihz&!_igfzjg1YT#Q!U~_kSFWDCzp8|M$U&OuAoT*`MSdO^I(1PUC+cjI=!qln4Fm zU}S9gb)ek%%u$O&b%gK@J` zm=cna;sZ%9v^zp}9P>sXJn#Cs1FM+CQ(jeFDBki~6=e{H%2NhJ7gXnHnFyhvOl?n= z?G-{i{6DhwmH0J!8|Wz(>p(0XRz#%~WZC}+Bz^R!}UviDHl&N180BFVbfxAI<$0A)i$|C;;8505*%HUYedckP(F1U=Cfp^5)-2_Py!W1+8g$-5 zz=wWpG2Thx_@)YK`?Pe!L&Z&wM+CQ^cfE<78jCHT@jm64fCozYa_2&Z7UQ#gf0j>Y z`5^LNCwdC(=PN#Vx1P$bM)D!bCfdNjyS{$k&95oHHaqt%A`^$i>jzRg-UOR}%|TyB z;t~RFc>Eo+U2;At!tz#(slQyZ$s^@OZ(yku;Qnl$_rn<8=|fyX7ViU392ETePBU{j zZ7#j3%m|rI*5jX@(F1}zo%h7deAX7nkYjZYsWQ%dNEfoZn2X1G@4r3Kq&w z;=bIIeMH~@OGZ;_H_?w0iRqm_Xh@d=XW0oye`#46MjW~iDl4Wn&5-HdU`}RY10)cQ zEtdTu*Hum?*L=;!HkD)5W%W((USpJHRw=zaqctWLFfW<))u>~{eNC-xS?@FkFFM){_3Rt z>8naBR943y|&K{P%GP6cDnM^-xAC zmQ98-HzQvbPWS)@7MMV;L1)1F?xaCx@#qRON8{!&oG?w9mSrv4K7Ibq!# zSWQ5us*GL`C?VMNb1Le$1C1~_skJus`eOFXkMxoO#Y7q9NaF+GDxM4;(+@9ymxLOH z#Cu^P$oMQVnL-k5U6t0%bSYE*0(U| zo(8@P%p~|B-VM^N2z7Ysibd0xDUEPDBr{$sT~2!#||g6u4UM2=3KsK3urpfV^TIfyPwqF)|Snm@e6 z*_;8ZvOmpfJZkpNq{^y&K&$aArtGkny%;d4JAW2ipN-6#h=M}Dc^20OWMFs3^%whl zWAaDTlKlH91^-9OnEw;V&rkRt%ecTK-Iw8CA!vybpE97}{}Q#d0pkBHY7GLOPr*g) z(xO~|g!RVemWzB-AKWrNdepSbKhK9|fO8kOcgw3li79)~`c`RryHCez|3>d9S*<@V zt@jC9L}Hs0Ib_X6x|nKbwH&1wO0#LVf-1)9 zgrQM_ap{xXu@FIzPa6f3j9^>|gDDaD8sqWY`FPXN8$O%T0?kf%O62H=S z+Vp84;TR%U`Wj5yLMAOGkb&LK9v+KMh0CBUognG*w308=I;u97b%a|usrj{hO-84` zJ76=~&_N)cFgnQP%%`XIF&2Ffk41L?`8Y4%oUOOw5NSW4)K$I5%`_6>#ol=F4)uq^ ztNbVP)U8%!-P^FYJvk9ceCKmJsW!kq%LT6y5~fwV8$q9BkQ9pgvP&m2l#*-SYX-{# zo{nDnOvX`8#Z5)_I8V`c!x;vB-X%}6K?(PohjzxD$ z3rLr!lnA1-PrR<@ihJMB9(%mw{SN1t=l}Q}$DC7S$|IOge=Ld=jzs&5Am5eHz$Bk% zJ)G4lwO2h^Cz3&2!kkBFkL8a;jVytaYx7{A?~05t`~ZoKKx8RGRt#k|QicrEXRIQvLc49}b z^bwx3_Ca3!ua$}zO|g~ns@%hfgStVr#IWMm#KiCtMB@IUQCQ{cqp}FLfP5orr!i1P zdHxN%#Y`2^RF2lY(2vOXC`Kv@&lf(z?W2iW6gt^<+Utof z=vST>5kKfk--%MU4kx^esO!AeU_CGJSn&DoJ@h55VFBi`r`Mf)gf zcP2v|$K&?6K|eIxs3)*u@fum+lFaSnZkJ>E7Yvlk>9cDUy3-%qsUKDpDAwLzgwo2d zp_{BI6RlNW#B_Cjei@@HlQxc)>crG*5%DpaevVjD2K9v#xt7dz(DT+CRw+|#s%c~j zv_c}93UAQUylxU+6w;tRVkT?#8~c}8$1G8dYL8SxG*Q( zEraCYSms}!!qus0h$W!|Tt|HoTYdTZ`C-0NnamUc_m$8Cu87 z`2vnjwS5&OI_n(vnyP@LtVLejE|A{MCzl$KvF+!LhSRl zVv%amvhFwmyZPW-x<>D7Dy75&JXJc;DXcTi;ac+t9%sx-L9BHf!l~0li%w&ku#hX0hP8XJ%I2^-4WjGR`pL|m-X*k zY1g9w!i#lBc%1;k>uiI_0|@Vp?w^EL)jr+El1v(HLG0`;sFK{n9e+dM2qXUuIhl#+ zPk$t=5OU~C_=W9syeKH$8~80!zJ{z`A`7(lsAsw1KuX`E+*{CIa+-bgO~qxkC^t_4 zSKMRcB@XBCYUqOPQfAPU4Y9nyw#X?d^cRwX3g{G#-`KCK5P$`jn=J4*!y7GkuwY~C z*8Jm7Gn1g{N-|1JURIWguzn5O-QX*OaQaXd8evszJ^C;vSM`96yi^Ul7Ja7~n*kz$ zz;RZ1)c0NRc=W!i6H;vV>dG5eijMmw&6BLz)-^SHu*VHdO`$R>s`4px1g-hWTB{F~STT#0`!dridcn3Vvk| z>%nhjw1~h5bJpbW((jm4Z`{EG0=R?i5f>4j^Sqz80oDw+34J4{lz~2ATazx}Vx$)0 zs~uQVI>u?uw<`$?XI55HZC3+MSvm$bL^SS@)&0ILb% zPEYq1#c;J*8xpHIwt9h$ojx-uB~Llno#(;6IaxYZ^@z-Gw5oYO$i*cfaPL37a(p6}#JQbX%SL4RZ5-mA8VT za?94jB;rd)aoOyxTT@g_X2+h!BJG>AKe!GMh=Q%zeQyL8=uV5np=9{P{%!9L#|0T>^mfTk8z||mk%~tXiG_n?D|V;s zZ_L+mn#i~*RIKlRyD?-)=I2@_it%b83!*I42x>&zi$;szG8MQS0Q$2+12(V(1n7Al zQq<{sT`+)g3Wh@}W$~@?3;DsG!%FlnucP`uobp`{i4bgM;XKMKWWp6qmE(&~`0Bw( zHwu;4h(3!hdb-1=A&U1bWD7T(b%$e{K>6`xeDZn?6J6IvpJ8-SiuVsDXe*tH;nGa1 zrsSS!VylY1K)p6@kd*-8;h4DgIdk^7EN>$@ku5<;`Ujt9B8I$bE?B`CBNtX;RhSCy zD_g&}aObUR8pic?{reHj2`KhI11Nx<+zWr#^QU49-YK@$zZ6?ET;y-X777>st=Ox=;euB7HZCrXHr8$7og-gP zPR|DKWc%v+PPV__f;xlE)dMLg1p?e#Gll@3VEXklTBZjVPsTL9T@uSLz<%cK&Tp7lvoe9AnMdHaIikX^MPT`+id z*xAa;W~KrX!}qh;?W1eZ80IW-tpI=gxfXC#ubuce*Wu3PQ~=SYAYuOM4@$lgsLlf{I7+>X(7n z(i#a|p)!^Ph7@JZttlM;v+~l>E>u5L0!bAhyORLfy*D8&uoUU>SgR{c^p)&zM#TBe zYcl)cZsbaVOx0=pk-338o6PVA3V3o4#{ro@BrBMf03*N!S-e1p8!igV@#{yeF@k=Y*vGab z0)ujVdN)Ghk?CkqNt7-T?R6edvceWW;I;0%b)I!vDvVcAL&*!9R7s@@o04S9O?by8 zLZ56Lk^27SbmoClM0btChe$*}8E`GJl*$|ptrNwu%Q_X=Mv?xm$tds#V?b33%v1Hc zhUbMT*=h*%YG4K=nX2`%VpzBws^kW0Q>X@;iAxlRhokmTr)Mv-z_WWUSoF}az@jDa zc+8V+-WTO95?0a6hlresQ!A#@Sav<8gnsS0CkYVEbO(VxxzaLzq?1dBu(<$He3X(d z8F+fn0ojfv&J{~VWf^-wfjM=ocZKDbqjZHF8G?|)+N5I0F)|vv&Q=&uO}tTnB?d$& zBY%95;rvrAgQs_dYqrci+|7RBwz+)a$lgnY2A`s>LMntJt8`$@c<`&IMEZ!|N;_Rw zu8We*3&L)L{Bg*%$^l|bYQ-UO@df+AIG)=Pv{v%*kGK5q^>B15$ZrThS+CE+DZC&U zfz}JHV$&5?n(wa3#}JpylzpB4B3vuWN^N*O3cpn7QXTMyGyCQzlLc!1#fIJJ6+{ei zTDs<%X?dgX$U^8MR!NlviCSYz+xLBmMXvW+#}ld12Vn?^iuW3QZui=`tBdhr(|#0@ zh+~1bawHGfDkR`&Bx=#xbKchq7biQVd$`;)fyYF2ue*(^t(I|%(`_PM%=lpXVF6Kd z;iMT`=Xkz1xp!&7FV)!F4Kmu# z+2OX^)9wGv#}b#K=wOY>=X~q@amJpVp9>&}jzmJj50%G7qQR zf`VN@XsA-HxhBP>k0zj{j)P`_7oWvW8oW1uqFWy8D%(!I+X-`NJgB@M3`yHdO;RP0Trf>^6@~C<^#LV7`(R zz9YLU^x#L}KW^53vs{t?d@VEo_wXN8)8Jg0zg*ZNxxrz70El{hz=loxFBf*i-z-;Z zWEKejSzgo+Zw|D!w6V1cXdAj?xdZbnpT9un!cQ)~eqO~{SF;_r+YN8OW4TbB2j1X} z5%btPmV0$^YJM3bi3lL$&wp?=z1|xQ*_5RcaMm4&q|hq=F~Gai4&1EiQL>d5)+KPb z?m4g#QjTX!q|K}@;*?Alkb9y>UAnSO=Lt!Y$tpd|)hu~eZRQJZEG2Y()>r(l?V0Yo zI=XhvA6V+ZR?XseEL--yMwMa{Nw6e7B3I&VX9VLFa%LC^W(-3+7efp?y#-?vF*(6D zBpC+aOq7|6m1qnE9GPe)66R^xV^I=3l!o7z4e+_tfDgv32gj0)Y{Y6XJ#AmMJZ0CY z!Mi2@{p2yba)O+^zDe56B^E5r-wXqZS<7#uCB+|!q?(p27m|u}*bjMPb-ajV{;5mP zOYWZ81-4a*DeAWgSl1!O_uyn=>#R>rDvrZNCb|5;qU?hm&T8oUfL`*{j5njK%_;;_ z*ZDNwy{OY`JRg#VlmQ9>q47kNTEoLa@5Hv__?02g+1H`*;IX@dhbGZ;6YIz5q7Z2* z&9IHzp!!GK46zru;Th2o)}@_j^z4On^|jawoKR0plzdNy@0wd~ga)~0JlknDR%ty? zi^h}2(~Runj#zRN!I)|Qj!A~(ke?HVTun*nS_PU z@|Yt_vy|c>NF~v*mWG)l12LiIyw+l%G*j=MLy7DO)ZCT$q)UZTz79n7#4O zu&^CsljQVr>^ilVEI^}MeV~#F4>6Te8g3A+Y0FA z+_z+W>Alt13JPzFu8!Kr?YjlzAq?NwDfJu)#O!%`wAg3&`4`N*35{~T_d4E2AuqL2 zM`DP`RhRlc8?>|h+!jj1v+s$oJK`}}0q?E*bbVrr_eKAp5Hfwt!Vls|&#mLTDdTtO zW`3aGprWno780SrNj&gA`yq9O^NMboJMAsK^+K(f`bX0aR0O*@=k_S24fw5`X`wBL zbXDys{zuo@i3Y=y{jb4KXJfA49LpHK$$GJVnBcCW+bk6Gqw(n-4qr-thHZri zD=?F9ZMM>^y3YM&NOmzHNT~YZY*ga$@nKC-bi;*Yq#Dz)u6Pa8hT*~v@vTlz(03YW zQe$(Fblq1chuqv1=P2e)vsI)M+hakROK-ibI4$T@Vf?Y0FR+R$jSj2G z>jPJKAbsFr!(xL76WyEsdhlxv==~;sDt8k92UJ5eI`Euqdcl|y=ku4XcgH**DJ7eXcdZ9y@t_H0}COFSwV*-r&kWx)3z z$PBOzT5{-&n>}hGE9Ul^iEzU#Ad@}o=PxxSx5&*RUptenEOn0h=0VS0C?a1wH^cV2 z-&`o9PM-U6CdNia8G_b|`=}`(CbV#rHlgwk zMA5b zJZN`MUulE9$MSk0^aptOUIBoI-f%GJ1beCGEef0n01pzs!GnMc&T<{J4WbAA3p`A( zhF#RZEBj=X@Hcn}h;y{5$qP5y`L6p#wmXJnuZ9q>2c4j6~uX^m`mEEeqn?8i@1o0)OROg|(?LHJfLZ)}bo-jC-ig7vam?;WRh z1`V*fRkvwjSDk~PHyyHI+#sAwp$&c_-M~5MmjQVd&=#6>wpW)0fF1UWSjN4Fb6a$N zV+Z5aYnL1tCGz3ji9#-=qZHQjo!dC@mUKo4L?o3iuz@ShICv0qBu_v;phnMOCP-%@ zY#_D8C<0L#wuVZIxWe}0EDqm;riogaN8()^AYxEP5lGlfuniX6K>F*=++ZQh8Gh`o zL5q|b$S6{(j@UL!E=0o4AjnuK1x!G%CkRjLT_wlyO#p~P%*#=aRFEi5K`}}q+vQ@W zj~pS)Uek_3FMjd@tLPCX7DiEG+C9qSI798D@#>=Mbk0B|R_uVsI6+v8rJvBGx1(W9 znzR*_;!R=jH?Q!yQEIzZxT}&Jg;lC4nTI|ilks6W6o1>hf$Q}NoJTD-n=L? zpeN&omz9KXB*vHa#)_rhf?T)QwvpnK^zBU2TGN-?&tH86dDA?VJIlsqORaHCL2p~> z1An_N8ONJesZ7A4xhbvV^-gomom8`T6Ttd{olj4Ypqn+)g}T9>yI$&ZXr&D_~TLsAW&Reph14oJ0k}qwT*XARm+Ec?s!Cg z+!zQf4cjEG$E=9%a{9^D@iptA;25;k!PO3%W9w~w7C#m4svQG|;{jA#(RnX3T$L=A5*xeMT2EehW~RO=`~ssvcRZXJdR)+vJASLrS>XJH-1cG` z1*LBKk6?wtGR|nZKdX+8P5y=-}Vz4Q`m-eHP zQzFu135Bu&q{L(!JcdjNMj!6=2QCtza7}EKWN=pS3*lITsBRO|o*ESgeHX=iO#V>P z<&(;A#_+Y{LdrbPZu%{*%0}9# zL>hmJt9Cwd6&#u9PjQ7#{~eM66n3iqhqwm(?`{j`jQl^`79~PC!B5NnxI(B5ss`eN z{=PyO=(#gn{1IC@Gdl&CE#3iF2=7OzrZ}^oL$(gv{d@X0#Q4NDN93o2#>WgD`mP8iuAfS;7dVBYr${Ht&Hm zYq?7o#?aEcFqlVhmetXWritpxo#i5Eywk#KIYPP{S{q3e54@`^Bxrk)4+X>-c!tFhav`ROf zj(+q@_xsn$>3E?DoUfmWs`ENaIym_}&l`6aar`c7<&5|{G0)y}uQ-#cfF`cb3|_S} z0`fVl@h#GQK%(V2AfGj3`a`Gm>;C9`cWbi3OZXd}x`Qp<`~hYN__E5~+<`A1!`$(c zzr+T=bU-e-%_JkM+O2+c-Tr-}%0c3?6*=0+rk$pj6*-Zc%zOKcenpZLQ-VZw}S z-$lmAZ{MW2{g7upwIKEZHz5m#!mrZ(G+Po;6F>R0K~3q0Jr|J)-9F2VC>wVHmW)Pa zn}*0i3h=~x_{EF*`eG7$_F22EHg8^Xo7-hWhOPJEB@6pzaemx{64td_ipHQy_Ew0~ z(sl14SMpyU(Uq0!9imetIgrudqAm7Yd zPG*XMj*Qw-o!Ct9Vvd$AcD&rps}$d-vkaF+QPoxMp4m}!G;221*<1DQpXJf`qwz!e zcq&hLUaIE$Gu%uj*(SZae8}0j!KK3AzZ6ixYjwt~$qjD2e8eNTfBEgm*Ar_J;n_Ia zD(HK{eO{Lz)8uQoCK#FK%45h)l~*u4^RRhMcgyj9IcxNDzD&x3$+n@2HwGdbp&vyW z)2p_ltu`dZyHxVT{Ig1-aKCTLW^0|Vny0k+aymc(_qC}!vf6#iE*NExzuQHkR69nz z_kLV^+oV1garKEUW}n6Wn3>yTp@)B(K+_yg+mZgMxPD6ARpfArTSO{}DS>HgJ)Qjh zRDQ!IB7fd1*{UZmU2-d9iDH%~SnQ7U`f(Up`6z~&@6!+xFg#@_9sZ%}(px~gJJ{QM zV#C9=mrsbJ%GXM=GEHikW{PH6+7~%@5+X64cW-94&-({{m=MtxPPk6L7nJc{pR^f) z@sc#N&?$8|I5gmlNw$LZeu#Dly*Pf}0Mq>2$miE)dcCZJNzhz)w^V`VoDGRk(|t)h=gkTezt$IvtinxT2YfvfjrOHNQ2<97H zbFIp=+*clD^o-wqlqBRTb$-RWH=cuHe{>PzTB?@)OA6VLUA=V1Q8uSe21|qOT?H|= zQgDQ$y;^ydj~TV{c-eDXjVUu!Y^6#bF!C)Kkq4!4T#&I7;AjAGepxfZAp7+7uS2a1 z;S*C+D}CVENq@KR%52qH4XdjkOS|tLeCKGe2KHSxz@gTmb#9KL(ay5&N7=V8IrONb zsyHeTRAXO>b9n>1?;%6fewfto0Eb!-;84pSiqaQJEJx*09f%lvBWs1A?B6Aw66!1E z%J32RdYo6p<-4M5x6Wpy9BAB{wsW?>T>OFmdVW#QbMh(~+bM`ER^oLZ>IM~bT6Zzh zj0g-heAVOd8Xn|xH_>+@f-`xx={$1p@M)mk%n#CnNNB!bx&ump6Ro}IsGPYc-^v~h z7)?%#5u6cx3BL^pY}v&QT2#GK4(?ZV@(+39qL7!^%X&!~Mk?-P#=|E5XX;v-Kn?kJ z>}1Vhan#rT)a_`Q%O!Xw6)X8pwoSPwqyKlNWqo?djvYpmWi%8kC!CT-B`X-)ac_hOVb-;Ky2c={&wa3b9H}E} zC{41?^Fp^ZOSXatC-8HOA-jka(5$=Nk~3W%}$D)-iX#gs5ZbxU&bsWK4`b#Y~S~`_t?(^pWcOD1nkNq4Yt?jLDQ6}dMwBhNprLGA zP62|+Zrq8QYiU9d^PSvs&o9}$O7(sD{%~oUN?qmtnOAy8v-aMZz4aieE4{)ohbC0$ z!KxF~=?PKA^)t-r zfIu+`y8D*k)a#-#%jY~sVh=Y9Mm8N@ucv*BIvf3qrEvWjk{;1{ zNBjGf6~^;FP+2fXl@!lgsC~-^x#h+Y0Zauw4n+6)=mpIL1LNTv?A9HHkQh$r1(s!k0znE(@^D(EULb%{wDZL zG@s|T?pDi??ezUv^ZSL*0jw&$_Qm6s%+3>{R$@6J7e(J6s$4=NK-OCPg9JR=U{-O( zQO)$T!~~N8V6B1j6u8)`0hVYoC-JNuJIO6nsOahb{sv-5DD68%U>Gpv8=a-3^%~@9fF}AiHw)F1zx} z+4<@^&c^2U!Of4KJx9j}n3c%~D?oPTr_H{ishqyhT@ZaH*~|Qa*I0ew$_?20Lov6B zhEzJvg^CX3fIW>*H*R`kyLxnl=@8 z*_G0xZY#6pBv}DKb|nX2oKBe`ZpKN59E*YHABeOu;+F9$AmfgaI_;hTjP%9djI`4S zE!5!KZ$_F6Fw%lF?7k?7aE5{I$}9X*9+80Cph%40#$0AjHObJB zMKGwL3*_%M41ul@m>x0mwxQP~c&^K!i=F^$IoK$&Bn~X) zE1XRB!7^*!B3TLJOpf{%iY{`19n`JrBpK#yc$J&bLsYyNLLd$`;9)5LlZ&Pb`hxac9<|asNxY0S$ZK4 zwpl8qD8irhd12?pAR^fQ6+)XndGgs|Xa^{HIAzWM*%8dW7;=RC(-Hfic~k6snc;$$ zpt?COZh^LHt^9ofy`@}V#akRVB9)q1cdyl8jH_S=Xacc%YErOlq>X!r%D$utR$v(y z|4E3D)oo|WJjaU+-+>4lqJ4nf9)DFf3MMI8BhSCQs5>@Dpgus6&G(&J5#VXfI$W;$+BW^Pnz$3>heSg4x@jFIj$s0>#(NdT_8V$9?yV z=(UKZuxUj&?}2X6;O9m0N44PrwMsPLCDIBvU~VUKm`AqRpz!i{Fp7lYmQmHWOgLIt z8HH~?hbWMUjFg2CI@9U-F-enaqJ_fS>F_b~`zF7tvp+`N(g_KRV^~8Ck$-4L;M^j^ z+*AW ze>_fK{Kp`#_Eh`7Qd04M*$IsPf7%J;{$VF*4rmN0l9sy$dx%#h#6CkE2RLlQdI00hH zlVNa8uKUl0Q@GV&TH3a3dP#H2$NpCAD{0~=qZ3g zfAF2?lWp|)tch)S`#jefYLQg&>pA9wFIAHVHUHS~*$Ft!4yNg>6!=V3k&`Bm=f{t7 zR=PU`4Dv-y*?eudv-7W(0snwYCzK_NI~ec}xXxU=Q1jxg-=zT`)R8#1`IM}~SlI6d z`P4m?H&L|*^gg7mcY{0{u)*gG!Cu#%=C;NB4hL3x{ctzo!@_R%_)R@({4r2*vQ)dRNuU3K zju!@2T5l;fs0F9$y_|M>^O(=29>X`@EyorS_lm7D_l08a*oe&Q@kclpqZtK=dlkDW zX?bJ1Mp7^P~W=1z$9jM8+Uv4cg)l`aeWW{5hTPub3j(pqn;LL+I z0s0x$E4`7Bw;Z3|>vs=41L}f;spXw`3_e$up=7TYDT9*EilC*Hl0u)YgwI+V_*y@= z*!ff`8M0J9iEO5*%9nHhXlI$VvvyX)!699A`gO+N$;~bD;zrev@w#rk}^LQ(j9i*-Yrn`ZiB^ zVi)p8@TdM@9{Lhe(#H4piQ#s0=n%)N9NG*jk62FZ?}#{aZ+_90Nb%8gl$9!3vFT@b zgS;OSv%%}kZYGJM*>3?2S+{BFRT+;1yvuJlwY$s9ulRqYuC#T2S!z`69rAJKf${Pc z)jKm~fcwWEH-|NRRqlWPS+0JBRnD8hdy$^+Qhb)vbB3HJ1%^ zW!f@d9n1a1EZ4$Fr(|WUXc|tSLlUb|6->mN_x9;QQVrsSA6glTqoL48QFjtTH?}G1 zF49diI~~H+pNGFDDZ@ZK;pTaqDo8nDsKV&^FB0eF9X5U7PZsj!Q1iO&fwr5yQ z>?{s$0e%Vrf`IkT;uE30dAYE=AYhCHxJ&>E@;|Irp8u(h|5yA0x_=MuhG9?s#~;w# zqV``0cfcI5)$$*MdyA8CxAwmV_prOcJ?uXQ_n|N*^Z17&XW0PcEbyel&?=tt7jX5u zgPdw_=-#jslQkUthMd6wx{N53Iw1pqmP{kVw!gq$tGkqW(Un}K~1 zC}i;kkQ;OH{hyGtrlt;}$NAUbu0H;IaG!Gd$KY=E$Kb9F4DR;8;LZY6x>r?{BPfQx z62o{=fWe(g?uW#`2lxBpI6BoRz~C;KJpT9KF6lXexA444Nbl0#y3Dhrg;w>E_gM}v zjK==Qvb(YU7tw8fZUin6KCp&M2y;b9SR3+$0|Mzbk5<3NOZfRtATQ2HT)N=<>-=D` zJAo`E!G#s}urm059oI4OL(OKMh~!O{XRzl8sL6@pTyNIBwVCE*RnYH}@t_Xw)=>aR zrvsT~D6uA+ikV+<*d_|=W&W1;9|BpZ7?{CNatP0G+5$>79;|y53b?r-c48gNNA|L( z@!Kq3h9OQg1A8n1k5*L3-Qb?tvK#CgX9G|A4LOa(oR|fWJO&x^xJQ@A%g`pZXtNap z5Cw5n)$9y;u=IWMa`f+H5>=4nK16;yJ_8e!HeG=fWmDJg&^W^FN*iO$&MO79;I4N! zy%Smoco&--A)^#yeQwzm3tVu39{{9tOFMZ5)*5od9T#3H8dcLDK{Q_L8a!$ciUGbn zE^uZVv@~1x+b=~~@>JL9v$C3}xos&fD*IyfJ^cng=-@KG$NzD!%(w~?2yw9}pY@`6 z`-oz>E+G8E{vmosgXMtfJx!c6<$Z>Q^X)O8*1Ah%)R^wua-9P7*7=W9Pz(DLxk=-tk@JE}o**vG zZ)VduFTFojl6$#x@ z7R8+|-~39m-%g#0d;m?^Q{iw`$LcEev zvE60Cz(aFH&1IG%F7M=zho)u#G3_ag?K$w!v~#%!`SY6TH|GreAG!P^HJ3FO7mS}D z#%hYF$?FTnXHd#isLcm1Ie{v%;o1WE2r)Q5qYb`HX)vu;xxq+X(O3$nC!ER#ACD?k z#Pw)(B*8j94GnMILVdu0ra&Qq{m<0gG;P!2-Q4*Kox94OXB-3}`fU-^%1y^QbU1I2 zxkMXm=9-EOMrO#9V*B2FI?SkOz8zE(FL(c<-(K(-H@ooa>|{dA zaEhAq=a<%)K%24O)uB|o#?k~3L5MUeD0U8pM)3+EjY&h?gN*yT#z$gqBaoQ8$PgPZ zu0~25NXQL*#%%$P3)4>WF!Q=Jo$tkDHMlDerAq9T7BJe~dIk~e&wutnY|cCmcQ^H! zw?JnJQ7DLp7!iUaa3BF9F}jink|&44(6niwFl1$N{30zvy(<&gy@#p5f|)Ou5zN%( z^eh63gISoVyIIDfeKes{@JyIJO)5t3T67DzdC+Bv3p09kko#cLmN-H3Q;LD6ZS}}g zkOA{9Q<|J95Q}RXUG_9x-M`!f*dyJVB)-w6AucIO(z^>p-$;E{(0z7P@thZ#oDCd& z(Vt>{o6FRUf!<)04 zt9m~2dkt^GgM0IfqUzbrrLu!@H%&%m!x#+_6k|!e;-vFhn}aQXk$WT-x6S!xCk;r* zP0S$B&IMKNm)qrnYQ>qVQ3#n2KD6DN{>TtHqBMTcjWM4I1^ZJxtegn?u2ZoT}FNbh#YTJ}74y4`R-9Fliawc38ipLpH73tCw{3-B8#nYQ_T(8_qB1r!=4kU!x zT*o~_E8`F;IAf~9ecj=S9nTgUy_#1izWxpD==s-&Hj|H8e7w5K_BpN^6wag1i*UKR z%H|yCiD4thgOR4mNi6d(&N&{O)CI^n2Nh=!EVYlfX$Z@ic32O3=38WQYvRuH2E6-E7V@BU);}K8_W;=RBZg~oC?pl<0&O9>CUiWWLVSt$Ivv~ImOFyrs-5_W{I+ZFONGEuT` z!6=rs6euC06`LABpRikm(^b;(e$KkAY^mWZ&q>J{s&F=UF2hHx(mP zb5Ysjjboia&jxHvL!r#O#)fB4|{ZvNXk{`Y=!wI#H&^L!Yp{fkgCp zsZ1Rx3e5%%`TqL z4+(B=pTo^}AY4lwBKZoj!nHblO8v;2h(!*l^vM}8s^fDv7>PISjK`Dj&D8x&rKHKO zf8=l-xA!xqC?^za znHxRB%-4~I>&l!kOY|^m)G*F#By%%#be%9i6Bx1udMb}Al`gL_MnoCuyYXBR@H9_( zT*#*P>l^#?kNW%{DTD-<2Z~^nLf4)`6IP#lzP*RdgAZ~XKWn(IvTETCz+EGAedC}+)Waqx^JwQZ`nW<;qp+shDmKAH_98{Olu|>O&HZMdiVxkJ=C}PF7 zljg`66u*uz*Kns!R4ExuUCK9#EVV8#3m23!Gom&bLzI`re>^guZbc<1@S#ZysKV~I zHf}!|ZO@6llqASyxa|6v=5R()ah&jDVF6q?_=sb^ST{SRymCIy17yBRgQ9nfl#nNu z)_P!jDB(f#aF90>cY<=)K4wLcqW5@Iv1AmlMrGpdFI7T^I$x=_x-4Yu$olpu?XsHZ zv-HxAuBF9?dlqxg9N_6{%|{ZI!MKE=@`xyvkF^{iI7J?^_aoeT!72F5Y6Jya+0vKI z1y|6plGje=cU1;_f;6KMXd2C%)n?OjJN)oI-!k^%R!x2HYA;$A)iY&g7OVrOs3q(G zL?XXgtGG37syoa@nji-e`OCmz+WkE$my0Z|tD6U$#MdD z3|!OE_<9G<)95arx4F`O;x%KOCGggSVy*9>B!coTr;oW}nd`g>St%*E+gdTYU02A^ zJ)Niz&DUF3G-8)~l}!69rH%y!_ws%!AH|4Gw0qGAddM&YP9Suy^wpP9!NMq(FCm^8 zXnj=MVbJi8JZonC!=po4a;cF4kq`q9uyvzc|L51zE~vc}Hn_{`BRZU%1eX#Z#4Xw3 zeg3dKTw4UC+%Tu>x1M<`A!{Z~m$zIB22XzO^+rwdI@8NCq9(_u_BTI_a~*G|H*Am> zh*Cd|)b7YPXs{vRF5e9^c2FkE5s~BDVu(OLHKT}Ykz;O}iQ0i}6YYbO#U^*7J%~bS zz6}nQU)|@1;V_DzhYw0=?#5ax7ScEND2R&9#ws%wFtUV4DH&-#j!K)`Vipx8;+GqX z&ym4m9N|;a6hEQ2o(tx*2HdQp1j%*KU@qX8)aZL1fod3pPQ@hH7;v)=&&lF@;s2v1 zE$!b=T7~KVy$GUKG4)?X5dBF1XGIVv%xeB(F?UZ|hnaG{cjai3f}1PNPVZbSH@@2I z08iQ@+z6rS55x?3u-En#Hyaw~N(E51VTm8{E+CZA0 zb7z(VSz0eiR4FQU7HTrmn=*78KMhuz%llS6xIFG}e2G1k(f)02YY_YPMYvbXdBJc3 z$1WH3g-h&2j=lW%RvYDqugR%cfpaIUi-&L31D;%BVuG$l)*nrw;Ou^b*GQNm zW8C%m_+DM_rcE0GQOe> zDH85yTT(1tr9gFZREn0TIB}}c6D0g$m@iP}Lkq(@SiDOB2kig};P{D14+sW6ytyjd z2l+{VXG{+e2sqimR#62@N3!!x7X{(Lmp7c($~?9->1I=VGt|NrnNvvlK+NH8ZC6&| z*6fzs63eQ(K=&lsHDSEk84=Ju$+^s^u0@e_-~()-Ku`9Omfs~?@u3}P-YxXQ)Hc&{ z%S!9QO#*xeZ%6h+pCozNrIg2$v4dS_*^e>^t%m1vQ+acB)kDS0N}s^bM0(KTF8eJC z#9J|6F&dT|`=`P$n7OtZ6Jm%QpMBkrh-OtZlf25C`0{E^$Tv}H zd+P640hJx;DtzTP>mQ4P>24J5LEKXVFa+uc>zXG?E)hmjx?;yQQ&_5AMi|okQ0M+9 z`l}yeRy)~Ua?grSPLaKhCcZ2f@-)(cIfNKlqz&!YOv1cJGX+=L*acqLVx7Xxdmm$0 z@x~?4+~$6m!6+ex^drgn?oO$DP3LT`H;rr#a~0r!UL~CT^tJ6eKwY#|B`S+A?6mEn zXlq6SuIB=GH+5<5s~q>&(ViHXr;V%VB8(f4O(VSr?pZvfeS#zbr`@J17>2wjy#%tK zlr}5*^jZ5jO2)>$J@dzDgmumDy?F`qH#3RcPVRBfn2mZdYT|m-Mf@-^|GR3?VCB?+t;jXR7sE&M}+z zN?3zNqV-NPJ{%vVRP!U*xuw=qA!`kb`jkOomz24qI!%v=*e%_DzMn_F`3f@ieanH* znA3Ahl-!P?bNG%cqO)Yal@1LsqfYz7F*Sdbw9 zZn=!DGIdrR3nirOh0o(nJn8KDhD!(+9b9WGo`gV9l-a_U2$k`K#7vTaIgBpZoZ;ZO zh+DST7D*gu8)w^6NWKe>ZmB$s{WB%@ez1xph;ad71VrlkDZw^H$=S6INi{CV6W@nN zyA2MGwzR}2*1&h!`=rP8x^|PD#x1!m(=v^|YjPprxlmj8}RF}us4G1%|XZD0%kxOg)5oT)8CDWk#k2$XtXS9j3h#g)c-a_bsFmG$S4RS?F z&&m3zuMQ)060j+gBUh0hK~axyulrymjQ5q;Y*d+*W+L?5^25l($dh{mBfTyPAh>L@ z{U8Eq=)gTC{4%BIqqFIZbpLv>7XGKYViIxu_eKV?nLz@4G;F!Qn%16tP7>TwRdAx#|A>K#z9 zX(|)T*884*T$deB{qwN24ox{xKO>IW+rK z`->wwU-Mg9~)$gKTuP}}Cg1(&+5`gdENy+bxy&j3juNl#CqA7Ds3>efZ?5m7QawG~3mO(sc3Ma+J!hqr^Y* z0gh+!UsfGekNJ0ei?(@Q)%go6piX1p0Z--Ex{sf`JCQ#U)jwhmLUo8mPb*U2K}Tcu zCuWUhZ_e4WKGIkeQ{V7A@z3BcK=QfbK%nxsx%5JomS0wL?kiT*4TvSx1q(93twGR0 z1Stysxy4+AWN?I?A5Ku~=^%*vg3X5-`m=VZ%nEYeR^RdO{baz+DN`RL_(2Lt@XijuiTi|@IE9= zrXd5jF20-@v&l#A9;5rfB|U##hX+$ztTvhIU>PrX^Q(GIwAV*?C5rvx+YBM$vUAHG zdrRS#WH`3Z@V&(GoF_*P5zJkI!7sjPmtI_y`j+UqsY>TCwv2SH%`(@c z^a_hGM|w7~-v29(bpzpwy^AKcdMTb0K_G4Nuc3BVBs|tFmz*N@&6LxivW|WTdXB%`Zi_%p?Jd_vZf5&HW?zRu+#x&_u7p|2;~z@ zlhdX~Sx$oJ$7p<-shT1!(ZRf|6Z|A-Gfk!S_amdewi!h6))@a(rS(8knpQFcb1qKc)a1&!KvS$>X zbbc?D38tr+w86)aC97Ovfx@QGMFI^6v&7z%S(Z6&Vu5I%CsDe}<#Z2aQ`+eCT}0cO zDnYICRw*$r=pY#tsh&s<4Qa0R6P#MT}`vmSqBbSxvWdnB+PQ?F%MM`o%=Z3BjDYg99%k8iRSWx?r#U<&Kke>YYH>c# z7;8qe$zpwl2(b*z4*A)T>l?0|l2C7lv#grQtDH#;B7<1}Q&6((-^86?fp81szW+)j z{=ulBt2q8U!#(FT>&1~j9ARPqi&5)jxaU)UW7IkV?J?Towh{lya7PM6{y&EMDeh6_ ze;DqgcUhu#&Oy7IS30Z;b=|35Etd$c;y#J?J=dPy_bJb`p6B0QdQ$k4N}FVzSA z{8=)Wch|DE@ z($F7me{E_ylzySV^CQ|Y%}q5@pA9SR9VVB~|2+K`fdNq(&>9dzY#ummC4G3nqAN^7 z?pJ{x#y?h$B!0~rlQ}Y50Dk6s{b5jeuxC+Qq9QuuQNQ!xm%4$)oKao}#&NOo!J=N6 z`!j~JHXRKus#dQuOQ1=6ec;xjUV1bYa>~gHXc^u9Bs`|WJ5!)Ie=ub=NCW2Oau`Fb zV&n2X8(?0RC)x%$oI=CwGG&f8=5ThWQ&RrtA(OC|^B~zl2Noj4)z2kzzXCQ7C}%Fk zS(X@}gFj#k=EYm6A_Kp@bj%5)c#Ge>I3`A&b3d4VCQgghJ`JAEfK|JP3s}k!;OoM+ zVXO)!)!88YbaXItHued&QoG>3*B=3jZ-JC5<%ZyFZ+j1=3yUWD3$_{B*h?+v#L3S_ z9w%A#`%3-(jF7%$i#7_N9Pg8o3Gh*Fd19&<>k6k6JU5cp)0RV(wHw>KbK47HOT}d6 z^QH%QM8{ zJf8N?sq9qIPHW)b!3qVyfGqd^r}bAsqa+1YQ|i9am>1^!Qg;o&DEDIR39ItcBiCyRueT{i`eNYO<5&wvJ^4E6pA) zhN8?$B|$;_X*_w3<@Pq$bxybVJ7c!b%z?_i43ad)uQtpBPp zI3rU)@F%;lEp7I_n|E)b$No?8ccl)66pKo+ea9%&^R7aQTDkQ2Q=rDzmK`h{;ZN9gM+rXY;97%F2=d#HfmF#6(; z5Y!m{r82`1h-j}OS{_fqKopzvPw;I%h1^bNxOxY#_$&{1kCXQV*zkY60 ze9XiP%{ZsC;0QVTQkq=P**-2Co8v-pc6!;g0K3WiaU7JQLG%IFGuUPFBnR zG?|{R1svEMyL7PF{j{x}<&(+{2lzv`3?`S=lJ?z#)CTq@ewR#Wdju#n4x|N&Ne;iR z=sH5p*w6Q0&*kpTHvG#9tf-wUUG>ELRl*`4BLP4VibqjVWtQvQR_b8aKSMVOyAWPU z!3TVtmv4=a=s6BlJ`SCMuY{ff^&#tCs{qzY$qB=^n;(VO7RH+fn>L|M;f);7*6Yzl z?fXNZ6^GQU!7t#o+mU}O8LRg@5c+#^zTd-pouX{me@VvqdPEZW`T1y|lhP^M;nI_N-Zg0;k8YCAu) zY)r1@c%#$YGkhmP3W;wGTNeibM}$3rVy=_*BRwtINGTqnSNa0C)#E<|-dYqxz=Qgp z_mUIOl)c)CG3ahOYLFvcT9p*XoFnb!Cts+O5|Z<4VoPs{l191;TCA2T+c>MEqVFR5 z+#2;TZ9$4CuDKV*TD>0h)GJmBvlNoV&)_ijpL%vG?+u%r^A_^(;_giIU=gHN3v1+y z(?Uh{;B6w!8ZiTvzsS+!dUnFDsm56XS)%91{yD)Mx=`n3VE19up%j){HONbU{Jv0J*HJ%+Nl2YVJ;kvxr-ahslextU2(Im!=aB4dDjkF?N2LV)nGX z2|n=n?XoxCkhYsoz?!lFrRqdl9Xlpm0vE?unquj&4w6{ijCbI6w_?g_H;D%oX9fsl z+R(KROI6}n&IN~RbUNNHh^}ixsH$DzlDu;*tz7$Y@ES~QQD`0o4*AICcmujnvaer% zK`F-p;%QxzL?Wu~1tVr3puGDi4TmXoyLywQQPwVX$V6jmXNY`j%%0KZ@L=Qw-lf9k zRKwMJy5&PzO49=alK|=49Dcj6-?ZRaEAIkE_CDCUTRyZRd-Lc qTp=?c%XiqYZg9-Xllc9PsurN&z$jJ`yWdH4XmM&bPfG>>O#cPt*31(M!6-zQP~!Fb=Y7xlz31F>&vQTLKF@RR=X0NPo^z9Itj&&b3UdMgaLgQIj0FG? z<#4?XgB<#q$AOHUSI~KsAP$)@B$%=}K;^JZez#iU-1qhj$ znf(0xH8nK^0DJP}$?557Sy@?kcXw@VZB9;3C=^;!QZh0!($UdjX=xc76N|&)wzjs` z*4AFVdUgBuZEkLEB9k>cJL}@&LMD^34#eEtTmnFFa&jWjSPSzDtOF|10b5^RPaqLB zH8oi@0vrw}#sJg<*3i%pHijxLE>5S@sRvXllUPtt5F8xr@9%GFYAPiq#bO@p?(W9N z#}i3dtOFKj=FAyF4A4f~B#>AvCN(`h zo#;RS90*hrHZ=tcIA94503n8mjXC6vNTm^2Bm$8{z{U`;4g@{Ft9<}~kT*9zXCE=S zTrd>T|xAS!J_Mhkk#2SB%V;%rO5Co+0!&=17 z-7eTRWOt0JYUrH!geR!QWcd%TfRwADm*H^}%PC}HR@TZ);>ra{{rPPRw5Dt}O0te~ zT=j~84qhL_xzh?-h)Rt4PT906>7u!;H|1LfkoC&ZBcwPab~=Cp<}6^0={GQ zudq&d^zjSY*)HWb)meD2+C;m*vLT#`j?h0kM*JMBNnYhtj~$*G0pF}X{X$&O6I_Y7 zb}2!Ge!V$)=jK+6^x8^b{zDcySYg?+XXt8wYd)t95MSf`)e^w6eOoy)2FH~!BoG_lF6JjOHi z1ntU+DxVgWRc8-ie2>3=t+;beexl}lZK!M1TQ|ZUyaY)!wACtX zbK%>4kYV1PjxU0Wczz4RIvx2^>K1u?J>uz!)QvJZheC{?=B&DSdgb-YSa*q^^6^TI z1h=xcR`0=jXYjXATc4KkpZue3o;AZ+^+|iq<54mvLu6|H$ErTq*blj?k>?8j3Mb92tk?X;+Z66??i&PpR?t7MbC$z3b=CI_;6xRH$45ww z=Oy0mrY4uo_SRB5JA?3#lKyTSEJL+n*Ru zg`zHS=IQ$9(0vTJ#>E%GEoUZ9HTN-u<8*c^H0j0CGcECV*$Yj=DoVQjy3c2K^eiq+ zev+9seKz<M)4{#^WSjaP{ z86g3`XV-_c^aCBoMW7RZtp*<%_QCM=CeJQJ@q998?pSQo!u_;|o4^lUI8}obDFfrj zaA)msqF|l;;T})dSy6FHPSMlJy6o)}cDMt9(#qSv<6HNzk9tm=T%R|1F)On)QF8;t z_;F8c^?`oh1&k2*naIUpZuZ>EIDb&~!}CS^=gvYk^9#J=fJesuM}?QJS==tE*L|UE z%N};rqlyW&2=sUqa_!^oAC#Ypj<;5?^MYJAY7Dm4@^L@gnq)S$9 zqJnD4+g0VI4(x55^u`4UQou>zcReNMHR+$GvO22@(y@ewLr@&PHP=wG?9AH3Ga*R! z^=KKk)7PwJaSDRzKa9Jt0bZy@tF)3kQi{oB9wX4N@vFmHs3ON|K;%1R?g8Y&DI|B_ zz@SZ}a`ILmJ`htN=Fbg%_7r&R-Qi@o`xHpcf-5y-Lyja88FQl6NDt{1O+p4}KNz2v zfx6Gml#%UZm|ibx(qq-iknb~YJJKb3hYeEcH1k*fJzpQ%fWj<4wVnRJ{rY9MtS657 zg*76RLcI1^qAZ6E4}z@Gccca8Ke$AvXhFQG;_e^7=}R^9@$)fr;jMm-kFu%PbS}+YXrmh zsvIPTS8Y?zSuo+T}Z1 zW|pv%6z;9{FvrDB0eG`u%xx2;8m}!oquxK=JN;&W{}z8k&jbEjG>X-x2=R_iHFRPu z!kI;>WqGd#1Bp%WSBY{e9|Oe~MMq~uZBdlL>z6Hza`=Fmj9Q&Ze@^GJ9}=_031_v5 zU4MgQiYg%InV?`%N-=dz4>#l&fAL4OA5m0GET)-_?u9y0CTy#4rh7!F)DI~wVl|V5 zoHH%|8*2#Jbdpuk1{8j64)@Z=oN;S7mC*IP=M59`SAh57?@?AKo`?yn`<12{3gY}g zGTbuPL5S1lKnhhvr;+?CL=642ngM(a|KkGui3Cz?1cBjzw@`r-KqNuQQxgpLlJCKn z{gS)S5T}iuNytoeSfccG$G38CNg_uuJVphm3Pn(#+0VM6J}|o|%{`n- zX8xLyaUO@r&~iwKTrvU-S1R;OlNf^)AEiG5H|CoI$+O(7?wDa2C`IM7LC z5sP0TC2CnRmrhc`%gPNOl2@tJD0wl+tI6aZCK<4EPG+GN2O$<>Qy@$J(_HetO^CBol?oOI3l2MKUnW{hq zUm!i^u((H-{~I{Jl5tZ+)8FTh&xNjT4=JVGQnfvzteDaIupsJeRygKoM)(2-_z$RzzZ{f<0z`3HjoEv+3|&D1QS_a}P2Y^VLx#;I|{ju7>~F zU6?fwyA<5nkTnoFprsGNBQEKARz-1_kY~|VJ=;x?f6)dD0U8cCf1k$h3m8wilZM3k z+S-KLwDrFla+Ot~f)-w=MC(O3a9rHfKwK!Wz}2f9o*d;CBtegU#1wV} zW197FJ{Q4_1~99uf=->bN{VGK)N^}>Ag1Qsuw%czKw}>b%Q<7m@v)C$=>y(^62W5_IsYPyhGK~m1p7Yv5=C{A$_jBUT2zpki;xxNlh(_7hTf}=!QzU5G(&gN zxiHfz7yDPeb|X;>34Gg8;I14<0yq+`;d1Nd7lSPptv-y@Q@*7id2*C4eD{l-ttHNW|YUORhC=(_D0cXb@}A-Jw%!EJ|9hFFEZKQ zoa-3t`lj}k<+k)!NJ06q5IIdz_2}ayQjug}c|d%p?w#AvZf`-->o=t?X(k_!;(IQp zq75pt%6u4opZOJJC)=as%oG~d-(%}j(nnuI5Q0Cn=suSD!0y;{yQ&+Argfxs(AcJ+ zNvZwo>+go)H>&3Fi7)FOvvIWFWV3i*=lcqg%Vu%NOWv_N{!iQSOGR>v+`YB#d;Ptx(tpVj^*hBNHtoYa^ntJs824k80aka`V1WRwRG^ zA^Ox$gz6At@jJ87i1+aC>Mt#bd76=Pa3{j9U;aT7iJ(Yc=#HUDm*si z{O+$0da_|#qJPx^nl+U8ICBPpXe+_R?9mih{0w%MgY{@|f4w7l`2tJQuM zH*NYjYD5@CPxQ7VI27qWuDaAKFLsz^-UlQB+{rRx;0g zEx!>JudPLv*#@7E@Q1V@5W(FnbkIIl_2RfyA+WUvSg+ zj$yF>6z7#tOGbf|;R26${&(=PnG^*$S8@v_`4%N_v0Wc5?%ox$81hKmG8J7Zn-Ne@ zuk$>tf;V`fuR3e{U5n-4bb;MRZW6h%$GZa^Q}zzHIwRJm5Z8X5?TTs|$g&3$j}i8g zN>Iypq0=(_6T^iIdqZRLL4JSVb5!1uFp=0cay6H~p>?tgJy>`-_-$b|)S6qGE=f^m zA=}HHG=8~MO$aZ)R@7ST%!i@mkqS;5_8*;Ecxw^8DDY)X--c33Yh7f6xKnUH+wW7p z4QZ6(oA35H47A*;>ptt_Sz=pizT7kpw%JO#6;S1+{Z?n3U*7l={i!b|5k%ct(txG`w|$%VHcG2+ zbQEtmx0orN!7;ARCZ-b(i+0!xH5BN&8j%`J9BtQ7)Z~`J^*_fmzeph3T{qdWI(lDa z@eRn^Tq|)r%ocKb(W)7{DbffQhAFK#W*E`%Mo-x?d&j;aV6iX+#!7soZ?S%>1z9Ze z^sURHMFm*H40#pPwz_xTL*~UXiT8zF?hlF| zaS%CO8qv?gc{wtLkS-IxRj-=J67eAbRjUr;S1#kM;|=J-$Rvdac>`Zc7A|KAC0CN*- K;|3#-nEwIS>EV?C literal 0 HcmV?d00001 diff --git a/docs/cs-basics/network/images/http&https/HTTP1.0cache2.png b/docs/cs-basics/network/images/http&https/HTTP1.0cache2.png new file mode 100644 index 0000000000000000000000000000000000000000..f7faedbc680d8458d01f5af18fa42263acaeea15 GIT binary patch literal 4695 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 literal 0 HcmV?d00001 diff --git a/docs/cs-basics/network/images/http&https/HTTP1.1continue1.png b/docs/cs-basics/network/images/http&https/HTTP1.1continue1.png new file mode 100644 index 0000000000000000000000000000000000000000..1c5b16c03be93373dc0fe2e4b9be3061ca8a22c9 GIT binary patch literal 3390 zcma)7c|6qX_aCFN%%IXVgedzmmJ+fhvKPiQ!`KZaA-h~E%b2lT%FTo;Mz+sr2oow7 z$><$1uplA`Bqk;X0uc)f3-j~y(IE6uLeM{) zNCcs|xVRb{8;KwyfJN)->aMM=p{bu((*PO^uv&>)T3W2>qfkdF7}3$u!otFgX@Jp6 zWDwB6G>h2E0ucZP;pi;Uz`y_?fQSST8Vh30u-MbAuU(yJ0t09V&;%j~ixw0VB(^eG ztpJe<0EG0EloS?~$e^Na(YB0MHiOL~QdulE1DIwIu>e3NMnpsq3Fs$Zk{Ff2AXUc@6B?=XHD*=tbWF9Rd3=}9kgxcHWD-L#wATP+&+ zZaTY0Z$JKn&fN!9;=hoWeN#JMs<|Cs0hume|BPJ>y9KM!wT(C~@fS9CSa)x4IJ+R9TTDu4u@zc^=7H`l6#PeY%`dyFL_QBlF!fRpOGpxnNp$ zu%FNN+W~?EWi~Z{wq1JJNuoI9g1UO&u)Un)rt5ivn?#TMd0bwiKJSI9d{MWVNcEot0re+~{T~5fq zMj_@gvsae941cmb>3m;Cmn3CIwz{o_GzK9*{ugw}dEoklR-C^0ad9yd?+ro7X0R1F zZ(}W9&Z~9yIlciq^*Sxx8cYmn``%hx64)DXP(~?zd$@VW?k?`nE~B4X5xOp?G%ab_ zMPXEBteql^1`S%t>2g-Vko*Ykn^j;0qUv1NWmaZni|+0>8=EjRKE37AMIgT8JVe$Cv$RNv#HrM363P+n28Oj*tv^3M^} zag(JVA6#Xwn|iI}MvHq<{(xtyKZZgyH+Dho!6@A1;(qVsDNxBjIztKvAD@-@p*rT4XS zL{505zFLwKiL_C)ntS#0;`j%V+7}M11tdN}?chB2!VdDV`mNJ=+5s%Ykr_o0{p(Y2 zVavy7b>1H52RsZXyye>Eef?~`em_Z;MA_k|0)B&$I#CC|5>bujzNl7XN}6 z5a@0Cc=nCTo0ltn<1Fq&cMXL975GE~q=W|q^S!FrfGzr|iR?^N+G#d%;VPMNwdZwy zR-$+lYlpPhCJy>1qi}`Ijm>(9X7cHW(XyRS7AGSL1y+oDTd%bG313EV8Rq%b742IcRfZj?fuizC5z+1Byg=mWh$G zw{#6T31Ff)qt!zHW~9Q^vW&k%k6{XYH+08a`vP)2QmdZVsK9-=ydu;`9$SZ}z5F5W z__p|jm{VmIQ^53bjwC${N)N>ZD)e$nlvHlVWmc_(P_oZ1OL`Fk2a0bJ{kl1~4h;Y1n#7Y$>vV zb{z{B6LOEbsA%0HAiZJikLuctx!U z5xO>i}n3kUCoJE#TN zy%EOj+^S@@!1U4;$&P71AaJZ{HF?uX%Rkg=P>;{A6lYX|;eM zx5Sfrw6{sDm0Uc(|05ZUvu9N7TFoG{EXkyaObi}*Zm&SnZ1!i6P>o+jUWEF!<$e}o z3O6O&;PPXxOTA-mSd7{y=fPLM6mLvz4~JAK%4OK}>^AM#-$^!ze?ubpWn}Ue_F=Zl zIe8k(EZv4I6{>f5Biyt}1lR=cahEBVCM!4j*dppW!k2n(st*j2_YQ5~Cb`%D&AIY- z;t;q8q5RWP!a}~c=Pi{PL!U|KaR;|E=edrVDukYt^oPVD@KFk-*|+8*qqco&`^>vHGy-&eMJu7{mH?WDQT!jF axh2#d<-S~SD5Lfdpjwz%80FbGP5fT7k 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 literal 0 HcmV?d00001 diff --git a/docs/cs-basics/network/images/http&https/OWF.png b/docs/cs-basics/network/images/http&https/OWF.png new file mode 100644 index 0000000000000000000000000000000000000000..13df90aeeccea027e0b0add21181cb21c7e26c71 GIT binary patch literal 33902 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 literal 0 HcmV?d00001 diff --git a/docs/cs-basics/network/images/http&https/attack1.png b/docs/cs-basics/network/images/http&https/attack1.png new file mode 100644 index 0000000000000000000000000000000000000000..0cd4926f90ce42ff39576feeb08e73a3015314ec GIT binary patch literal 12683 zcmZ{KRa9I}6YXFD1_(MxaF-#$B_zR}K=45Zm!QGjg2UiW2<|#~aCZp~!QI^ER+1c6r{Crkc zmY<*B(a}-C7Q)lhQ?+pK1sgFC)YH?mSEw2U0L=Z;1OS5i`}+X^)yvDvegtB5brpf= zM{E_?+uP^o=K%uxTUuND0{}q-i2C~ahK2?a5s?B704^?WP*4y8u?Ns7*h3)p_xC3z zCT=#$*4NjkrlzW@s+yadU0hu5t~RKss5m${Ffp+V3=Hs!5K2l)H;*qYhOMlub|;fk zQc{G3gdQFrPS+b&x~yS5JZxaLy@{~c*x2Wbp`~^U5)u-g$YFJL_1l4nt#Vr#85x`M zE!e;fbvfex-{0Yzo8b0Q*Y=+UDgeY~la7uK09hh!5usKQsFu~j!vixmHn!&BVPIe= zUBBV6E(HK=3g$<*Zf?rU%ZDR*03NyNKhqI^g4X)nN=izuj;0W8R@=jVXkWrUG$2m? zBBG+A2Chag_XZ;e%O8%~bgDxC?llZ52z;2VgDhzM1{m%U8!Qfr=xgO%sMdnWbK zi34od9L?Jx%~XU~d89GP57z}RY$ z8LNXa2S6&Sw{V~Uz-qR-IyBW6{>`{Jw4~T9BUAOeZ;^pn5I|}0aku}W+tXMGlw9z^ z(mluzAhgV|3IMztmXj1ycV9eSQH+@q1%zJ6JzFlD=}oa6>CV*agmcv2$M4IB@I&{5 zWAO-Hrwfwy4E37YWj?*~HEbD!wW`yEgoW(M)L=QozZ9ws8@}Z6|7YBHXh@(Ke&Pt1 z80P_KzM0*g&$a?QD$OTfn)5)qxSIeSTiQb*c0COZ{qj1OIN!PV!sE+5&I7aR7JHEs z$#7}7%yDcPjBx}ghMF2fDFiaCS*s{cA92VTn}OKh$=dtt&Eiyv**ht|1X?U8 zqmTi3UW5Fg<_TO8UWS<`(J6I&Ms3LK`z1^Iym5^~Xj(I>!s#grWGRvUQlav?f6MdK ze;`$D|1{NA(*tW@eQ zlH{Gz73pMvqhN0$Oq-Cid6YWj3E=tN!l+I5;#RxQaf{$;b|Q_@o#t`dO+}D48&`$l zSsyo;(wuGk)x2BWC{Vw=o47FPr>7P1Cl4$A_Qr=!03ujJWcFmw@p5|dR@cKhQ1g5Z zgM0<#B%Q5oIn|Ibr$U8`zEw`ZXB}19HXbuRp6PWLjSJUrauxa)s5zPdsl++2{9vaL z=>G^R^L&4zbY`757slbkso* zFWg#e@S1_~c-dhFa&!dR0&8{X%as<6?qB~-Dm#ll^B5l+d$Lpt{54VnSsk|3OZNof z5M2#dN;I4a-@iZ47cBqRCptD+SzAAZx*duz#UxmQ-w_UI zs8f`ZpnQ3Uj@)u7oUl2bH$qJGbJiQYU|YYLNhCL;2R_ZWUJL~1-ygkh@$Y=yxYJre z`PsmW+TJy5ckB0-mJs#kspR z;Osc#_qS@k1CI)?BOToe%O{n2b?Z zNQ3clo)Wj>wpJI}rIYYb9N*T-LB_b#fF3!O%W9t5nTe-^Q+oiXpn=01o-Ht$PcZ7h zACD}~HvMNW&I9eN29K`q6}+igp17`^cZS=D^TmTl>^JK~)zd`1;?=fOYN$CC$vl33 zJEG?_5JLtUrM^8!zen9fSrk+p&uoI#KpIq+tZSDf?_lJ4jz#S%rpnzy;!8xr7`~)n#x=_`#NYG$fjiRGJOcE zyo%84+n3F^6CwZ{PjdipOoB!U^!F$)L|xMNm5mcdU}Bo{i&Ap|cLiex^0py5L`ih) zafRHt=D{|!N_*CXNiu=>$<8iM2^Qy5wRB*EanM`CvoS7)wg_sogjApXt7@wdzSK`_ ze~*+W3)X&Jb>J>siX$Jjb|8aM0;;wHwKS2M5AnYznDohcd42VZhOuAItk$38v9pZcSBl)mQ<3Gwc(YCT%9sq(e|M;>+2~|((i40g7)z1=*@$JW<0VeYPc~+ z2J1|vuI*pK{fH>3p_ z?3liE_6-Nk&kH;)M?&1A3)DSRk~T}PK`EerK+MW3;U@8&wyH?p_(Cxi(Jp)Ki`780 zn6u{Ltj~qDo4bukUjhzVzmx`QnfDlDOOxY9>=+J1syYG|9WQE^9jiU=11Xc3wY#2& zQT|7sUNvLug3_ehjiLuaeDHuDLzECJbQTsBy(b^(-=|K%2_}7qMbNP;UK&>B($1=V z5oMsOs<>Wmh%_L~ttz)zKK7wGZGbyVGUB~Be}s{r^j?-63WJr9M#X>xt!W;q)!Ou5 z+>|K{h)%r-^)dyoxwI2~AN?`MR3&AmESQm_p+#ER@g zh8;JXWt38NJF5AUaPepUpk$R1O6PVlI<Va9#rOa*7IHutzKEJz`mR3=aesQ0s_)5_D`m}9(PeT zWIh_i$sNZTE7sG>r2S6V_mlrl`q{Y)_UqKTus}1p68tJ3c4cf7_m^iWbW{S1-E&^E zV)W#o*%3+hSy%RvDs$AL*!8%wP5OOUf@3Tp8h zak^+RM9!KV;n>DjJ1(~lcI6`Ze3jgs&(N{8K<*osb)8sFr`#|+aGA^34BxIc8Jq}e zqu2f?!!JNC?HUwV(4f7>OfWcsFM&H3&uSk$c=_ieZA4#upqKbYSlcg#`G=S`=`Lf9|Dp$+c4MVtcpz`JmTD$|= zk=c+&z#?fNPHGOyF>pE=+~@pnvFtrq?c_W9+-&v27^^c-)je!tqktlf$8+&FOk*y`=V^8 zsk0pe2~U8fL<1QfoSCnU>jyz!=w$d)e*`hSOAMz7OtJ!{e#J~@*p`n2GBEQ)syI2> z?gpVESxuK#B0E6!x>@DVr@kp)tDig>5qaW6 z#6Q7W=;T<&0uE+?vaA4Tyk1wLTjy7uRl(&D2)cDX7;b34BUCY92zXWe3iyMNF^#p; zLE#>$&|9^Mz{wVu=W#W76Aez|@M?cvG^S~DguoST>$83~pJW5HL}UL93%}ou5r>l~ z5dVBQcL_kmIRhX>3QK+6viX)HMq}$|Q-J9~6j!P@?Y&E=ZmYpYO*+$8Waq`C_!Qik zN>%_KDewzy4Gzuqa`xjxFaJ)E(r=3-?3aM9cZnNk>^2Pg{3?N9{yY0`=s^Z_p&65- z*x;3Xv_A1l@Xra8)-;DOrRH4j0M838Ls5+yROOrDi1*|nvMt^eb&k^vuV7CT>sU(| z>F5s4$ZCgAYviUws|7J&vLE30L5A}Ykrb+zH0A#A$gUvWvxULeYoHE&+Aoi#Qr|Xc zB&)nxl`pqE8I#TrF=Z=KE2WV6^oNuYlbs;H?9?7CHFz>D?4Hfl~lpD zD)3Ygg|Av8!DlK86Yu6t7#PbLYq~FQi%$eHQM~~yKyDV2$9I{?;wcnyS<4PqePs(p z|L_(Xo-yyV^UX-XX!FcN|Lf+hWcv*%wq#2@7gGHT%=)mxdmTDL8xF>0>#UNXIQTs# zGDJS{lRJ=48J%9Q%M2u#3x`bM*7%Xnm1WVkx4hgw7evnUS3J=~36}YMi9$K5Q4jLL zEHpM9VGW0YOnFNa3D(%P%(k)zM!_-N=aXMj zP?rt%13?Mq-(@ik7o^7>EsnraR5R9Eu$n3pBOc^=l(&ZUzwo2l_S#I|Jt+g`8n6jgxY2l#SGBpJf zAu{T9coP_5!e2o27p-t8Aec6Y|{^ZYmG0%In# zO=Zm}#$*_V;H>CKys*HlY~qw;xS<+JTha%JupK3X2!)N!2s60j;0t9; zAJM2Yj=5x1@K)nY*a1VyXQ`2RZoQTCj;0|kU1(Pqy9IIHH`zCj?crk_nEJHgm%GEO z%8Ie{@zPLEb#$EWq`?Dcy11ao5G6hJ@D+J_4csqmpA+cZcJF)F8Bk7O;61$qj~~kb z(Y>vcFuQiBwqLyh*G|tL>&DEcnvk$SR?=4mVErHXXsHuyMi=ZKF>wmzBA%(9ohJ?B ze{F-W>Gg8Nj#X3$d|_|@I!a-vF3(G^1|aw#b6HOR=%o*#4p6QV?$R(Y$(EESK{7!b z^R%~jmcMHwoxq#|BpdB@27o&+XFA$(2bTVA!Aqir?yFdc>bAAq_xH>1E-UOpjXyUV z2m9t2qH^Vi1ek58wg?q`x17qhJI3_$$?*Tx2cpsI%6t@pj8PwFFheX}n=@x+Nx1s7 ze}OZwsf4|cXMJ{9AdFxIbwo1CfjF4L*=x7s7#)uHof+T4)x5T~s7)+ea{ED}?Nue< z6!^R`lO_WXo~BJ)UMy>ix}ZMcVR{omubf?VC{(hq@1f5>dE#9DAN#&b{#l8D3c!HEXBYP&S76b-+e59fKi70r|94Z zIcacoP2Bzg%;?Cp9a??yo^lrz)nB~jIs!9w zyAdz-Hy!NYA7)-SnY0+xzAR6^WEHhqmdA2Z}d`j(b!D&r(}Ag zbi_XJ^(UZ7LRgP1N$~XE29NN?{x4zbV_dJh=|v_|bo)nUk%0bQ(!fx0jGS!jwCvCt z^~(X3Dke&4CM4WX9>7fGsURv>79z)e!<0!~1F^Lc{TU|lU+*GCb1yt}L@H?wsPaU7 z$6x>WRWoE%2J+r<0S|Gv?G1#64(y#tv63mw)p(o1^gKV9t__cy#xn}b#B2U)6@utL zlVWGbHr;xL>D`TbfO0RWAzFm6!FHBEr zhem_Mb)6=9*9yfEPh+B*IW}JHhkz9}tCA^9H5@nDQoiJ~(hp1Vc5fGV@V8^gKH3exsT|a83;Jzc zOAw1o&_A&nE1X$eq!}<=Uih2$GbEN!$#J4K64SJ@JZ93vnAU5k!bKib(^-W|^H*UG zq4?@Ud4E~gYr;VZZik5WmG35hIR)B;(a99PRpedmUAN1zApMY}YV*a4mQNH{*BTt% zoohz+v0_T&qruCwE>7>B6cnU$YZ z&jgHI!1HLWc9po8Xhd}%8%gM9NWk3ji)u!$(MF+;Ewz%PArzun7h@{s-+;V=ss{RYz28FfBTif z4?J|*2!YUI5$hFF^eve>6GPSibMu)4p8$o3ht^;aWU$Bn8=fSm0PwHy1JCY%+ zsr!7v;&L?x*><^^N|i%hir|i#6VjgZ#*8I24QKy~=@-e-VWRS6UeYJ{Z(p;!KAaO% zyiX!tIs__l(T{YcpnY^qjbonKqiA#6q)&o)eW0HXXo1TG zz43s1x`Lz9VU9`Y^7U56XJvkk59b=rU^z0QbOS@41p{^3=w!|IaY&Am*`{>lb0Sln z0+V7{u!|`C2jTORAl%_a5|Jy(D2_khmKof>1F>A0>0BGTr{ID``Z>t@Yf7cDBrvv% zj+lFJ0zi;{5ixi2*d%+upy}ykicUTbZLlK;%2AUJFgLZI{ z8BCG^=7pL$2E)0=oTS!#<*PSKw|K7u450(A1tG~J$g$ePF=|y#$3UC8g4B4*m3vBv z*VCN%)Y3H8l*}<=^j`!8PpcQ zjY&aJ99b)v`u>CWje|RBA79GluW1afwvpyW0*FXSJ~7sev=lAueHv;Sc-K|IDiO%kB+{bfXXH?3$kieGgB&-=+sGZHMdvJpu%L*>o|d!roNo zJYN~UoCM&E6C+P^tC?NlPYQx$fmB0jeJnXQGD9%q#j*lJ6xZOk@N40$Qy_U8B3pI` zN^E-s6y*sHCXI{^s|;EAGoCH;<|9WbxglddP*hBz>(v?XrJCFjbdlQ7|K%7OPpgTDUy1jrL~;E7DWC^Rz+&0iO4yE~DyQy-rqw_q5NZ(H}M5gTjVVApIL2!3CcP5te1 zt6-WrvncAlHW0to?0s|nLK`p1yDz=^GCPj^l{z&C0bTLCmMY*LvZ@ZY5B@88I}yE? zl^nHRQWdVu?puc281J{%S(8Ka+{|8?aaIM}ZAh|F^8Z!Iw0o6eb*N1*mv((5&oejp zG4u9g8UdAbrbq;a+UY@XNaZy@Xj?C*`4)1)l%7%XMIa) zn)qY)LSCo;yAj~UE~Ge4ie}ONlqdoXo>;JFXo^PNg_)>)iovD}knF9WxVD>-MSbU- zyb0BI=sgKGqWj7rimqUc+B|StN>ScnT1cuTytu^LjpzbhcUfHgfLKeHS~GKe<$je^ zgZ}wr1Qh>W%g1TAUGi#kOK`?2TOYTZIo0n^t$@7lDDpzY5wUa3iiTxHr9N+Mvm0O_ zRpCHYNlVx(aD8@*2WfL=X8&HEdR12G6!-yN1bTA*Ak)o@VTb0AC4Uy+Df)v zVuAn>5=grwaMQh8IK2l51vGBY{xPcmI`Q@wq~IP#z!}YcgpeWLrK|^E?eC5&o`>aM z#q(>EsS$@RY~Il@OC=xbihc0;!?^!usSJ6kg(PNc=hlxlg5)Qss{Ar$s5*`yFJmN- zNPo(a80)nlb+R>%gQKk(ebRvAtL8qW(z@GXt&Qr|hG{mck){iaZMY4sJxhM4BvWt# zSs$UFeD6QiKHAXn%(B5I?|R~N|I_LYw!V|`M1P0(LQs)R(H0kB=kQ2jxVwi#0f2I} zJV#x{{PpaP4*!=nAu*A3w1+a}itogl?(A8ehtL0z($VR(0unF={NpgXvKxE!+;yV@ zGQa*NqJyd0_N+ne*PE)wwqb9f z*XxDC`T5}L(V&s8qI%&7aI`Yo43Uk;-L#nX-t0S>n!8vk&MXXJF|v2_@ay8o@h+|J#SygSRUJH;Ay>R$~Y*TfFWmAMVJ`ZGUAU(+T- z=bblJ%YK}RjmTtIEH@O=8_>x%@M{$`VM^8>Jt7L7P;-cIWydDIvN7JtgljANHjIBL zEx!@DCtq0)mA;1MyV{R+e}z`Bz0ODpby|qU7(T3ZV@pGLMCYM-tF}tyI3voA(2Qc> zi(gZu@gKd0(|V024A~n_G_+aPm z^Hx*;+e4ZEJA8(q^Lgdod$9iB2MNvB^Zljs?oyyrU?q5`#yV#2XqcFEvc*yNr*KBy zs`q8G$+moysJ76*2P>CfyXTN&y=65>x_a>C@FV8i%HyI|V{#zxDq?khU;fHjmt+>y zdV<*@%VU=CaDxwaOblcUh1~-N%l9JzFg^D9U zjhoUCo8rxVhyE+{+r6&q@zF(F_p71m1SZJ$?4OUTSEqV<`@eA;He;pNVdQ$W8Wg*t z2PjeF_qlyKZ|1GFA@?VKPI*aVH6;t&c*Ff*|=zu)#>%YG}poX$1I3tc{LWC(N* zShD%?LBZMR=U!#ZG+l~4+L~~V`O!6Oxi=LVA zPwQ2uj$hGU{+&oLFU$;c`Ti*zvtm;qve^nXc2b0VECo7l?h9dQ+$#LR+K1@{G;az+ zlGQ*58-zB-D&x(1G8q<~ni>ji+o(?~svf8weNu4tA~xRN0Yy^8&RyXHG3|~FbKtVF zd;t!Hb=VQ>39Lb55}qK!*I~``A)j#C&!~}72cSs3cnWxb#K-fz#R)(l1(w84xbpI7g21{;&92i z@{&i7#+H6e?SCWx>R-Vd`$5!Y0dUDuWWCA%JVlb>sHN*-i6eXRiY@lqQ~qG=%BD>z z4Q1jbmjYqcJ`}x!l7s(we#mUc4#pCNysR_|OJ<}@I3{e|d=2r2!vK&ODh&-jZDh!@ zVl~*G4bs9!qpk?iTTy-a`}!G%^9suug3asY|$g^d~4QY5H?M z;b4!?Wc8W-_&z^mdPR?9Ohj^+o47G|0|enL<3*gw^XTPgtm-7x`Hv0L2LlSvSX7iHlcj9lKcRu4(J6xvz8avL$Uo^Bwi&J^wmJ;ue6iyF)*&{Oh(q>>X^lrht zw1adM@|)37e<|Di3&7}CaHw#ABd5e5NHyfn$Q&a3pCq}3)7i2??i!8Yy3Rz|c<_v~ z1N9)DcY)F3B)J9rdjA!-EA3!aA}M z%=W2QbhW?2ddh+u<759LZ%II-5NBf`8Bd|yw-5YsF$z**<^{sRxVB+fMm-XYUXQ?JNJx*O1>?-gB$~2*N$1cYW>0A81m2_@V4_0l{Kt220?+?A1lvEO@_fk zR+qz2Z|CzH=F;7puE~3)pYUShZ1O|tlb`Q2`uY{53@i-&ZM$+X>xqn^L$BZ%ufeS0 zT&ganL%Zq<8j)*(lYPY#B#YmZLi%0S0{JxmewvrKAjxc0!T8dO=QofEHk!Sx2570B z>k$Up^<@)iUNCmR57!RxU&P@opAesolR_FSG1qYaY@~B;nV>|2uY+{JJyyxPE0U0C zL;uwo9GF)OBh`<=U3BgXFo^D%J(s32cSdQvAUNvmX7u2)@AIju5?80zt^qtv$|i*> zOzq&0Fve4D7Wz?8x2li^UdSl?txg1EajHzAl?wQS^#i(rbaXY6NQ22hjhxniw>nZ| z67MPx#_q{Cp-m$CY^yT0u+^mIshHpefry4DPgKL)Yi7x&%P`ZdPLP+8l#Wo%OnIrA zwbdcL^|yJ|f7EV<`FZ&21vT-i7jbV(3oV5gI^K;X3CI_EfoRI?A&2FSA3d-Qet_@) zJ(ZMs8zRAt14Di)yeJ^#uB9zh!yqc-=O^?j`S-Uq;bph!31zl=OG88N#{;N=QK~xr z@32c78C$*IZ-!tLG}>kh(44G!W`m`q3QahBETfjLdAf_)!*El4K-f0eU8@>jo2r%m z>NvtWX>YEQ+GEGwjhFaHk%3CP?d{$5{e5SlV#&;eqK}VBEOSO&FCo%%*7$2&+c#^; zVJCVW{PdySH(H0LZ{EbG{08wMP_W?T+`{sW-8eZrl;f!)jl&OcNu&?NB3(VO;=y>d zsN=?M4Bf+?oa7I4@HKJ;8}cnUCkfb;Qpl9sbLz4fTx{H+)|aN!>`)X-|xgm`qI*x7o#J& zr&d~UfY?|rJJg)r&Ew)%m>!Pw`@^b+daPWVA0TuG!gF=^8?OoGj0zUDiD9=rusUu@ zf6~~!-npc!`nTNHqS^?#ldl}s!qs=%a8ts47!I5SqH3w}@UZi9(D<@_Q9GH1?@V*z zv#@p{&A5Y|oxCwIqG1Z*=s;ZlY=c`%3K0$hU0DuMj znbt(`c*oOcOiKMU??O6=>8c|)-1PX2?QM z3u@$EKp+ zz^YUe*gLPJy99{;OI3cedv+m_rc)vKtfrQdfyjW$#@jSqdJ}S1B_9VGn-4oMqKF13 zLNSBIk+a|qQp216q@W;BFGpN3IR}4Ds)pqZswm|0>*5wcJ1-B35K@Yc177f9_sLKz z*oKEP7D}ocFDof7-*PENj#qp3X|0ZL&Fy6AqLlv@(!T!j##9?_if+2X^^W$XTMUE- zuw@k}r+FdTnm~l7ZDZ!b>puqnlj%G`B8I=Iw&d2Mu-3&4}7Xj>=Kryb5pk?Y-K5S}Y=3ICj|mCv$%rR-W>E z#v1z-DQV)PRAf0leWN!MQeA15;pI7m9m+Vrehf)IBv||ofO=rU^txs#{dh!ff493~ zn4j0TwyJK+v*bVYP+9af)z%O0V0})QJ|`0>wqP;+$5{q`Cx%3$I}8N3zfg#B7Ortd z7FFE?-Wn}~6!SElcTQeS$(_l^pH#3iOeOswZvvMmk1D@iK>wiMM~rP&vJ3(fBPmV* zG2!WU;&QTNTd|;Fd$uHbSy>=vwedJHgXClk3ok)b4I8seo{H2G8i^@pI2~^Qku;I5 zWZVu$yNqeReagSspusSC`nnNPqSxVX>Ho*|Peu%T;zR;yCW)aE9Npw-aY^Qkrr4E} z;@S#3#BdI_!f@4UT@&&^>JtnP?&UR=mg_s`sJDe!kQ7uY0Ka=ui*9#I+8QwwP{(1> zt31ipanenH4RaoJ)w)nH-T0J$6&IY9+^uIc9`Dh&4x4BdcO}&m6R1iBR5f;YV_iv= zgUe@|-QNh?{n1=>z!b3I!&w*vE9EYhfn(KdLqQ#q#P6D?GZLN-Q&+pN>(QlF0G zcNVINWtYu+S2^(roK5y3o=?O|IB-i-VRa1Ng{%^94b#4jCw+OhCO~3h9H?7&5=V4T zQ-t@)Hro9%uj!D}sRQGPVl}1aBZ0P!j#6Bo3QHwBXziy8B@&!dF%tf9&6J&Sws~sm znM&bNx@PGO1Mf66yw?*723mAz3v474V1U-!^+`#L! z0+UcX&aG(2sL}7Qb*E!N|2G=BrZ=IsIOfnhdFh%McZfR*b0;VsMeoO4OTeK$gk=SC zEN>UVn5z7IUyZ0GHoh1>-b~6Ge-pBN3hP#^epyYd{TQ_X8a^F4gGCxR8$AiSspy)l zc^g^&h4N!JEhot?g!=yl*W6P$_VKoeN0ExSs#bw(KoOAk58yn|u|~f*_uCQb&B%Pq z!ANT;>jNjJpA>P2iO2Ew=XQLaInab!0r+jd2nLwpGeNp*uK+s(cego1L?}%7SPbH> zb)ju~@qr0aY<`>U}y08%sIi&s|X~C?W*bE&V%CAtB%2;Ni;R?kx33xEdOs31#;Nw zdYyyI@qghyqU$sJp+WIsMbHf+#xVBGt&DrIxI2Tt^T}X0Sf2!3(vfV4$%>5utr3<& zO|mzeEP z&rxIg3>pmv72EW~M3^eV!1Vs$({ArCHqBU^GHShna9O9ki^+j9bKd9sbkk|joF1lNkF%+6uedtBmcHspo+d8T*t8}? z-4G*&_17u0>Fc|Sa!3tzoMtnRm&;c(2*5nz2rTnPt}gcobn;sH-7g=Xlc6fE3Jd1J zj1hU1dL&>j=74t@?d!BFdsXmla^LmBECjGS3R*HrwKWbPn}oT>%v(!lAt#1k>cf+G zahXhVe`{jsX3H)%7EWPvC@m!IK2I-K4R_%O%5BfT;RBV>yUeZf-ymi}PYU(-MMBAV zb9la~;SAzfmhRncM_lSGLfKrCxn28P*>N1bMZuhXzFI%tEpM*i>j|AE+%vH0ZmU#Z ztrY`SvEqmR`0CqD0HLLzPYrP^`#n}%I@Lvqd^-LS^|_NmK4v`5ylKO9n|&5i9@{}o z^JBPm$kX*xY!Fl5)TuH(_ac4OR>$G;Ixh~w7UTqzhnYCL&|yhqh_3-vZ5>z)d+*Zs zwvtu08}{T=F_$6?_)W#FTd3bi&mGpzfTGF-ZBy1DE#eo#f@Oh68a`4$*D{lI=>3T z_4V=Gj=Iq+d~foC-51|g!}v|JZlAkC3VAf_BfBLd1tQL1c1cxdsD1#=P!OSqA_B literal 0 HcmV?d00001 diff --git a/docs/cs-basics/network/images/http&https/digital-signature.png b/docs/cs-basics/network/images/http&https/digital-signature.png new file mode 100644 index 0000000000000000000000000000000000000000..127c7836482dbcf795165e64ad3ff0e328b66b2b GIT binary patch literal 5402 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 E0HJG+VgLXD literal 0 HcmV?d00001 diff --git a/docs/cs-basics/network/images/http&https/public-key-cryptography.png b/docs/cs-basics/network/images/http&https/public-key-cryptography.png new file mode 100644 index 0000000000000000000000000000000000000000..a6c4143ff7ef5af9f4e2058f2af2c496d736d727 GIT binary patch literal 18241 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 literal 0 HcmV?d00001 diff --git a/docs/cs-basics/network/images/http&https/public-key-transmission.png b/docs/cs-basics/network/images/http&https/public-key-transmission.png new file mode 100644 index 0000000000000000000000000000000000000000..008da8c1fa6732754d34476a118ad4eef1c4e481 GIT binary patch literal 9874 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 B#}fbm literal 0 HcmV?d00001 diff --git a/docs/cs-basics/network/images/isp.png b/docs/cs-basics/network/images/isp.png deleted file mode 100644 index d6dff446171ef8c1668250b7ca4cfa87596f01c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10054 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 z 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 BIkW%( literal 0 HcmV?d00001 diff --git a/docs/cs-basics/network/images/network-layer/network-protocol-overview.drawio b/docs/cs-basics/network/images/network-layer/network-protocol-overview.drawio new file mode 100644 index 00000000..960c9843 --- /dev/null +++ b/docs/cs-basics/network/images/network-layer/network-protocol-overview.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/docs/cs-basics/network/images/network-layer/smtp.png b/docs/cs-basics/network/images/network-layer/smtp.png new file mode 100644 index 0000000000000000000000000000000000000000..03ca5c3c5ddaa4e1cb665c29972452fedb2da6b3 GIT binary patch literal 15488 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 literal 0 HcmV?d00001 diff --git a/docs/cs-basics/network/images/network-layer/transport-layer.drawio b/docs/cs-basics/network/images/network-layer/transport-layer.drawio new file mode 100644 index 00000000..2222546d --- /dev/null +++ b/docs/cs-basics/network/images/network-layer/transport-layer.drawio @@ -0,0 +1 @@ +vZZdb5swFIZ/jS8rAQZiLhtKO22rNimb1lvHPoA1gyPjjKS/fqaYACGVNqnJFfg9xx/nfY4TEE6rw5Omu/JZcZAo8PgB4QcUBL7vxfbRKcdeSZJVLxRacJc0ChvxCk70nLoXHJpZolFKGrGbi0zVNTAz06jWqp2n5UrOd93RAhbChlG5VH8JbspeJcFq1D+BKMphZz9O+khFh2RXSVNSrtqJhDOEU62U6d+qQwqyM2/wpZ/3+E70dDANtfmXCZw9b799ecEvn8O82Xivd1+VunOr/KFy7wp2hzXHwQGt9jWHbhEf4XVbCgObHWVdtLXMrVaaSrpwrmrjINrj2LGQMlVS6be1MKdAcmb1xmj1GyaRmBHY5jZSSNp0zLrZJ8u6AVOVYG6bZe1DIaANHCaS8+IJVAVGH22KiwZe2E9xjRnFjlM7Yg5XrnvLKeLEJVLXWsVp7dF9++IA/AeMYAkjC9E6RfceyghaZyjBKIvQ2kdkycnWbeYw5ibXqoYzIk6iUhS1HTLrJlh93bko7B24d4FKcN5tc5H+2B/eWQPgc4QfgA1jPMe2WmILfLLEFl6LGl5Q+5F+v+otygkDdvEWbUkURt4tbxHxZjjiaInDH34Bpzjia+GIFjh+PlwXB4+A8PASDhJscRzfEEeY3A6HHY5/Xm+xyScAzv4C \ No newline at end of file diff --git a/docs/cs-basics/network/images/osi&tcp-ip-model/TCP-IP-4-model.drawio b/docs/cs-basics/network/images/osi&tcp-ip-model/TCP-IP-4-model.drawio new file mode 100644 index 00000000..b2a4c3fd --- /dev/null +++ b/docs/cs-basics/network/images/osi&tcp-ip-model/TCP-IP-4-model.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/docs/cs-basics/network/images/osi&tcp-ip-model/TCP-IP-4-model.png b/docs/cs-basics/network/images/osi&tcp-ip-model/TCP-IP-4-model.png new file mode 100644 index 0000000000000000000000000000000000000000..bdbe1c77d7505eee2ee1aeaf0a646bd3971fd8e7 GIT binary patch literal 27390 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 z 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 BIkW%( literal 0 HcmV?d00001 diff --git a/docs/cs-basics/network/images/osi&tcp-ip-model/application-layer.drawio b/docs/cs-basics/network/images/osi&tcp-ip-model/application-layer.drawio new file mode 100644 index 00000000..bc0d3828 --- /dev/null +++ b/docs/cs-basics/network/images/osi&tcp-ip-model/application-layer.drawio @@ -0,0 +1 @@ +5Zhbb5swFMc/jR8rYQzGPAaaLFPVaRKT9uyAuawGZ8Rpkn362eCEa6VVapJJVaTE/p/jS87v2MYAFJbHLzXd5s8iYRzYVnIE6BHYNoQWVj9aObWK73utkNVFYpw6ISr+MCNaRt0XCdsNHKUQXBbboRiLqmKxHGi0rsVh6JYKPhx1SzM2EaKY8qn6s0hk3qrE9jp9zYosP48Msd9aSnp2Nv9kl9NEHHoSWgIU1kLItlQeQ8Z18M5xadut3rBeJlazSv5Lg234dHplx+Al/lU4NHjKTnb9gNpeXinfmz9sJitP5wjUYl8lTHcCAQoOeSFZtKWxth4Uc6XlsuTGnIpKGohqOqpecB4KLuqmL5RQRtJY6TtZixfWs+CYsE2qLBmnO81Mt76ETHcdi7KITdnMmtWSHd8MB7wEWWUnEyWT9Um5mAa25bRNTGI6xHA6dJgdz2Rv3kOMXONITWpll7676KuCAfAOGM4UxtIFwQL4Dlh6+ntBGgUCMuWkQiGHMIZBrkTFRkSMRHmRVaoaq9AxpQc6sIVaAwtjKIsk0cPM0u/ywxolAPoYUgihASnXmpKyIZmScq4Fyp2AWv/48f2qKyclMYtnV86GuI5r3XLlIGvIw5/ygOddr88DX4sHnvBYXRtHmtrzOBK8wS6+IQ4Ehziwd28c3gTH4zq8Lo/EZSRx5ngQe4PwLXk4cHiwuHfnQaY8vkVXxcGgAuLN4fCxh+gtcbguHC4P+944/AmO6PkTnR7ecLvynHvzOO+fPSBfnxef5vxw/BEQfHcgcLpCovVn2bAcPDrP7/54ZU9w6FsIccEiBEsHBCFQl3qtrECgCqtGWYQRWGJAQkBa46P2sjHXl5RNrUqZbALWKT24+Pde34sbbA+7httCOUC8PXbGro//8irE6YbxgMYvWaOPB+8SEmJT76Vd0HyaPiWVhdBjP6DxRv0R+/Ho8dGd24/JTLrB96ebqnbvOxpb760RWv4F \ No newline at end of file diff --git a/docs/cs-basics/network/images/osi&tcp-ip-model/application-layer.png b/docs/cs-basics/network/images/osi&tcp-ip-model/application-layer.png new file mode 100644 index 0000000000000000000000000000000000000000..4a0241bfce93e3837403ae6131820b7d53570b5d GIT binary patch literal 14397 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 D3csfE literal 0 HcmV?d00001 diff --git a/docs/cs-basics/network/images/osi&tcp-ip-model/nerwork-layer.drawio b/docs/cs-basics/network/images/osi&tcp-ip-model/nerwork-layer.drawio new file mode 100644 index 00000000..8940fe50 --- /dev/null +++ b/docs/cs-basics/network/images/osi&tcp-ip-model/nerwork-layer.drawio @@ -0,0 +1 @@ +5Zhdb5swFIZ/jS8jYQzGXAZK2knrWjXTJu3OgCGoBqfEWdL9+hlwwmelVSrJpCoXsd/jL85zjo0ByM+PtyXdbu5FzDgwjfgI0A0wTQgNrP4q5bVRXNdphLTMYt2oFdbZH6ZFQ6v7LGa7XkMpBJfZti9GoihYJHsaLUtx6DdLBO/PuqUpGwnriPKx+jOL5aZRiem0+h3L0s1pZojdxpLTU2P9JLsNjcWhI6EAIL8UQjal/OgzXjnv5Jem3+oN63lhJSvkv3QI7n5Yd1+tPHnJ//x62C/iYHe70KP8pnyvH1gvVr6ePFCKfRGzahAIkHfYZJKttzSqrAfFXGkbmXNtTkQhNUS1HFXPOPcFF2U9FoopI0mk9J0sxTPrWHBEWJgoS8rprmJW9T67rBo6EnkW6bJeNSslO77pDnh2sopOJnImy1fVRHcwDavpogPTIprTocVsOTp6Nx3EyNYNqQ6t9Dx2631V0ADeAcMcwwgc4N0AF9YFD7g+CGzgQUDGnJQrZB9G38mFKNiAiJYoz9JCVSPlOqZ0r3JspnJgqQ15FsfVNJP02/gwBgGAPoYUQqhHyjbGpExIxqSsuUChEagvj7PmTUIiFk3mTUhsyzYumTfI6NNwxzTgac/r0sBz0bBGNL4tv8+LI0nMaRwxDrGNL4gDwT4O7Fwbhz3CsXyaNztim5HYmsJBzBDhS+KwYP9Usa+OA4/3Kv9+5t0qYfiN9HDc0LjkbmXbsJ8e5rV5OCMeTzMfHgyqBHGmcLjYQfSS6WE6/d3Ksa6Ng4xweLefBoflDnDga+NwRzge1o+rT8MDDw7zq79bnd4uencSGxAbLNVVxAKeD9SFvlJWwFOFVa0s/TUIMCA+II3xpmplYl5dUMJSlVJZe6xVOnTxy766E9fcFrsa3FI1gHh7bI3tGP/lNYjTkHGPRs9prQ8nbyMSYl3vxJ1X/+oxJZWZqOZeoOGx+RHb8eDl0Z7ajslEvMH3x5uqtt86alvnixEK/gI= \ No newline at end of file diff --git a/docs/cs-basics/network/images/osi&tcp-ip-model/nerwork-layer.png b/docs/cs-basics/network/images/osi&tcp-ip-model/nerwork-layer.png new file mode 100644 index 0000000000000000000000000000000000000000..06891386b14dc662b9249a1eb70ef0d48c668596 GIT binary patch literal 13953 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 literal 0 HcmV?d00001 diff --git a/docs/cs-basics/network/images/osi&tcp-ip-model/network-interface-layer.drawio b/docs/cs-basics/network/images/osi&tcp-ip-model/network-interface-layer.drawio new file mode 100644 index 00000000..22d0b52a --- /dev/null +++ b/docs/cs-basics/network/images/osi&tcp-ip-model/network-interface-layer.drawio @@ -0,0 +1 @@ +5ZdNj5swEIZ/jY8rYQzGHIGQblXtoc2h6qlywCFoHZwSp0n213cMToDASl1pk61UIUXmHX9lnpmxQSTZHD/VfLt+UrmQyHXyIyIz5LoBxfBrhFMrYHhapajL3GqdsChfhBUdq+7LXOwGHbVSUpfboZipqhKZHmi8rtVh2G2l5HDVLS/ESFhkXI7V72Wu163K3KDTH0VZrM8rYxq2lg0/d7b/ZLfmuTr0JJIiktRK6ba1OSZCGued/dKOm79ivWysFpX+mwHh/uVH+ONLhANcPJ5mn79++zl7sLP85nJv/7DdrD6dPVCrfZULMwlGJD6sSy0WW54Z6wGYg7bWG2nNK1VpCxG2A++llImSqm7mIjkXbJWBvtO1ehY9C82YWK7AUki+M8zM6IvLzNSZ2pSZbdtdi1qL46vuwBcnQ3QKtRG6PkEXO8B1vHaIjUyPWU6HDrMX0FZb9xAT33bkNrSKy9yd96FhAbwBhjuGkQYonqEQN40YhQlKKWIpinyU+ojNUURGwMAnekhl6O1KVeIKjZW4LIsKXjPwoQA9Nh4uIRkia9iUeW6WmQyDLlCcq0gg74OMEDJA5jtjZC5mY2TerYiREbFk8RTBVMnspnm0YpnIJvNoyXzPd+6ZR8QZQgnHUPC5Bvah0FtB8UdQnqLktmXNFyz3pnAwd0kovSMODw/Lmh98NA46UdV8FAcoSlEaotBDYWiqGlQyKMHQiKGwxbdNn5Wg0+mTB+HSuWf6+GTIi5KP5sUmeHnm8GnPnMhDUdSdS7fEJDAkVjCFKaQB4fdMq8tRYzEF7kdjCifTCuiEQIc1+TU3DciyeN4kWpNx/wkvgq94TVwV7svrvKErYAyYJU2CJYZQe6kDeOm8UaJk0dz4EsRa48z0cqk0N7xlDa1CNx7rlB5d+mtvvi4abg+7BhxcThxMt8fO2M3xT94jJV8KGfPsuWj068W7iMTUvvfiLm6eZk7NdanM2g/kur6/xy3oKt58byLe2ES84bfHG7x2X42NrfftTdI/ \ No newline at end of file diff --git a/docs/cs-basics/network/images/osi&tcp-ip-model/network-interface-layer.png b/docs/cs-basics/network/images/osi&tcp-ip-model/network-interface-layer.png new file mode 100644 index 0000000000000000000000000000000000000000..8a8d8f21e1548d6ec492a8bc8d8cf8afd0b7f133 GIT binary patch literal 13751 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 h0gJI--fiR`oV(Bkg2xCD17ZY{;FI22x5C||#I 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 A0{{R3 literal 0 HcmV?d00001 diff --git a/docs/cs-basics/network/images/传输层.png b/docs/cs-basics/network/images/传输层.png deleted file mode 100644 index 0b3ff240d6a37c8152f32d68ae177d77cd2989e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12986 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 diff --git a/docs/cs-basics/network/images/应用层.png b/docs/cs-basics/network/images/应用层.png deleted file mode 100644 index cf17ffd92018291347f241f398620f047dfc2c73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14925 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 diff --git a/docs/cs-basics/network/images/物理层.png b/docs/cs-basics/network/images/物理层.png deleted file mode 100644 index 7939bfb02a024e81e61f5902c8870c87f43228db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10872 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 diff --git a/docs/cs-basics/network/images/网络层.png b/docs/cs-basics/network/images/网络层.png deleted file mode 100644 index 9b64dc191c2a325632c4a6dbbdaa1fc020dafb70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14377 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 F{x4oo&<_9r diff --git a/docs/cs-basics/network/images/计算机网络知识点总结/万维网的大致工作工程.png b/docs/cs-basics/network/images/计算机网络知识点总结/万维网的大致工作工程.png deleted file mode 100644 index 169c5224ce8c286ba4a8059beeb152c510267d33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47925 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%0D+1tZhcA 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 diff --git a/docs/cs-basics/network/osi&tcp-ip-model.md b/docs/cs-basics/network/osi&tcp-ip-model.md new file mode 100644 index 00000000..24d19411 --- /dev/null +++ b/docs/cs-basics/network/osi&tcp-ip-model.md @@ -0,0 +1,116 @@ +--- +title: OSI 和 TCP/IP 网络分层模型详解(基础) +category: 计算机基础 +tag: + - 计算机网络 +--- + +> 本文由 [SnailClimb](https://github.com/Snailclimb) 和 [csguide-dabai](https://github.com/csguide-dabai) (公众号“CS指南”作者)共同完成。 + +## OSI 七层模型 + +**OSI 七层模型** 是国际标准化组织提出一个网络分层模型,其大体结构以及每一层提供的功能如下图所示: + +![osi七层模型](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/github/javaguide/osi%E4%B8%83%E5%B1%82%E6%A8%A1%E5%9E%8B.png) + +每一层都专注做一件事情,并且每一层都需要使用下一层提供的功能比如传输层需要使用网络层提供的路有和寻址功能,这样传输层才知道把数据传输到哪里去。 + +**OSI 的七层体系结构概念清楚,理论也很完整,但是它比较复杂而且不实用,而且有些功能在多个层中重复出现。** + +上面这种图可能比较抽象,再来一个比较生动的图片。下面这个图片是我在国外的一个网站上看到的,非常赞! + +![osi七层模型2](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/github/javaguide/osi七层模型2.png) + +**既然 OSI 七层模型这么厉害,为什么干不过 TCP/IP 四 层模型呢?** + +的确,OSI 七层模型当时一直被一些大公司甚至一些国家政府支持。这样的背景下,为什么会失败呢?我觉得主要有下面几方面原因: + +1. OSI 的专家缺乏实际经验,他们在完成 OSI 标准时缺乏商业驱动力 +2. OSI 的协议实现起来过分复杂,而且运行效率很低 +3. OSI 制定标准的周期太长,因而使得按 OSI 标准生产的设备无法及时进入市场(20 世纪 90 年代初期,虽然整套的 OSI 国际标准都已经制定出来,但基于 TCP/IP 的互联网已经抢先在全球相当大的范围成功运行了) +4. OSI 的层次划分不太合理,有些功能在多个层次中重复出现。 + +OSI 七层模型虽然失败了,但是却提供了很多不错的理论基础。为了更好地去了解网络分层,OSI 七层模型还是非常有必要学习的。 + +最后再分享一个关于 OSI 七层模型非常不错的总结图片! + +![](./images/osi&tcp-ip-model/osi-model-detail.png) + +## TCP/IP 四层模型 + +**TCP/IP 四层模型** 是目前被广泛采用的一种模型,我们可以将 TCP / IP 模型看作是 OSI 七层模型的精简版本,由以下 4 层组成: + +1. 应用层 +2. 传输层 +3. 网络层 +4. 网络接口层 + +需要注意的是,我们并不能将 TCP/IP 四层模型 和 OSI 七层模型完全精确地匹配起来,不过可以简单将两者对应起来,如下图所示: + +![TCP-IP-4-model](./images/osi&tcp-ip-model/TCP-IP-4-model.png) + +### 应用层(Application layer) + +**应用层位于传输层之上,主要提供两个终端设备上的应用程序之间信息交换的服务,它定义了信息交换的格式,消息会交给下一层传输层来传输。** 我们把应用层交互的数据单元称为报文。 + +![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/github/javaguide/5971-2-7I1-20220111095024771-20220111201807861.png) + +应用层协议定义了网络通信规则,对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如支持 Web 应用的 HTTP 协议,支持电子邮件的 SMTP 协议等等。 + +![application-layer](./images/osi&tcp-ip-model/application-layer.png) + +### 传输层(Transport layer) + +**传输层的主要任务就是负责向两台终端设备进程之间的通信提供通用的数据传输服务。** 应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。 + +**运输层主要使用以下两种协议:** + +1. **传输控制协议 TCP**(Transmisson Control Protocol)--提供**面向连接**的,**可靠的**数据传输服务。 +2. **用户数据协议 UDP**(User Datagram Protocol)--提供**无连接**的,尽最大努力的数据传输服务(**不保证数据传输的可靠性**)。 + +![transport-layer](./images/osi&tcp-ip-model/transport-layer.png) + +### 网络层(Network layer) + +**网络层负责为分组交换网上的不同主机提供通信服务。** 在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在 TCP/IP 体系结构中,由于网络层使用 IP 协议,因此分组也叫 IP 数据报,简称数据报。 + +注意 ⚠️:**不要把运输层的“用户数据报 UDP”和网络层的“IP 数据报”弄混**。 + +**网络层的还有一个任务就是选择合适的路由,使源主机运输层所传下来的分株,能通过网络层中的路由器找到目的主机。** + +这里强调指出,网络层中的“网络”二字已经不是我们通常谈到的具体网络,而是指计算机网络体系结构模型中第三层的名称。 + +互联网是由大量的异构(heterogeneous)网络通过路由器(router)相互连接起来的。互联网使用的网络层协议是无连接的网际协议(Intert Prococol)和许多路由选择协议,因此互联网的网络层也叫做**网际层**或**IP 层**。 + +![](./images/osi&tcp-ip-model/nerwork-layer.png) + +### 网络接口层(Network interface layer) + +我们可以把网络接口层看作是数据链路层和物理层的合体。 + +1. 数据链路层(data link layer)通常简称为链路层( 两台主机之间的数据传输,总是在一段一段的链路上传送的)。**数据链路层的作用是将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。** +2. **物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异** + +![network-interface-layer](./images/osi&tcp-ip-model/network-interface-layer.png) + +## 为什么网络要分层? + +在这篇文章的最后,我想聊聊:“为什么网络要分层?”。 + +说到分层,我们先从我们平时使用框架开发一个后台程序来说,我们往往会按照每一层做不同的事情的原则将系统分为三层(复杂的系统分层会更多): + +1. Repository(数据库操作) +2. Service(业务操作) +3. Controller(前后端数据交互) + +**复杂的系统需要分层,因为每一层都需要专注于一类事情。网络分层的原因也是一样,每一层只专注于做一类事情。** + +好了,再来说回:“为什么网络要分层?”。我觉得主要有 3 方面的原因: + +1. **各层之间相互独立**:各层之间相互独立,各层之间不需要关心其他层是如何实现的,只需要知道自己如何调用下层提供好的功能就可以了(可以简单理解为接口调用)**。这个和我们对开发时系统进行分层是一个道理。** +2. **提高了整体灵活性** :每一层都可以使用最适合的技术来实现,你只需要保证你提供的功能以及暴露的接口的规则没有改变就行了。**这个和我们平时开发系统的时候要求的高内聚、低耦合的原则也是可以对应上的。** +3. **大问题化小** : 分层可以将复杂的网络间题分解为许多比较小的、界线比较清晰简单的小问题来处理和解决。这样使得复杂的计算机网络系统变得易于设计,实现和标准化。 **这个和我们平时开发的时候,一般会将系统功能分解,然后将复杂的问题分解为容易理解的更小的问题是相对应的,这些较小的问题具有更好的边界(目标和接口)定义。** + +我想到了计算机世界非常非常有名的一句话,这里分享一下: + +> 计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决,计算机整个体系从上到下都是按照严格的层次结构设计的。 \ No newline at end of file diff --git a/docs/cs-basics/network/计算机网络常见面试题.md b/docs/cs-basics/network/other-network-questions.md similarity index 61% rename from docs/cs-basics/network/计算机网络常见面试题.md rename to docs/cs-basics/network/other-network-questions.md index 9a265e5c..10272f5b 100644 --- a/docs/cs-basics/network/计算机网络常见面试题.md +++ b/docs/cs-basics/network/other-network-questions.md @@ -1,77 +1,94 @@ --- -title: 计算机网络常见面试题 +title: 计算机网络常见知识点&面试题(补充) category: 计算机基础 tag: - 计算机网络 --- -## 一 OSI 与 TCP/IP 各层的结构与功能, 都有哪些协议? +## 应用层有哪些常见的协议? -学习计算机网络时我们一般采用折中的办法,也就是中和 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚。 +### HTTP:超文本传输协议 -![五层体系结构](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019/7/五层体系结构.png) +**超文本传输协议(HTTP,HyperText Transfer Protocol)** 主要是为 Web 浏览器与 Web 服务器之间的通信而设计的。当我们使用浏览器浏览网页的时候,我们网页就是通过 HTTP 请求进行加载的,整个过程如下图所示。 -结合互联网的情况,自上而下地,非常简要的介绍一下各层的作用。 +![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/github/javaguide/450px-HTTP-Header.png) -### 1.1 应用层 +HTTP 协是基于 TCP协议,发送 HTTP 请求之前首先要建立 TCP 连接也就是要经历 3 次握手。目前使用的 HTTP 协议大部分都是 1.1。在 1.1 的协议里面,默认是开启了 Keep-Alive 的,这样的话建立的连接就可以在多次请求中被复用了。 -**应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。**应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如**域名系统 DNS**,支持万维网应用的 **HTTP 协议**,支持电子邮件的 **SMTP 协议**等等。我们把应用层交互的数据单元称为报文。 -**域名系统** +另外, HTTP 协议是”无状态”的协议,它无法记录客户端用户的状态,一般我们都是通过 Session 来记录客户端用户的状态。 -> 域名系统(Domain Name System 缩写 DNS,Domain Name 被译为域名)是因特网的一项核心服务,它作为可以将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的 IP 数串。(百度百科)例如:一个公司的 Web 网站可看作是它在网上的门户,而域名就相当于其门牌地址,通常域名都使用该公司的名称或简称。例如上面提到的微软公司的域名,类似的还有:IBM 公司的域名是 www.ibm.com、Oracle 公司的域名是 www.oracle.com、Cisco 公司的域名是 www.cisco.com 等。 +### SMTP:简单邮件传输(发送)协议 -**HTTP 协议** +**简单邮件传输(发送)协议(SMTP,Simple Mail Transfer Protocol)** 基于 TCP 协议,用来发送电子邮件。 -> 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的 WWW(万维网) 文件都必须遵守这个标准。设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法。(百度百科) +注意⚠️:**接受邮件的协议不是 SMTP 而是 POP3 协议。** -### 1.2 运输层 +SMTP 协议这块涉及的内容比较多,下面这两个问题比较重要: -**运输层(transport layer)的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务**。应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。由于一台主机可同时运行多个线程,因此运输层有复用和分用的功能。所谓复用就是指多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。 +1. 电子邮件的发送过程 +2. 如何判断邮箱是真正存在的? -**运输层主要使用以下两种协议:** +**电子邮件的发送过程?** -1. **传输控制协议 TCP**(Transmission Control Protocol)--提供**面向连接**的,**可靠的**数据传输服务。 -2. **用户数据协议 UDP**(User Datagram Protocol)--提供**无连接**的,尽最大努力的数据传输服务(**不保证数据传输的可靠性**)。 +比如我的邮箱是“dabai@cszhinan.com”,我要向“xiaoma@qq.com”发送邮件,整个过程可以简单分为下面几步: -**TCP 与 UDP 的对比见问题三。** +1. 通过 **SMTP** 协议,我将我写好的邮件交给163邮箱服务器(邮局)。 +2. 163邮箱服务器发现我发送的邮箱是qq邮箱,然后它使用 SMTP协议将我的邮件转发到 qq邮箱服务器。 +3. qq邮箱服务器接收邮件之后就通知邮箱为“xiaoma@qq.com”的用户来收邮件,然后用户就通过 **POP3/IMAP** 协议将邮件取出。 -### 1.3 网络层 +**如何判断邮箱是真正存在的?** -**在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。** 在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在 TCP/IP 体系结构中,由于网络层使用 **IP 协议**,因此分组也叫 **IP 数据报** ,简称 **数据报**。 +很多场景(比如邮件营销)下面我们需要判断我们要发送的邮箱地址是否真的存在,这个时候我们可以利用 SMTP 协议来检测: -这里要注意:**不要把运输层的“用户数据报 UDP ”和网络层的“ IP 数据报”弄混**。另外,无论是哪一层的数据单元,都可笼统地用“分组”来表示。 +1. 查找邮箱域名对应的 SMTP 服务器地址 +2. 尝试与服务器建立连接 +3. 连接成功后尝试向需要验证的邮箱发送邮件 +4. 根据返回结果判定邮箱地址的真实性 -这里强调指出,网络层中的“网络”二字已经不是我们通常谈到的具体网络,而是指计算机网络体系结构模型中第三层的名称. +推荐几个在线邮箱是否有效检测工具: -互联网是由大量的异构(heterogeneous)网络通过路由器(router)相互连接起来的。互联网使用的网络层协议是无连接的网际协议(Internet Protocol)和许多路由选择协议,因此互联网的网络层也叫做**网际层**或**IP 层**。 +1. https://verify-email.org/ +2. http://tool.chacuo.net/mailverify +3. https://www.emailcamel.com/ -### 1.4 数据链路层 +### POP3/IMAP:邮件接收的协议 -**数据链路层(data link layer)通常简称为链路层。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。** 在两个相邻节点之间传送数据时,**数据链路层将网络层交下来的 IP 数据报组装成帧**,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。 +这两个协议没必要多做阐述,只需要了解 **POP3 和 IMAP 两者都是负责邮件接收的协议**即可。另外,需要注意不要将这两者和 SMTP 协议搞混淆了。**SMTP 协议只负责邮件的发送,真正负责接收的协议是POP3/IMAP。** -在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提出数据部分,上交给网络层。 -控制信息还使接收端能够检测到所收到的帧中有无差错。如果发现差错,数据链路层就简单地丢弃这个出了差错的帧,以避免继续在网络中传送下去白白浪费网络资源。如果需要改正数据在链路层传输时出现差错(这就是说,数据链路层不仅要检错,而且还要纠错),那么就要采用可靠性传输协议来纠正出现的差错。这种方法会使链路层的协议复杂些。 +IMAP 协议相比于POP3更新一点,为用户提供的可选功能也更多一点,几乎所有现代电子邮件客户端和服务器都支持IMAP。大部分网络邮件服务提供商都支持POP3和IMAP。 -### 1.5 物理层 +### FTP:文件传输协议 -在物理层上所传送的数据单位是比特。 +**FTP 协议** 主要提供文件传输服务,基于 TCP 实现可靠的传输。使用 FTP 传输文件的好处是可以屏蔽操作系统和文件存储方式。 -**物理层(physical layer)的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异,** 使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。 +FTP 是基于客户—服务器(C/S)模型而设计的,在客户端与 FTP 服务器之间建立两个连接。如果我们要基于 FTP 协议开发一个文件传输的软件的话,首先需要搞清楚 FTP 的原理。关于 FTP 的原理,很多书籍上已经描述的非常详细了: -在互联网使用的各种协议中最重要和最著名的就是 TCP/IP 两个协议。现在人们经常提到的 TCP/IP 并不一定单指 TCP 和 IP 这两个具体的协议,而往往表示互联网所使用的整个 TCP/IP 协议族。 +> FTP 的独特的优势同时也是与其它客户服务器程序最大的不同点就在于它在两台通信的主机之间使用了两条 TCP 连接(其它客户服务器应用程序一般只有一条 TCP 连接): +> +> 1. 控制连接:用于传送控制信息(命令和响应) +> 2. 数据连接:用于数据传送; +> +> 这种将命令和数据分开传送的思想大大提高了 FTP 的效率。 -### 1.6 总结一下 +![FTP工作过程](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E6%80%BB%E7%BB%93/ftp.png) -上面我们对计算机网络的五层体系结构有了初步的了解,下面附送一张七层体系结构图总结一下(图片来源于网络)。 -![七层体系结构图](https://gitee.com/SnailClimb/blog-images/raw/master/network//%E4%B8%83%E5%B1%82%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84%E5%9B%BE.png) +### Telnet:远程登陆协议 -## 二 TCP 三次握手和四次挥手(面试常客) +**Telnet 协议** 通过一个终端登陆到其他服务器,建立在可靠的传输协议 TCP 之上。Telnet 协议的最大缺点之一是所有数据(包括用户名和密码)均以明文形式发送,这有潜在的安全风险。这就是为什么如今很少使用Telnet并被一种称为SSH的非常安全的协议所取代的主要原因。 + +### SSH:安全的网络传输协议 + +**SSH( Secure Shell)** 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH 建立在可靠的传输协议 TCP 之上。 + +**Telnet 和 SSH 之间的主要区别在于 SSH 协议会对传输的数据进行加密保证数据安全性。** + +## TCP 三次握手和四次挥手(面试常客) 为了准确无误地把数据送达目标处,TCP 协议采用了三次握手策略。 -### 2.1 TCP 三次握手漫画图解 +### TCP 三次握手漫画图解 如下图所示,下面的两个机器人通过 3 次握手确定了对方能正确接收和发送消息(图片来源:《图解 HTTP》)。 @@ -89,7 +106,7 @@ tag: ![](https://img-blog.csdnimg.cn/img_convert/0c9f470819684156cfdc27c682db4def.png) -### 2.2 为什么要三次握手 +### 为什么要三次握手 **三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送与接收,而三次握手最主要的目的就是双方确认自己与对方的发送与接收是正常的。** @@ -101,13 +118,13 @@ tag: 所以三次握手就能确认双发收发功能都正常,缺一不可。 -### 2.3 第 2 次握手传回了 ACK,为什么还要传回 SYN? +### 第 2 次握手传回了 ACK,为什么还要传回 SYN? 接收端传回发送端所发送的 ACK 是为了告诉客户端,我接收到的信息确实就是你所发送的信号了,这表明从客户端到服务端的通信是正常的。而回传 SYN 则是为了建立并确认从服务端到客户端的通信。” > SYN 同步序列编号(Synchronize Sequence Numbers) 是 TCP/IP 建立连接时使用的握手信号。在客户机和服务器之间建立正常的 TCP 网络连接时,客户机首先发出一个 SYN 消息,服务器使用 SYN-ACK 应答表示接收到了这个消息,最后客户机再以 ACK(Acknowledgement)消息响应。这样在客户机和服务器之间才能建立起可靠的 TCP 连接,数据才可以在客户机和服务器之间传递。 -### 2.5 为什么要四次挥手 +### 为什么要四次挥手 ![TCP四次挥手](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019/7/TCP四次挥手.png) @@ -124,7 +141,7 @@ tag: 上面讲的比较概括,推荐一篇讲的比较细致的文章:[https://blog.csdn.net/qzcsu/article/details/72861891](https://blog.csdn.net/qzcsu/article/details/72861891) -## 三 TCP, UDP 协议的区别 +## TCP, UDP 协议的区别 ![TCP、UDP协议的区别](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-11/tcp-vs-udp.jpg) @@ -132,7 +149,7 @@ UDP 在传送数据之前不需要先建立连接,远地主机在收到 UDP TCP 提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。 TCP 不提供广播或多播服务。由于 TCP 要提供可靠的,面向连接的传输服务(TCP 的可靠体现在 TCP 在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源),这难以避免增加了许多开销,如确认,流量控制,计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多处理机资源。TCP 一般用于文件传输、发送和接收邮件、远程登录等场景。 -## 四 TCP 协议如何保证可靠传输 +## TCP 协议如何保证可靠传输 1. 应用数据被分割成 TCP 认为最适合发送的数据块。 2. TCP 给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。 @@ -143,7 +160,7 @@ TCP 提供面向连接的服务。在传送数据之前必须先建立连接, 7. **ARQ 协议:** 也是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。 8. **超时重传:** 当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。 -### 4.1 ARQ 协议 +### ARQ 协议 **自动重传请求**(Automatic Repeat-reQuest,ARQ)是 OSI 模型中数据链路层和传输层的错误纠正协议之一。它通过使用确认和超时这两个机制,在不可靠服务的基础上实现可靠的信息传输。如果发送方在发送后一段时间之内没有收到确认帧,它通常会重新发送。ARQ 包括停止等待 ARQ 协议和连续 ARQ 协议。 @@ -180,11 +197,11 @@ TCP 提供面向连接的服务。在传送数据之前必须先建立连接, * **优点:** 信道利用率高,容易实现,即使确认丢失,也不必重传。 * **缺点:** 不能向发送方反映出接收方已经正确收到的所有分组的信息。 比如:发送方发送了 5 条 消息,中间第三条丢失(3 号),这时接收方只能对前两个发送确认。发送方无法知道后三个分组的下落,而只好把后三个全部重传一次。这也叫 Go-Back-N(回退 N),表示需要退回来重传已经发送过的 N 个消息。 -### 4.2 滑动窗口和流量控制 +### 滑动窗口和流量控制 **TCP 利用滑动窗口实现流量控制。流量控制是为了控制发送方发送速率,保证接收方来得及接收。** 接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方的发送速率。将窗口字段设置为 0,则发送方不能发送数据。 -### 4.3 拥塞控制 +### 拥塞控制 在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种情况就叫拥塞。拥塞控制就是为了防止过多的数据注入到网络中,这样就可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机,所有的路由器,以及与降低网络传输性能有关的所有因素。相反,流量控制往往是点对点通信量的控制,是个端到端的问题。流量控制所要做到的就是抑制发送端发送数据的速率,以便使接收端来得及接收。 @@ -197,7 +214,7 @@ TCP 的拥塞控制采用了四种算法,即 **慢开始** 、 **拥塞避免* * **快重传与快恢复:** 在 TCP/IP 中,快速重传和恢复(fast retransmit and recovery,FRR)是一种拥塞控制算法,它能快速恢复丢失的数据包。没有 FRR,如果数据包丢失了,TCP 将会使用定时器来要求传输暂停。在暂停的这段时间内,没有新的或复制的数据包被发送。有了 FRR,如果接收机接收到一个不按顺序的数据段,它会立即给发送机发送一个重复确认。如果发送机接收到三个重复确认,它会假定确认件指出的数据段丢失了,并立即重传这些丢失的数据段。有了 FRR,就不会因为重传时要求的暂停被耽误。  当有单独的数据包丢失时,快速重传和恢复(FRR)能最有效地工作。当有多个数据信息包在某一段很短的时间内丢失时,它则不能很有效地工作。 -## 五 在浏览器中输入 url 地址 ->> 显示主页的过程(面试常客) +## 在浏览器中输入 url 地址 ->> 显示主页的过程(面试常客) 百度好像最喜欢问这个问题。 @@ -222,11 +239,11 @@ TCP 的拥塞控制采用了四种算法,即 **慢开始** 、 **拥塞避免* * [https://segmentfault.com/a/1190000006879700](https://segmentfault.com/a/1190000006879700) -## 六 状态码 +## 状态码 ![状态码](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019/7/状态码.png) -## 七 各种协议与 HTTP 协议之间的关系 +## 各种协议与 HTTP 协议之间的关系 一般面试官会通过这样的问题来考察你对计算机网络知识体系的理解。 @@ -234,23 +251,7 @@ TCP 的拥塞控制采用了四种算法,即 **慢开始** 、 **拥塞避免* ![各种协议与HTTP协议之间的关系](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019/7/各种协议与HTTP协议之间的关系.png) -## 八 HTTP 长连接, 短连接 - -在 HTTP/1.0 中默认使用短连接。也就是说,客户端和服务器每进行一次 HTTP 操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个 HTML 或其他类型的 Web 页中包含有其他的 Web 资源(如 JavaScript 文件、图像文件、CSS 文件等),每遇到这样一个 Web 资源,浏览器就会重新建立一个 HTTP 会话。 - -而从 HTTP/1.1 起,默认使用长连接,用以保持连接特性。使用长连接的 HTTP 协议,会在响应头加入这行代码: - -``` -Connection:keep-alive -``` - -在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输 HTTP 数据的 TCP 连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。Keep-Alive 不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如 Apache)中设定这个时间。实现长连接需要客户端和服务端都支持长连接。 - -**HTTP 协议的长连接和短连接,实质上是 TCP 协议的长连接和短连接。** - -—— [《HTTP 长连接、短连接究竟是什么?》](https://www.cnblogs.com/gotodsp/p/6366163.html) - -## 九 HTTP 是不保存状态的协议, 如何保存用户状态? +## HTTP 是不保存状态的协议, 如何保存用户状态? HTTP 是一种不保存状态,即无状态(stateless)协议。也就是说 HTTP 协议自身不对请求和响应之间的通信状态进行保存。那么我们保存用户状态呢?Session 机制的存在就是为了解决这个问题,Session 的主要作用就是通过服务端记录用户的状态。典型的场景是购物车,当你要添加商品到购物车的时候,系统不知道是哪个用户操作的,因为 HTTP 协议是无状态的。服务端给特定的用户创建特定的 Session 之后就可以标识这个用户并且跟踪这个用户了(一般情况下,服务器会在一定时间内保存这个 Session,过了时间限制,就会销毁这个 Session)。 @@ -262,7 +263,7 @@ HTTP 是一种不保存状态,即无状态(stateless)协议。也就是说 ![HTTP是无状态协议](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-6/HTTP是无状态的.png) -## 十 Cookie 的作用是什么? 和 Session 有什么区别? +## Cookie 的作用是什么? 和 Session 有什么区别? Cookie 和 Session 都是用来跟踪浏览器用户身份的会话方式,但是两者的应用场景不太一样。 @@ -272,31 +273,13 @@ Cookie 数据保存在客户端(浏览器端),Session 数据保存在服务器 Cookie 存储在客户端中,而 Session 存储在服务器上,相对来说 Session 安全性更高。如果要在 Cookie 中存储一些敏感信息,不要直接写入 Cookie 中,最好能将 Cookie 信息加密,然后使用到的时候再去服务器端解密。 -## 十一 HTTP 1.0 和 HTTP 1.1 的主要区别是什么? - -> 这部分回答引用这篇文章 的一些内容。 - -HTTP1.0 最早在网页中使用是在 1996 年,那个时候只是使用一些较为简单的网页上和网络请求上,而 HTTP1.1 则在 1999 年才开始广泛应用于现在的各大浏览器网络请求中,同时 HTTP1.1 也是当前使用最为广泛的 HTTP 协议。 主要区别主要体现在: - -1. **长连接** : **在 HTTP/1.0 中,默认使用的是短连接**,也就是说每次请求都要重新建立一次连接。HTTP 是基于 TCP/IP 协议的,每一次建立或者断开连接都需要三次握手四次挥手的开销,如果每次请求都要这样的话,开销会比较大。因此最好能维持一个长连接,可以用个长连接来发多个请求。**HTTP 1.1 起,默认使用长连接** ,默认开启 Connection: keep-alive。 **HTTP/1.1 的持续连接有非流水线方式和流水线方式** 。流水线方式是客户在收到 HTTP 的响应报文之前就能接着发送新的请求报文。与之相对应的非流水线方式是客户在收到前一个响应后才能发送下一个请求。 -1. **错误状态响应码** :在 HTTP1.1 中新增了 24 个错误状态响应码,如 409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。 -1. **缓存处理** :在 HTTP1.0 中主要使用 header 里的 If-Modified-Since,Expires 来做为缓存判断的标准,HTTP1.1 则引入了更多的缓存控制策略例如 Entity tag,If-Unmodified-Since, If-Match, If-None-Match 等更多可供选择的缓存头来控制缓存策略。 -1. **带宽优化及网络连接的使用** :HTTP1.0 中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1 则在请求头引入了 range 头域,它允许只请求资源的某个部分,即返回码是 206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。 - -## 十二 URI 和 URL 的区别是什么? +## URI 和 URL 的区别是什么? * URI(Uniform Resource Identifier) 是统一资源标志符,可以唯一标识一个资源。 * URL(Uniform Resource Locator) 是统一资源定位符,可以提供该资源的路径。它是一种具体的 URI,即 URL 可以用来标识一个资源,而且还指明了如何 locate 这个资源。 URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL 是一种具体的 URI,它不仅唯一标识资源,而且还提供了定位该资源的信息。 -## 十三 HTTP 和 HTTPS 的区别? - -1. **端口** :HTTP 的 URL 由“http://”起始且默认使用端口80,而HTTPS的URL由“https://”起始且默认使用端口443。 -2. **安全性和资源消耗:** HTTP 协议运行在 TCP 之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。HTTPS 是运行在 SSL/TLS 之上的 HTTP 协议,SSL/TLS 运行在 TCP 之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。所以说,HTTP 安全性没有 HTTPS 高,但是 HTTPS 比 HTTP 耗费更多服务器资源。 - - 对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有 DES、AES 等; - - 非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有 RSA、DSA 等。 - ## 建议 非常推荐大家看一下 《图解 HTTP》 这本书,这本书页数不多,但是内容很是充实,不管是用来系统的掌握网络方面的一些知识还是说纯粹为了应付面试都有很大帮助。下面的一些文章只是参考。大二学习这门课程的时候,我们使用的教材是 《计算机网络第七版》(谢希仁编著),不推荐大家看这本教材,书非常厚而且知识偏理论,不确定大家能不能心平气和的读完。 From 1c1501a5b9602492c62d40e4f1b8d3d9d5f379e1 Mon Sep 17 00:00:00 2001 From: guide Date: Fri, 25 Feb 2022 19:15:49 +0800 Subject: [PATCH 43/66] =?UTF-8?q?[docs=20fix]java=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E7=9A=84=E5=85=B3=E9=94=AE=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `true`, `false`, 和`null`看起来像关键字但不是关键字。 --- .../images/http&https/HTTP1.0cache1.png | Bin 4820 -> 4693 bytes .../images/http&https/HTTP1.0cache2.png | Bin 4695 -> 4604 bytes .../images/http&https/HTTP1.1continue1.png | Bin 3390 -> 3356 bytes .../images/http&https/HTTP1.1continue2.png | Bin 5162 -> 5082 bytes .../network/images/http&https/OWF.png | Bin 33902 -> 30323 bytes .../network/images/http&https/attack1.png | Bin 12683 -> 12541 bytes .../images/http&https/digital-signature.png | Bin 5402 -> 5284 bytes .../http&https/public-key-transmission.png | Bin 9874 -> 9733 bytes .../http&https/symmetric-encryption.png | Bin 15583 -> 15297 bytes .../images/network-layer/TCP-IP-4-model.png | Bin 27390 -> 26212 bytes .../network/images/network-layer/smtp.png | Bin 15488 -> 14676 bytes .../osi&tcp-ip-model/TCP-IP-4-model.png | Bin 27390 -> 26212 bytes .../osi&tcp-ip-model/application-layer.png | Bin 14397 -> 13296 bytes .../images/osi&tcp-ip-model/nerwork-layer.png | Bin 13953 -> 12566 bytes .../network-interface-layer.png | Bin 13751 -> 12997 bytes .../osi&tcp-ip-model/osi-model-detail.png | Bin 167005 -> 163472 bytes .../osi&tcp-ip-model/transport-layer.png | Bin 6022 -> 5551 bytes docs/java/basis/java-basic-questions-01.md | 194 +++++++++--------- 18 files changed, 101 insertions(+), 93 deletions(-) diff --git a/docs/cs-basics/network/images/http&https/HTTP1.0cache1.png b/docs/cs-basics/network/images/http&https/HTTP1.0cache1.png index 1fde45818b655b27794f24f82aea66bf09f7d62e..a327583c32de7df797ab0cafa67eff6136c2a62f 100644 GIT binary patch delta 4620 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%0Dod1CZjT&ugHIW^onqp z_bHLu;3~<3f5z7OMAV2q``hp0wD(z+3Nn9}=|u};$6?hS5oAuThlVTQ!_1~{rPP-F zm0!jSyu5LK0|yD~;O}cIF7>kl9-@xR5;63PNNAqKTZ|Z53UDu>u#cbfg=RGP;Qt)d zcE%YB7^kqHYr2OLtOu4`C+bu`2VLm3ZG2ST8FvQ5DjylMWVpruY9v!7E0$2$j0YZ( zI$wTl_EbZGKrkuhq9l1$@9s$PZ8y&w0a%PJS)};2-zIp z0YnrXd;%?fLUx1t-(!l4#UcX#{OAXhRXR*})g_P{MN<~TN#9QF45uwI9y9{()%y+*VF8(G za3WrqwUa$n-PUYcn75@fZQx}3V8PbgSr6pxW`%1{AjU!R60eOkWs5M}+T5SomlM=1 zsHYEfo>PFEKWi$*huT676ZEpY=)v_64yBJ0jMA(vAj;##ZN_Es{p$Qr#xC9ugE!h` zRAk=KYsv6|C1&7b6^>fO~4wVYfUmmBS0@HIj7E4aOlL-thTRI)nDvaYTL zv6s|$a$kV>PXQ)K8VGP3s`3dn!?_ESq5cvw9tN&G4t2kZ!lrD+&e5K~QTFBPMx@hA z;2Y!*c~b3D%u_o>;CM8bzvlwx%ZDm>@aa0dSZAxv8@scmkZ*jFGkZ=C`dmKOIQAU7Mr#Qj1&<8?eA%QzWgQ24%LW(&#EIa~!}DcR#J*`8Me z6P2l%MqXf^s~y)o+}F$(py#N0b1cgI>-ysu>1Vgm@_0gSpCRU2z!c%90+6TV0A+nYHjt{XPP{(h*@7TmtObs`Zcp^-#YQnG zu-0M!#SZ_T8mm;s7Zg(`z-Mp3>#cGZ(IP|hfAu+PPUPMCsbPH>X$SIG^sX6dmuTX` F{|gw0rKHKrw;PLg*b4Y0^tXN&rC!pnx>708&IciX?&1d#}<%=u!kxiUFyj z5JVIaB@lWMqzEYGyt|pZnY%Z;Z)bn@sX=!PkoSfCw)kFaH;>C+IGc#ghVopv@Dk>_> z%*+r7q^PK9bab@6z1_sbBqBTlkH_!r?QLysy?OKI;lqcltgIyZ(%jsfy}dn|OvYN1 zva+&>0HW1 z-3tJ~C5-g0SOrh5=MH<1qY+U9X^LX(dAFgMiz!XZw;E`|L}JS8JBBsP<;<-y``N15 zC(l&9BlNyU(oZe|DYQI<7kB^-ZP`G3n_WvoRaj zgftfRjnPVC87QGz<_Wo5ns>c4B1E0du&fL3n%GZM@roXb56a|6G(dZm<6O&2KUMe$ zO{Ce0p2haHJ__iO>2Y2yaxDMVfOexITZlQY7N`^a6w54irhl)m8O zrxVMcX*|nPvZUvh;^l!#mBVYrp% z6a!IkOq_e*idH{iZb4Pw z_JaDP_6U6^E#JG~Vo*GI=hc6**D7}Dj5n*3kn-^Z)qDk>Ny|PH) zbhf0HH&_kyf@$8&PD|AqFPC-fR~wwhNa)m@WiLSPxxtTlNF*VIcxMyei^DNzeWW}BlP zGv?_BmKAk*c3sVA?_OS<`XV}G@M7qX$YDd^bdl7w2$+$MTe_4UEP(kx$1*q{tbHHE zH1Huf1ddS+JM^sWC`Ge#_cKGVG=4NeBpPJM3Q0mSqtpeODzSTF{jb*`jCjD4I_{qKB!xJvm64AoYsXXtft?|$OeAt7*0 zJhI8iu^(7N-mfezwq|T)rZy~s5nQ%hzw0RBZ*djJN-_#dmEiU@ zGz^Sl@~FOp5@V#-{2K~JFm8v5GF-l6CWe>fPF~gPx&v@UEt@74Jrb6RBeUrOe@)yT zQAQQmQ~`KbDDyb*wMz)r-oYXB5Sh5WUV;xMm*0yO^5Qul->uzN=kPfoF&!pdp8-A- zL!!;|nIW7-Hk5G06yS*;Av*>2l#wnf)+&Or#DNz47Y) zo?s3PH2Knc`4j8g*Ii;Rc>1@cQPFtPoqXQaq$?Xg6k@*;vN!qVH3EOwW$&7|b35%m zrL}w@*XIxX}(ESnsu{AC7jcldg6aG^_ zX3G;>b+^3DKKl$c{A>&K%dFUbenXkR7d7>y`1-G1pPYf4Kn2j5gGBU{p*22JClEq& z&S3dFb4GIDgJH?jIP#PE1`zBdGCf)ixpn+j8ZA`~Sa^P&oY*}9y7sG$-}yRyWfTx{ zK}P#ktdlH`oOF^>*kw}Ud&qIN#4!3GHpopmA=BPb67X(OkJUU>E=omgR-tdEXXf1? z=L63AZXD->0gCA^FX@qL6=ZTe*lvkZv*fnv2Z(8ey@?T*{p=&K%r`d6XMv&&-Mwk7 zo5=x~O{r0x@?y3tSrwcsjMi2mb^i4gEhqzDr2}z(e3ZieadrH#XVmr8Fi#SnGJkjz z1JxCEp#*6msns>gQ|yTl;WeF&Ma&zN{*BN9@7jvVssJQ^?T+*ejN9S2@Uj8h*)QuS zC2j#e27N@CUU0=c~X9?v}92G4g8X)Q2OuJ#=*>0AuFU zFI_G=xd=ya%XCMo-H<_^8eSJ+9Z4k9ald9o?IysY1DO@@EHWGflg@KV5*&vXo~1qm zHRKrByf!$)LDEbtjweSaNk;XbGNEJ1yvD!$i{#TqZ(O7Vm6YlvkT?7L*RKg%Uk7H* zt=tGz+7bU)axEEXtf{~8qfsK(;wfXy)XRKm(x?R77%0vdGc%bZNoHsE(cKEf@x}N{ zk3GRZNlMu7W4;ay7k`xGfS{FPfCjPSGXzItDiTQxd{bA|& z2XYo?WTaAB5^_Ve(}OTSQ-Y2k#YR_~)}3^$u2LBmAe9oMhCaGHa#z*$?b6fP-3{{I zX$iT$mHcGYBA)+26-UjpjVuVI>DgV4oRGb!b7A;KYzv^*AlTwrwJC{IENO)~Swp<~ z*kmwr6u?=}*3^yg!+f{l_5N*xv8?8N@fd2x#wZN4(^(n}8C2E)6W}-0T`EIai^y~6 z%I^I}@Nt;tqPLVls8^$ik{IwEd|oghS{Mou7U=#Lp4V-f2^UdCJ_Z%an zMkdu*>QqylmMy|JhSbHE-0g>Y0TCU#nUItmP9zR(aqi}na<}=#(ehb|8)G3vV-mK? zYUZ0p^9?dV65#58|HUJo2wJ$Lv{hYuz|CnDbGV+s?v*}>zTWZa!@>nKvj-0xrjl}Z zL!CEG(;eIPcM85LNW_&M!AoRLI0kr+LgK89Sk5io-Br1@-kSUd!7UN!FRsL=5O%(z zqCg1eQ|cYnq4ww@q|1%F;_bU)`y~C(X9?Zc6VaMw=_T&8-mjdJVpDCQ;)as-+aIxY z@yTOv!Eo+XWvaVL4&ZS7rDf$kc;hz0%y)d3Tff-q?cEO}uzQvBgqYX0`3y{L_Zf^o z)_S~wXE7LGzGhVIDPxu9-ol$6N4o_Q1Ffy%;zQrEuw*>Qkso8NpT0{#jZHx-t}^5y z-NE{TmzdJfJYwd&lKVr!966}goi#_dYb6B|R};{ee!}I3;ma%ZJYDvG-;jfI89SI& z?Z;qH4f4L+rbV$LhV(2a!#t}%K4ob;_tQ_W4#Rd4Ox2a#ZIK_od{ze0aCfFI4gwAr zOE0ZF3;irE$2W`#QqRmvy0^YE{_Qb`zC{MV;LE{*E3bcBH-$48-wbHDl(S(Xc6P`B(UsPfE56M~#Y z@GqHd16EWyPzmyULQ*}kZ!uYj z(4Eor9qD7PX`oU1T`YJlf{XB6r$5A!_em+)|7&G4?RER!qwiUkm2|AUC^h7w*O%L^ zUKM|YM5RW$w-j3w-vAAFI~B>FoK<+%cRsSTSk2*Q4Dv%qktk~XZx{81XC1bXv3f2x2yiW|P0kT!*QS zf>{ygyL@cok4{-Sg14sOcYbPjhBgkSTY*UDh)1zSsP)H?8Bxy3kv!bu(eSv0ujk*7 zOy!RR^#%8J9gHOIDPQbF59QtTd!JVYF=G{>3Q-i65N)NliofhDCz0!KrIeRDa-b*) zgrx0`)o0sg_8NE(3UpJ+qrRBZQX5h)VC&b%@cWWSeG;Yc{)ZDLO=ZWb+OHafCH_5m z57q%DhPiU_^T)yCYNohWZjguSI}EVsN(uv|4{M+A=5PgoC zT>JGCBTD@s8kJ*Ne7k~02{X;y9!yBq=AK(_DOEu!_l}Jbbmo`SL{gY06d3qbgP>v7 zM*%uqowtJ%!$@Ooic(6f!uYp6BUV-YyBMJ!@sMRBl8xR>PA=FqWHdnN zLIW|yb$T?M?f^meIYU~{_;)xo0t&~N3XJwH*X=bU3VENuw_i3c11TCp?k6$7NB!?Q zmY@wUtSN+fnBB9pY$>eT_m0R=aLZ1hUmq9znAhoqD@NF7xYg!Lv`-9P* zI)6nM0Xoe_0YZB#Sa%N$7;ad7ZX?Fije^-vH}na+&29ssLm_zr#OE~K7tr#@4 zuLA8qhmjLdVVL`l0D66qkeZt&q8*WE7pCrXThn~8Zni9XS4;^s@C;p+Y0?c!BtdOP zBjeZ7ADNa4QF%aM>u;2MOuevpFK0Po_QcnQU;IqvYk44+HNHp>O*PYEhjvGZtf8PD z|LF#ACv^x)?BD3yMKI%n%C+#>U!@TFI(nANJ&<>*s3|ob##RQ-&lriQ(MH$-qeR%Z zSV9qS(?jCEt<iKhH}3zh~<| zniX$a2{I`imVyX;YL=35rT-Pe|6Tr*Yq@m*o<&Hz3dc1v;2(_i&GhPZox}eFP%F8G diff --git a/docs/cs-basics/network/images/http&https/HTTP1.0cache2.png b/docs/cs-basics/network/images/http&https/HTTP1.0cache2.png index f7faedbc680d8458d01f5af18fa42263acaeea15..bef08dad86316a09b6138759fb7047573ea27cea 100644 GIT binary patch delta 4456 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 diff --git a/docs/cs-basics/network/images/http&https/HTTP1.1continue1.png b/docs/cs-basics/network/images/http&https/HTTP1.1continue1.png index 1c5b16c03be93373dc0fe2e4b9be3061ca8a22c9..97adbde7cea347c17a72088d3fc05bdb60eb7df0 100644 GIT binary patch delta 3195 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 NElurAYK?q|{{a+e>|Fo= delta 3212 zcma)7dpHve7av;KP-$i%l3SQd3Aw+?z1+r_xlSb^uAO)hi4MXt54_xrwo-sk)0JI{HZ^PE4gsZ)xEwBr#bsf! zSQre(nxe8=@GKmHI>o`aZ~!xnn#I}DJ)-yK2RcPeEa^yw%)?r+#Hvyx)MyP5Su=V zUt2epyQg;R_NY=;1${z?=hwjhW8C9`X^Q)H6-{9Q2aVWXb4I07w0u&WfILeD1@nlZ8ZX2SZmIk(#eiqd>uN@G- zr<(eD8SeqR)r2)`k=Xmal%=v&1X++_;G&uVG)4!J6!H@swV-ZI@jvZ&ld zBSGw0<_k&h=@`ssUZv4Fb%symSGYr+)6U`HkZOYOi$wwr_*%cTuc~etdO^JlchXqR zy-4`JUF}C9)?8)%R99ttRY^DS4<^%RSHebY^W0=d4m4v>&N|=`f|@usoUAjp@Trb6 zE`P+r-oi2*W55Ue2Or|FkJvqmq$SAXr3sHa3I+r@OOow%UAP$l-u!>~0pGsYV|pQZ zp?P5;1LF^bDyDOl`K}|aU(RWE^rGMJy7#y*UK>aZZ~fL%RTSD2vR^_eetWQS!{sLG z&rZ`Hy3uF@&*M5a^sItNni|qY1xyFsUe50HPgfRy1;uo8VcsDGXs7~lXXjf_COnc zPz`jK*W&PE5;Fg!51S}oREJ-?*yY6e2rLHu?BGIUU)oh@L%rZ5rj`0RL9*PVVHeRK zP%lAivwx@t_HNjy)mRNQ&wFC|eAw?hal9>!zqBXxONAKM<Trx74?qXEe2MLRY~6`O6}c+uG0gt_-XPA)%!&x3W)DuXUON9-MeIMD?3@;uzTexQrE!`$Yb^93}W(eyRw!GJzQAf`_{E~@Q?|JPJ zogEcpq?zPSAgmXxbcuW9zjS{FD#ckzYRaAc>Yw%{>nnO?$Zt zdOR&saYDMlt+((4!O0G&{Koo5LueyO?A{o92xg;5rLEW3?2$H6>0Ou1J=Cw_Ze!-5 z-%n-?$8_?~wvskY5e37MmeE*-&!c-haCkSa?A=0?fPJrI$Rsq{O1nf@3x&b~hb&S% zBfs7eIJi0aHSYOGm0vsn{RG993&A_CT_itz$FAOMhW4pB>>9qU=X zo_`%pkuxq`cv-i&mlXSROy?Yiu4ZrPQ2Vl)Ns4Uwro5QkfNv=_KcjZ!w)6RQMjtj`udAt;nfa=c5C ziOMuL_3)RkBqdSV4t!Y6h`(4V5Y0@pFQ7xtd4cN&V=cWQ*}f^vXO-%ZfWv;#TEma* zqS9V|mqx!WJSyd0p2-%mc$9sb5eZ^MIEO0t@W~XFZ#~FhE{9XHPA*Q_-J5*lR<2=q ztL%I2sqS#O2CSz|krE_yJZOh^Smm%nENK>9(xetoEHjnt9~1BB>>CrPWyp!#|BK** ziVegWK#syxq$-ITpL6e#Osycz&xtbP_)FOP@;i-nqN5EPoAHs33XWFvEr&{~d0uzz zW-7j^z#i0jC`wA)C-$6*U6Txq|Mc1ZnaZOSfLL4}_87%coNynev1xKASh2E+si901 zcFT?`tC9eU`I#`PIzIF*8zEJVklD}ex34X|`exPCm*W7d{2RRgVAoO@C!A_C*#OZr zKfC_{)=tYq?hdnNW>-#UiA*gTpKhNDqK1w(?BuY(P?A}V#@&eX&vk^`A(cA1;x5a*W3O9}xF+X9Rz4T5Pi_r`GgXw*?Ynmxwq0)|n-Jd+ za6#!Ag89A9o27gL^(8jmgEq<)+k%?W-g*QacwF#^=cH$Yt@oMu0@@lhkalXamlt@( zKcbeO;8XJ#-|}CHgS_2PwI68GE?5StT%2`nHYRo}psLq00Ku>uuytHqiy^5CN$?;@ z)!6xqAx>by~}R z*7h%EOF2qI94Nv05TeR|FY0el&QG8Em3>cYB=HmviW^CmgUB{i1l?KX-$7?nye-ye UDepi*^KU`4Hn%e?HTA*$3t=MhMgRZ+ diff --git a/docs/cs-basics/network/images/http&https/HTTP1.1continue2.png b/docs/cs-basics/network/images/http&https/HTTP1.1continue2.png index 968d488670821297874b66094ebf36c0d4d10a87..53600aa21faface92e3b9b8cb048215b841d4687 100644 GIT binary patch delta 4968 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 literal 5162 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 diff --git a/docs/cs-basics/network/images/http&https/OWF.png b/docs/cs-basics/network/images/http&https/OWF.png index 13df90aeeccea027e0b0add21181cb21c7e26c71..9b4673482f3537a3615c5e59e0e7bb629ebc3a38 100644 GIT binary patch literal 30323 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 diff --git a/docs/cs-basics/network/images/http&https/attack1.png b/docs/cs-basics/network/images/http&https/attack1.png index 0cd4926f90ce42ff39576feeb08e73a3015314ec..4c62591dfc0e391f5bfb0dfe6844331f94b394be 100644 GIT binary patch delta 12330 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 JT-q%3{{RExzQX_j delta 12447 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 G!2bs+<>oB_ diff --git a/docs/cs-basics/network/images/http&https/digital-signature.png b/docs/cs-basics/network/images/http&https/digital-signature.png index 127c7836482dbcf795165e64ad3ff0e328b66b2b..54071aa3b0bf53aa9c8c4ec1777da67da7b6f8ea 100644 GIT binary patch literal 5284 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 qnAiGZ>BD0BO`6%HnRy#N3J0001GT2aja literal 5402 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 E0HJG+VgLXD diff --git a/docs/cs-basics/network/images/http&https/public-key-transmission.png b/docs/cs-basics/network/images/http&https/public-key-transmission.png index 008da8c1fa6732754d34476a118ad4eef1c4e481..b3eb4a7c120faeccacfda7b7ba4c970d641c8a31 100644 GIT binary patch delta 9298 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 A+W-In delta 9431 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 delta 15170 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
Nkf7s;bGUFkUr^(#imTX;ZgI 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 UtfGp8NB{r;07*qoM6N<$f?!DVGXMYp delta 27258 zcmV)hK%>9p%mMz@0gxmC{gEXie*gdg%gf6%GBQU`Vf_63SYUAV_4R0Pe!#%M&CSho zd4}-u@#f~{cz%msWp(oN^HWq*`T6?h=jl{iY-DPB$jZ;IvbvX?ro+X|_xJa;xWMo4 z@Pvt#w7|4ZR%g-E*xujbouR9TjF{o#+J2hyTj<|>%+stfQFLo?eFU9?7zaum6@b~fPiOcXKZV2 z+uh)gl%HE$TlV|@k>C}72nPpXU|y1zp`@s>jEsyzLPGHO{-dL#prx*{wY*qYSg5F| zJv=?8sVqa8xb#I&TGSWkS(?vqghEdz4J?UQ~28wrf6#kj<`ue+|3nF1kyzq7NYt-)=8 z+w1J_KW~k@003vaNkl36@5IdAugibD{Te~><5**8cgSZ?B zlD>fR4cr^J$u-jr_XhF~@)80WgmAM+FKEF*i-u^D^7{-9=Y?eW@+S|ZB)@ay-@Fox zUY^%d>To|ezb6=v@{e(U@OFCCZ0wGD|J?8Q%Vlr+`W*zpY&N^%><$4aSMpRR+#0iq z3V9x7Qc6?UrfC|-?q_REA~?6)PNGRv*c2$=>3^eGqP-p;a^4^T;{) zS`BS0dDTV9(E5^p8D=t6T5`Xxk_AeJN=p{>8Ymf>!T0@Ul^hChj*_7|y_!l^!dswZ zD5G&R86`t0&3bp?O8&x^5vUNqF1+FJ4kg16J9o63G!(~i{Qv9S%xM`3rmzi4OC^J{ zPDQp5m_bH#7&l^+Ndkt6H^d8XyyAXwFW`;WzQZ2H=kb4kP63OXqR!|{`pI^(GMG1C zPyVz(sF;m?}91Y%G-Auw}^= z+s>my%*M<+7Hsx};ZFG2lHRxU(bEd3K%7;t7%iFCEUi@jvG-Yz6 zW3Z%)Ot;(BWywXLP{GV9m+WUDOKw^nc*Mtg2C!Q|$)Ly|D7hrYEpes|gvSSu#N>O^ z#kugcMsKdawB&#Go{@LYE^9f4kTRWc&)yMcxNu`$!pj=-IXP+LU`}4$N8lED;F4)!PPSd0OZJL??bd#ijM`xZ0lnhwM4xlBtdHeq;T{Q1>-D(T zo-8;&E!mr}=VBrSC1-`J{ffA_+(+*0Z+Nyw7aXEp=-h?clkzz4YBrZ?4^*T!D$C!OfmrTJoG3Y{}_#9C~O@wk%5rFTtD)SaT^VwsqhxX4bcy zIBM0ZjzgX<`qcw2*&IQYZ03<6Ba`2&Qx$!p+u2e)8kMhJ@~6jgzb$jUS#50?+}Rh6 zGV6)5G+YaAJMS?edVwd`wq!MbC*P!t)`4akK9!NZwB)$2s6BZbZNzpqusJJv>zg_G z7LpW_1yHVgjqL{Q9LD|AFkyT-Lk*=@?MXp}5JTpAu-nq5-~2Q{*SE zjQqIdU^IRr7p=j=g|fDyEtafem+Pkae2M z<|Q}z9C;jxe&2)6KQ?cFw&azOefdjZgWImcUYL^y@Mu8`E^T6?4YsdJ-lEhl3aMa> zHjxX?C%1s)^y+mNX(Ke7Wx_$rj z&WaFE|Fe=)CJ;9`AFJR(C)NN4G%q<<+fO51tJMm)%WH78`T)8?1T}^iZInrstPbx{8!m-40c;~i9u!NKT$}!XOGTjI;OH1gxB$$97^(*V zI$J~)umVM{yeFGy+T=Wp#|Gcg6o z->er~q_|^$qHKMuG1}NkWUKsO&!DPzi&&xM_lpz>yI!B4EK8AeduL>?>y;v$m&KY8K%h}o-cgOb4=Ps~BdaNLy< z++BdH{oT88c=i)aDy=r-gc?c)d;QR6oS8%eSgw--5iE?6LdX`htaJSBf2 z06S@a?USCBa~g-d86p5X&2GzDE%z54=8DA{t5)09TCG^jjhx^^qpD1+?wZNfG>W+tKmhUN1JH_j6-- z{vO~l&2md609#9z@``7dqA04$*%<+{et~+3{V!Ejd4%UcDjz>OB`*iW5nQtzfpyY$IC>iW5+2f4-W(XyNjU_icj!;^`FDMy~ zvobPSb28su6i_nQ$M0Cl_@q6!q~wn%8C+3v0V^Zm;*tSSGW^F-GPr}}P{}Gv2F%Iu z|KfK9P%^jxzf1dXB|m(Kl3@b;^CyUZPMtFEbv~I?j5P1OGJ82yC0~kPk35s+>1K9` z`tB_((YYaFb5|3*l`@ZMmozvnk(m_D@^=2J{wjaw78&9T^JH<(;HLwuXK24nc>m7akdQ_tEC~S?b58Y)~>DzannL<4N8R zi14jQ;*7x`y05z}3|Hv@K0zkg1r`;)1>LIUdi&2?ToY!qMDImpDV*d4WyLdM_tJO)75&^M70TE55Qqr*G zyE>m<@+BeGS6Al;B|jFr3u0wW1Tv!~hr}Xpuj{{lF+?;c*y7XhqPQRC{lppGI}>@H zW>>`A?@LZa*aLmf#Amsl<-E1zE73iE{RN4=T9cOR9X6g8MTo}W=~pg)`9$w7thnUw z>YlfU&dHNh@-OzyZYPy1isS2lWh66lpz;@eU31Hxd={!n=DAdqCQrVI1P=N>@;JdBzo2g>J3gE)R9rkVLwP= zoRPvEtzwm^65Z#|D&!{H?*sjQKO}=;a*-;P$_cDWJC%p*uIGt+NT5fIxY{DY88r6Z z^;(3{m9wsTzWGE)SffYa>%e20d~nG*mc+xs-lR796|H}9c4gH1)26A9bo zXd$};B?DNp?5^jEzuROL6%zE3sUrcHU?}c-zWGEInDp>`6nOqGO#WlwHz*%-BuP9x z=YP4maB(9{{&M_(Pq#i*&)=WP2lM16WCAdg+c2rmk6xsUb`VS>1+heeC<}D>aW#Na z{?24ohpD|~a!`1`11RWX2yeVmev|8~3V74bpqkImmC+`GOddj(1z0)^xlRO=<);uv zE~fwmJ)CjZbH{y6P5>%WHE8iFP%XIY`Q|(S=R@;T;MdN7e>+`VN-i#4b24Xgd-97H zTP~NIGEQJZHUUFH#9r|&LM|3{>=cUzslW;WWPo8&s|3i^KJsnEBX60UhdG?1Ly!xC zE^p~Ib_-j*d{12zJ&th{#-_7|^nx^1?@V5j>oxRqK->a0-Ss?i4@K;y*t8-;WA{Z$ zf>F^C%M@XM7SCMu{PP(m^7OzgN`X&^nfyrK8Ts(S=J4>Y*`9xBGkfejIpb(-d~o>JY5&0jV~Q;Ls!wD^N*AYt)m~o(v$hXJV%c%U#bCce9LS&9W>7v5lBj zAqpxmqQcB#QP#;_&o7^$VS^r)9|FHc{*B2IACtv?+pTnX^ZGS^c6C0mmw}%SY?IHQ zJ176HrQ3frUF=GK&F{>!|AH3_G-4e#73u?j4Ke3pIfHPeqT;O5A&Ny<0E@z8$~bc} zqm4L?@uIHEkC@a1X0wX$) zbXDi8FC-@N%;4~F@Ub-e#?kg-X!5P}qur&Y^FxLt9op>P)8xlT%*i1dCkw1E<5aBG zHl1^PImDr)QftEGhz2x9CWjI_peS&lF%;otEK7z8b2MG(;M8HWO$Il)3QoFzkCu4B zI1!*jIwFqAw60>Fs16oNgUDUa9rx5TvE-PU1$!DXdl?D}Gs|V@o_fCdl!ZbM%lwug z5ZK*Xr27!^G5Kn1I2&K{O$ukrZb2H1=H$=pru?}i7KqX=7yXLeO{~c-k2zKvj5%5b zU@i)ii!wHN8=m7PFX>?Ht%vk~95EUIw8WBOY@=Wp291%!4nNTG5|CEw{kmpq2vWVu zKfTRpGzvtcZ8DIKqTJ>rn6T`3)MyN*IoFS5-U&@2-k--zb=Pyp-Ss*!$uX01CV#*A z6BWWtqPp&>=bKME$kC&4|2cW)?@hjvq-P&Gr=BlItGx^9@@~cVMr^--4McG8`f$K3 zJ%0Vl&*by>XYxUaTm-EY7)nD%tP4F9+*DD3zJgLXtU)6q4L)rE(Y5%_emPS~SrN*x z4K@`DySM0$RiuNIfe>Fc%I`YNMANwgS$-e<;zNYGia+OftGaay$@t29Qa+9l3ngUY?EwRx0EP^3qlqvdV> zx>S`oM#xU;<(4fHwAX?(B$8^;ayJp7WRfV>=5J8TuG*|=rYe2Z@D++2OQtc{B5h+k7nv zW9# z@lHQl)1Ewk;XmMr{~|!Z-P1AL(Cb0UvBnYohTW2J)mT`3y;+% zOSUKMjKJ;RUCbo|+`~1w6#)ORuNkQ*8JHb)Q-el-$-pa^rUrwOfp-GC2~7FNMtFc zL2L7I4&iL{-<@AsF+<;{)tIs{%S-wH+UyCt)xcV^==yO|%8pa{wB$3gN~viYFQ%Ew zmZh?Pcv&w83-!&ei0n))rm@c*zjXp718>P*QFPM#=$!n)MNi~cF>}iq`70lIZ`VaC zCls#y$W<eNnMh?o!?KyQo$-pX-tbr0r z238bh4bkG+1+cPC*5K49J9pEQ$`!|P{Qrx8tG4q1DP*uPJWF^I2nd8AMui171s7G? zL>rB18q+l0bkSGPy&It$H#RQZ-+g1EFTiDY-SsVW+5ed{z#z8t8Efa0+%sGlTkp-+ zbI+VX-wnEVMqGcRPgj=XQ@+RNa{Yb2Us;YH-f`b|;rbhCOPiBFbKeW+dL1RZ?@xAr zy^4}Azt+g*`n&Fo1eaIxyKc#@zwd6fXIUkG>z3?#B_)3zB$w+ol$>zyjJW=`l2?{i z@=u>9+`HATS1>1EeeQ8fcDW_H{-6GG$)nNA)bMu2VR$wCb0x32CAD zhy}C7ja9#8a#AwCNmE;c7)|(lMVe6&f9lP{HcfdB4?SdS?vSKqTP6C3@s7ZMU%1CN zJWxg>=O`b)Kc&3+@06TS5jG5?1{kb)?iCD3VRAY|i%191 zD;kD%es}Upm3~bh`$R>gPSGKuhlV`l=~*f!3Pcn@ltRro>P>;Dg+p@kpRsWrWBf0;h;5Ih9ITLzqhzP1bu&9fQFjFKVp8sY%)z>!Z9Qj$#J)RA731 zLKR*PxsUwT8u<|2+S-!!mQ-{)P)lT~0OvZGnm-QF(kw3d>N^p#Ncp>~>2gCpyjLzK zC0{&Do&1iHU&s|-7T7X>QS3oo)sZ2V;vDu-O5)6q@NDzPauTX%JDm>D3B%arupCsH z(?uZO*qxM9GgYX14@fg$m!8ltgNW9#olF5Sp+ZE**q$v}k4a- z;ZEVDgqI9C|dT zfQSwsAlD-s@BLntt&qHe8bJl!Kp$S&DeMWBOpI2;CuGCFWdYyjv@ z5;V{H`g#jq9{scwi@*En{zUoY`rdZ&mU42l@^H@{RxaMK_mua=;YyTzaN}^b_|6EI zyc8d;(hSU)lQ zb<||ZQCK3fWSumW<-Z;#xL>APz#2#Vpx?k)ik4yVoct&@CX|WcNKvk?6n3@p$;a$O zIT42&xlW#cvuI9UiVr{hV5ViHb9=U28njsk)apKXj)?_lN?wOaEDfOAffON@m;c;% zu>WkyY#Trzz`wlmiZ5{l-N)4DOD+@&;2|$c?gH?|Vav%A)@MsjLla+q2`h0wR9VTL%6QSN0LaC8 z!Vf^@u}@2}cy)1c%Ucx_{P>!8lW*^ptEa1r2TuO_Tk=;Q&bACa0GqCJ$zbL_ z^fJ`IOvyzU#A5k<7|p=|;u>m8zM#qkk~B{%Mp4a#O-NSBIts9DJy&vos~3YPd99Fw zZ#AEP&ztb&^ATbOiZh>9!9e5~ha6d$Xl|WMCeX^jrcql28>#}Rk<%f};H2c!-QCW( zWaRS*bdS_st7JMShm7?JL1zf4)P@@#WiZJ6lc! z185`#=!pcUw~aXelDst4hL2eMw1zXUwRcf}E=P&&09m4h%yM2B>*pa8npRgejk=vO zfPI{HE!uM>^V|j=!qADW!nYX;g?xzfD9-nxO;Zizj*-uD#WBR>I+?HKRPay`Pei~v zx^4ox9?&R?yq5vsu}Wiopi69ibs+?3PdrY8C|+xg0mFH9i(GW}mD2#J!5#$gfkE$X7Lp<-b zKc6#9k;I=6+B7XWoX-cwC7anUmmExgl#gep3K57(vJ{@JB&zQgBYXE3jyKp?@XtGc?a7fSC z1W?awCM0SW3^YV8zftnoq~z^twOU7j$KAOrz5?1@*jgAF`FsTC*%`-rcy=a#*2#zH zqnh0GnrXl^2i9K74y)pPC&eXNGIf~i5dliD=6g z28;wbORnp>`lMt!-5^yZrkO|*wNPKP|MXQvtcJTUxny>$d?F5SluO5dI(c|?Ywt5( zSS8;nE9^=U1zWeTUu?;;F8v|x=27JyX0(t`CLr-bpYWYIZ95dmW(VJ=`@#YL7G@c2Ae`aBh~_Ny8M#A z{c&ZHPvnx~_T)qy?M3my!A!|R>t4w4yN~(t!^w9Ki+ABZdpEe8J0l4^Xe9l<9` z-bh7)l;K6H7dnp-n%Y8IqeK`iP{{d=<7i{Bk;IHBQ3lA+L@f<});1yK)-qKzWNp%u z^F8gT09c2(hYC=E{Xr}5J#H6|yQHPDOH*-pPs0`<5Do`RfJc_x=;`PYktq3Wd)o(f zdwaVUM~X<(G=2Pqk%G4XAa&S@ofT4>j)hMtDNC-`t&%gfoOR3r+xuQ!1>~2M0kpb+ zuIuHOJtvPuv2wzHeQP+`W>!WsCEqBI*2H`z_c7iZE}oO$)n3HiY8JrQ9!U+1Rmfov zMe?g^Hez5bQ!LL&%J*sx1Z!xn8IBJyW4*j2z!&A{a29VG)8$kl~^uR}yt@!_&uW_t5S@&dF` z&Qcea7hUqB@*cl=b98-o@Rp)ntl06MJo2LBy$j(jQSzIUp?L4-#pBKB;tij8_g^YG zW^_YB+?OP2vo^Lx4*qI~yUSV+v$eJmq-V6YH5$`aNjS@s6zp^&)Ghw%`To`nKSlUl zt<+9NqYdVNp;*;VPQ_5dKSk8GLfqM+jd&zMERpKdZph}LQ;le?S~ZF!b=$%U_`$xHC9Te9oV-5GgdKR=mE4!R|~Z2#e(1kUdu za!Yo-j*{J<+~Rr-C11Ui?-_Bu4u50G|B-jvyIv=^WY_Dkyq^UAxu0CF*HE%MC%axl z$)CA@CA(h3oe}GMMqI96*t=tu24Xml{Rl; z-C`Ew#vJ$;YciFLoe}U?@+9wtkYC0)3kN=bOK#@95ayFOW+)l_l{{~HAv7;28N8N! z804sZe)$mJqGa$^GI{EJQFcr69ZCj&J0qlNx?Yv@W)jCYCny3&O@8t6r`bt{1^nWoq-kJ}8 zN`~K-+`kytRaIFkSt(yjC-eEvWjdCtIb;N6owR}c5jR?27~_D*YmkU z$*^n5WqL(fhrUBUGvP+ry0X#v{de<0 z$*?131n-tG_L>3sr48?%(G0+=!$k0Z?ui74lfkb{@eq_`06rj8S|9&okKJ7D; zDHAejGBcSZhWs=kCWbW8+9ah08ZAiDg3?+KMJSch{sZ+O=&j;Gyjl>!>t1_*@bBuS z&oeWb#3rq@U~NlYtWV;u&kPIiefDcycj^C7@^ZRZ`hS%C0WB>pOI})9mb~;o6knFS z^uG{$rIJsVB`+<{ukd`y=j`*4 zaCQ?4T%Lto7mS_V`QyTum$Tk~JXi8B|E`ji7}3s1p+B+dROyN1qxf`xe}^a{#Yjl! zNvN!LXl+QYc%f2{MO^-_&9Os)$go0BtR0G_GwP8m+!k*MUzmiLjnK!H9NUwH>X~j?Bty(_Va(M%#*Sc$TLlVncp7pCOtB^> zA8X)%vhcY@G*J~jg2%~!)klUh@VF_L#8wqCGSFGDKY|&~{QY#av9*i(VDejZ&?8JJ zM0A8K(FO+OX+ZW}<-m}HF@#zMuBd;>=Amno7VG}ZgpWV`+a+H;)7%}qxnon0p{vVx z*vaMPmm=i72eG_!>Xkfu44?eRN~RLj^t9x9qtURy8x0OkJS~%dkcFlYIoy4xyDcPP zZA*!1$)gcKLR&oTWHj_MKqgPJ(dMwNVmuzp#7J2Yc2N6JKFaOkHJD*tYCscV?Vz-| zLOPP0o10xX5obHqf|=ydWSS`;Cjd>cjwdDWrcx=@Ejb1xf|BR=M}TZL>n;|Y`TK2S z2n_?$kR1+(;YrDVYZ8|wr-7|njf2-}HI3R)AR4u8U~FRFEqTk4B{v)=i(L{NO!R1> zl^eGA-aCx_{9+|PvfI=9`};F?@45(`-t4iPo14p9#xAa|t{&OhgIn_b-PGRmCI7qr zEu7M57EHuxs)HzzjurA0p@!WDLvfFw85(UH24L)S5CJ5Am9b@Gdd7w$a#cY@>$2oB zW)P8unC5tQUy&t4GGfyYsPm{2E?5Be!)YSYFyevzwh8d)?3r9dbi?5oI8E`U%9AZOYfQn_k!@KsPGjULCrVBd<&h(27N&*1WAAk2%Bn9^@&ntu`u&*vvmBFe+1?qGerD`kmi)wjtYnP?@`r0E za%;6jx~-OqVym@IM1Am%95veJneFwSywhB$t zR9SMunBZs<$-!oO-<9x7)*CST$XS*JxYtuE@LBGEksPN~(vzlR2u23hXf)!oPc<%f7etGw6dL5s|XpV{*YeXf?D9O^mO%6|)d;ocr&LMar9h98T=ksNv zEUJWDFn5oGIe9A5#JX2<5-!^-StSKEpi4w1C?c-ct-#1Ov6Y2I=_VjIc?v}F5t2#< zYBU;^B`YdWwp$$IRu09a^1J=NpOfeAM-dZ$fSDP>q+QgB;(cr=;Bt0Jrc&)(o{5s#tc%bEI~OH~ z9?k{P@ZJ5x+?@QZ)7L9`Z|{>BEzpKVLJLJ%a%l_Jcr02FPl+rD+%y`yt2&I?l6@L~ zpi@xtHsre$McpeolGI=(3p7WO!|0^sk!^3ymTcx6#Ve}^U{HZI$YFIA7C8Wj?4&2= zea08=!Lvd|0A&j1CXi4O_derGgI6jBb}E&Gy#65q zqZL>>Vky%!)%Loj5{=Eh}|=J z@9ZKtlRw|Pdc#hyeqzE;*KZ#D*ESwQZ%zWY&%d7hHocA?_7=B1#Gu_FI`m3j-+@C4 zkXV-`cj}!udD0wtqH0?JjA9}) zL=)9m0=1YczV0;&6^N=vje{BMxU#8@Tle^0^`6xOKoH6O_ zC-!j1etPqcSMoW#4PD;{&Y%B(YW3IjN=_JC)N%t+7zzz>=$5<-bP9m(mQ1~)z(Axy z98=zrY?>N)a8AddTO8o-Ta|1GeN{C9RW*W=cYtl81=EFJz(79FfrzTIM5k_{P=`h3 z6bDgB^CYM+;6M!%@p4K-yVc?twsP2SZ9m!X&&jrJbBJXX&fNW!NHQ_qv5bn?&&Dd0n|0ALg`u#$mtkrLCMi0xFtvBG^1GAjSjW2PgG5oG=&zc ze)1(_CqKT->&Xuxx8yhC@b!ps;`;INl0Dx3#O`KFz7XqQamilS-h1>^9O#-@r8OjF z$u2E!irS zj7iC6VH*a;b2tb}o;_2EgCZlJO-TT2o#IwSN71&AiAX~V0cUQ188e)@`*q=|(=O0* z|HPq~N3>qoa9o#ztSs4rM<+o?Oor>1yynlz7S?QxiR^|@gV_*&w&+iUzhoc1M9GpY z`D%|%JcJ}UC(G$#TJkMBzn}HfbN@@g_aD$JS$rn1qCst-*GEN`tU=%696i7l` z%aVOSaJF`#Qb#rde5fD0C5KJ4{gOx6K_k=A%p72vV{+x2Fv~Pk@&?gxc1|{k*1?Gf zC2LL%N6w_=I($celql)Q$gzBY=x9`MOU@UIyQN|=YZQz5x&1aw@wW>wIy%ze%-t{T zaAX}ILN?GLs;@@T>mllw>z8b&gbm12P5VC=;6)^jEQ`WhvF2Xk_Se#ZuEqBSE?!n*g` z#c^4KNqWvN*(R60sN_gL4wZWHmw<%(0xI-fXyli?QFC8UHaGyzi$t`kTR=2Tvn4lG zmH)0}I;_)g?3~Su5@8(2f8R@xG^2(#iss8YJ2<|xn=Ybmu6i&?BbKeesPMEzME6b} z1ou`fv~*p6Aq1~oJM?#T>GwP{=Gttygy9B$4x^6yJdZ0M$KT6?iZU~~%K|kGcxNUD zqD&fnyT_MA_yL%vG&xJbJ(xkjB1u)Eis6Yz1Hm%5CQ%k_qTm=~^R|7tHBo6HPkyKi_nWvx%n zCqurhada`5n>=<|8RD3aANa49@$JWLS`SW-nHsECl*&@=%U&=08)K;}&E+QBJ-!HP z;#`&os2Y^m-QdjRP&6n^o<|of84wB41(S6}Vp=96nUo6HGk7A{=|~fMKy7BSkC^Dp zWE1dz8t4`ZLEB^>B1C;CRp2Xj4ys9wH)S-~f_^kFuqLi^sb{8db z_eItx0j%4$G`S6hrvU1#Mh*&~J*nlJMkfE9pBEvbQLdc9r}t?wKFj7_iBnQUtmi5db-z*OMlffiQ{Euh%hu zz5sYElgk}9I*#?!r~$@ZR>V~`;8)vTQulV`2UZ1} zoROc{s+E%Jlue~Xv;I=vyIjv6-sJD}gB9+ycbYunM&2#amS#@RM*}NP9*yiOoKXFY zpBeLAt9Cb7eoelAeSR2@rFbA-jS5D8w@sED0H`@Kz7iHVmL|VKi-lC`%NpX6yZM$rlrER$8TUdYc%3vz6sg#YGFL(_CB5uNM_97%>cNiOvgKzBnY6T!M5gH9%cPA0>;{7;r-ij!nAoHwl> zrX=&$X77$wD}MZQQI92&g zR^boqz^tE4m6w?=N*$gB0H;UW^rNZHKR(xE6l^@i)2{25eJd=8D9}pV=0{EduzJv5=I1q*Z2?|& zD@&kO0B|BFOK{;y05A$(mf#1xPX<<6mZ9;D4_G-_L`@ifcL962C)WXE;b138#`t8| zLy`w|Cjf3f$$n5T0$>kG#&a?t$zSZ9O;0LU7{{Og!iA^K0L@UKyb5S|6R04@02alz z*c6CTsfo1OyJ&2ix@cpXv|W}DaF<*Y)5H(ZMK@i0_k4x>EnN3GXF##o&^L-U^IM$J z;V^RIkH`OiIfslE7GoyAn41MJey~io_*Z#36O*|nTX&tc_@C5d%VZ17WDARb$K?HM zrQ>^jD_vMT5+;~@ete(9OLbN}mxqtU-kqAq&qsOBGTGuU^Z9FA(=%C!-UuymF3-Lr zZe&UBiJr9f9kb)v!X4tuGTGv)@q9Bvs0G*vzq;xnQ*&cu6DGx^or+>au|`FKxU zm?kfrU0#SYAr?gcazX45I^N?6nw&g$1?tFhWd=CO_u_Jm2cKGIPgWGhN(&h<9Gii~ia5dAD^aJ|1>F-XCGoqQ=GSK0)-6 z=V6m+8#WCnh7ps0i7`T$Xvq^oNOfZgG-8?#6Yb7qPq;R2as?f3%Y40O_N{5m&AM`def@O?;eYO_o^&x*;=d&}p)%w8mkje23BuyKFBu%z0E-nJxxTVP_Z3C`$W5ndu(R2}I zq1|giq{dD5BX8E~sIOeEpi+*1nI_wv13c1XWw54gz~6D;nLQ517)ckU(zXrhQYjuU zF*+G2*NR9bD20ZU?ir#kNW$xgt6XHP!M%f6AP@kE3K35d>+Lj9$Y!%!WTI(*F#Zh~ z&YTSX4Gi*79)6lW-sj@o>3o8S)5UpLa9RFFaE>rde($Y)6^>uLBb~l~%9ur#L-V_5 zx9mUOPj!CNddOv)Qs@>V;c)vgU|r^Jr~K9*t+OvpslImyWgS{LY(ppA4_)U1DG(9jm~$dM{Cb5N^8@0Vr?2{4m#^9Lo40Pcp18+1Gn0uE{TQCQSAufaT4h$^O`)Zkp_|!L|bM4|4z* zODmqS@yjdLmH}jrfV6p)6`C&geIdG^(ezB7doJGMDk{Xqz~syB!i%{parVKbT-TUa zqTh(Ww%>OpW=rdTO}dB2lj3w500J?2>4&2UG-a|*_+&!4^}W5q3WfnROj#GP?!u5Lm0}2#PESt(ZhRzj zvIEc?EUq+J&qU!?9=kN4nIIsQg1dI4Z7Y*`23JXd$?D#J6q=-$6*jkd)W^nO1d?sQ zRZ>n%w_V84RQawa1Q(dUiT)={E(>;*RTc9Cljp_F{$cNSpxe9|M;gQ&@oUkFmCT}qj zViOZKoF)=~yCJN?!DjEQ0|sLC`YI0U^~91NXl`IYN|_u75^~LfO;$O)7z7*%vL65; zg2YX`@?tR%k%tPXR8V6_-8wOThZ@PlOJ7Ji)Ti3N!)*lLOHj1l6@WPXClFK1?dvdYO$qH&Y4WWch3@46 z9xCD0}HBcr>KVWhJry+!N@6cq1gXxm|2E-&9(y8dU$!3Zm3ZbbIXDNxa z65IyF?{YGmhV3Mt5tV`3V2@A!y|*ndS5$f^{@!F4c1r=ExDNUF+D<_?6EUSnO{SB) zdc8ZS+pttYF&{!Y@04i-+oa)?$v-fDk|r}1e-wr<&_>gQmkzp$t7)Z+57mC%zVbDy z(gl;*KNjUtlfMx+{H2s$Rp#FLM3Y~={itpXCx4SJ+o;JEpU($yQ&H)H20J5+X_J#H zVt#1y0l-DC`jE*fG*pZYQd~obbidm7O@a;V#6SarF)()81mKS-lQSBsvakJNlQk^S ze+i!qZ>Y!hV$%I=#AMD1Y_b9|qIDFZkqcWCMozsC0o%5wjg9}0Ol}}W)8tGHSeV+{ zMPC-!SG~(Q<}GRR2Zt?=!*8AU&h{kA5fgrbeV(oI^ZCpm327m zHK4e%3gB5il*x1wdT<$xZG&asf!nFq97w~R#j49?3{5r|K(;j*yX*30m%K%p6Si$& z+J2}_M`iN*x-vOlNb)f*cS+Kx8ob3F91$%6(M2$sU_4$3md3^}O%C!TA%Goje>X{w zVVfQ`fA+I*+^u|gC|Z2%iQ~O%byP@`&t=mWir(S-d-LMQ$tG{o;~@lS%i%}^3T5)T zF(7u&B=5^ulVtA`q$-iv+F{CvdJELJd~1I zVhWW)BoeLoh!V>g8jxA85mU=?7hjF;k<4|RG$g+=KIRbz_T6a;cD=uSt@&bT@pk z$=yq2Qmh}zOUIY&QHn;L6s()?OPTS##b`Tsu$xYgkDm&uVzo2GM~iDtdfdFcoSP0$ z%Vdiu&(E_n`LVyrEuIuVf6F*98OvmgN6xR7$rk?$X7e9&l*vnEVex-R7naEu|AQId z%kM3dE&eAaKk_{zi>JlQS(*H`wVrIDc-nWJWs@J(=PoRsJU`6HbE;6MygCD@aPKqf5Zn>B)O;T-X8LI?buvwxI zuy964L2(6_VP}=+f7fM5!WMsqVc%s3v)+|^19eLNvrGV{vhc_!hOaKRHa`DU{{)cd zdDAqzlhA>+9ign5L^M$7Vtpo-5{_KnX9#S&Ta^B4r+O(iSqt65T)e?khatm{NmE2R)zDH5Z| z4ZULSxhL+Q8I4BS)m1J^t$t7%bz)RMy4~)=GC|2;x8#0O6p|W}8CD%dXhRMOd#rvzYH zzW>5b*cOb=e;yNU0x-3C*^()h2L!;TCZ;aLI4Of&IioJH+{4e4!6rf75UsBSz@CP> z(fsWY0BaTnb%TH3dF@*koTA}v{y95ceDlaem{!C4DcS2Rp=7W&8QJ924dHof@m zR?khzjH6`uC?(^Z4E9QHyDB+H$zZeOJ$EIyP%_vnfB8sK7j(%xC>iXP{An&r#$@D{ zy>sVHK6xM6qH&I-Z5u+1*n-=Q}SuJNT8qYVvs9 z0O5yIY;vChkPRr@Go;UevvdPXw%SQ-(7Icm{jgNjJ?AmF9NYsqxoIp8t!C4WKoL9l ze>HD>4Pg%;a4bLD3-tAKpT*>`Tm>(cb(6=oZ3EJDXV92Zer;2F<`{Qfl*tapj^p^| zW_K=yc{-iWmnL^jVCtKg7`i6+hbx|#{N8giIcqQxi9`;`h;aO6P!XX^0>Bj`2t-}p zYV*iTfEvUynM{JMOs2(zyj<8>Wbjx~e*;ca3bL&>IRKZ;A(KiKSWcxX%3;O$u`o25ULFFICutG*jOYmfi{@>4)PJ zbWR33JqgN|m$FB&25ZQ`6+eCde_xsW=@y<+B+ufkv}kPkxdS23B(7P_@gd9viU~iB zM2R5?h5>Ao#h9Nt)*(X>D3wZnUYAOF#^q(!JL`U0kpq$$;epYNB8kH|Y205$*f_jo z^cbKbx{a6ijWT(wP$r{hM9e@jLGmu3E*IpDvE&Xfe~|T>JbHwq ze0+2u7K@@wlczc-Tc+-qsydCnZJMffFNSq(+k|CLk%@u23)k!QRT7wC>X|(4!j=z!fHW#{%pcL6k8L;>G<`j=qXnL-KC`QP zB%nzCSTcBO@_#ck^35l|beS70O%6sG4>1ArO`3@}XLK=;X8x8&e=!+m{e*r14gZSh zB1W%76Sl~G4XH)HVd^6}I}`Fp;sO0Ix$owZIDv4SWIWem9Fmr0{3TCK8kvlrsZ0jp zot>SF3ZwZt&+|+mTPJ}iU5a>#h{;R(j&EqI;tRWj$rzJ`$rff1 zbWE%0CvV@7et`z|qA`?s53qjE0{}-{!!>z7s_}a!7b+TqfSZ%6^w@Syju+CVYx1$d zd&X(RWuKoh=$xFTQK>}Pu2i-gB%2i`ngy22OvqjmNTys~f9CI=l{vn3Y>cFxb%z+3 zmQD>l6XhSQCpW<<>X90pO5GBMb>L9WPzC68>=xM77W8RIS0*&XR?Q9GSe3q zcPw29Cdl1ge@3tFj0b?sf&$q);z);@1qts+oWCZ}r&7A37?FJlnc4Z8gQzkcD5o=+Zh zRQc^d2|H5)3%#!T#Mj42P0~S{sRZg#AH$KV##k_QO&&Ot0ZdCkUmuM5=Ea`HllD3% zhw+3}e@zA!Ia!c&0U^g-Ml!3MjFYRYs~u8uGGNeLGuf0@o6Ne#__dmxCRwV`BL&8b zSBxT7;AhI@3%b;BO&$SlHGYSYS}n*gYahWic|C|5MEGVw690GpaLve62{_Qjcn))I zw%W3WFm1s^*SD6Fr`>J`oo;tglZSG&JHR#he-Wy6w85R}b6GR8@_5ta=7A=+F!}DN z918il9|}cqUq5#5C)WjKGPVzKBaSJP&v~_Ga*;s@_goTMn4H&8*W{ZBbJ?oFOtr*F zHSFf(C~!zaNtsO>%%{mPlH>_clQhw2FtR$KHaVEy=R?{vxyA(#_`maq&nG{^c4n|9 ze{QljwXfD3pIJ8CJ%cMraIyFEp$DTdzd{n zc{Gs7F@9ol$L_D2Jits^+Z$kwp7WZKC_@oNf=%~UL@4uSd%MN*_O=rBiOI+qWJ8&( z67(u3AIQ6++Rb=a-iG+)A^Fipx>%VUXvcLr7RW+Dz4C%~vOpn#Gm`PFHo0Q3f597d znUFLI?zgnbcjT#OatK25g_>+_q>C{Wy-^3|WR9h^CMHAJ9ii{`*=iI_*xkvzH+MyS zGy!x57>i+FF@x#-NDRnM9r8&zQ$Kf8R=tKV>1KF__7O1BVIbP?K2?A({kKZqX+19F}Bj zCi4{hM+Q@ujE2ptAj^zaxgUvyl&~Qd$awm+l|F6fKD+YLg(1Aubg}l$EprR7XFkV* z4O8@Vl*(gUT8t$fXcl$@@61Hj0TxWV5c;#pvP(=JVyud|#m%m`ax9m2}w1*Z%G5^d!ObIV}zkQ;n?L2|F6T+QtS$)Zjdp-TX7 zNv0sX_V0E=46+U6c^@Eoz@w^{ldFu!4h!^XcqSJF;&2S8di*m@(oU>=xgr4Mlw-j3veY~)tXFZ*N1m0T)yBm{u-e+a^n7KE$FDgN(> z$B|CPt8u|_;L+|i0+nMh!M2M21MzcPaQdki> zc2_6#$o~5-Y?X}J8K7c*^4*f1`J9ZBq3U!p{dvhxQZ$DdbKn;oT(&7WAz=e0C>ctw zE^a1mN`5rL2DA1&Tp58K(+O))@|~4aJ{g`n_L~u~?PxZ;e{E2*BRl1EmwZ10C^@Ss zx#pOi7%BdiG>PXehX1Ee&}GT>j@O|fnH82Je(YpN6h%=ON0A|-Vgxf8;Qi0 zTH3Bo-<`f-!nMc#?K}d|dC7&tht10O%s zg*(2+IURIefAX`hwHhm>bgoEGrN(91D3u$3O)<^(4dNC4tGAes;EkO-v|$(q!YF*; zP-&%-bh1i?N6IQi=>P}HGs+F)9Wp?mrQp!$c{bPa+-4DOMvz!?TeZUa72&oTXRq5^F6%`lfA0@UM&@QDTq}6oCrU=*X2i6H zeV&wz#FD$#i0wzoNL)Xe)`*QoDiTYcOlvHEUfLt`Py2(ryIWD*4B#;Sr}X4O2ohN# zaiP%Q$$(&B4nin9%s?WfIY>f4HlQ#R05cRTdKt}!j-+A@DfxPHrHWG|l7?rTW^dw1L;p&xGU=+)_xE~a zBx^(e~oOIq~^lIy$RVs(#Rzp7%|bkYS^91maJY`k`d1qe>nrS ztT4(U%6m4o(KxrUx3H?&7zV^~(jl2*SMgYK(G9K*yOL-(*|Fk!IR&!zkjBZfBvD@e|s4vzg{jM$d}9AspP0EOPgxg;z^g#k!}dpaF%$z zk|R%=L+VJz18f~hoV!zOL%lTSvTUe7O33#ye)kq2;K=B;2eM@1x;;rQw^!7%kWP~i zCu{Wp!VRhK`*vOO2ySDJx-uHju5}0CUhH;rvfXaieWGMlyKb&1r1O&Je_Yii-%*URMAgm>tkYWW%C#m!wtbPdb z{Xpuz%V4&Xu>A^b>s4PaXFSQufqXM3SH`8}_?QNES%xHKDIYsc*GaON;IU~+1|EDX zf7le{8rgDifPk5>X_E^y*Co>d}y7cx()pgS(HPkX!vYgMvc3 zyZ@+UW9Ts%zM*ByW4gk==vd6Y!PV#Ta$b{v?Y+~BFf`4Sd}CgoO13@EgKCKJQ~)a; z`9mfFR+;B{xO(U#V|qBT?jjC6j*7xHLvxZ>*;SuF^% zkv=jAy`dM(NmP3sft{a9mRwj3A*^6)G#RL1B{5r3=yQ27SA0MJ`f~nDzzwkd&w28k z8Dr}Wk<}R70oXAve`IbLNr|PVL2xM%iKF&R;GsA&=Ggx#d1;f!l@$7I$$75YibPM?fo&?_ zPPINY6R)6bN*)6wr+M;^)d`hPrx(mFi5xu_|3#LJ6){Gv!1PL;>@-ExB?kxi%&%$!_<->efcBn1ImGoRti75z<>MmI)E5 zH1cNfKs296`1ARNHFb%L9xG|jMpEQX@tVd59;`Ja)%B5dv9uxL$Qk{Za-SqN^CYTn z3rSa`s!YjLe;+S`oTEE^Y?!f8#83^xBQZ?8jB!))1SU*RCHpiw%(SM^v-woXzkm6? z>YVk*am!zSHr{{t_UL`R_3b}=_sJ{17xO+NK9EJHdGd%eo}{|ul-7qfTx$cIN}ez} zm0aRgi#!s|P-6f$IZG8Jx}kNc4A#;bC~nF6{ght+f4beD_wa+jB@8-E$;2*Eg-luy z+b7)w@V+TBGoa{ndXiGge?9=Ytff6on+dRdW!C`vlP6ep$$Pd0 z&0Sm3qxj-jiG1p>5|{;kEY}=^!~J|@!Pk0`&QNMTm4cOFMWHW?>}Ag-OKo! zk-ytJf1B1;sxXc}T)O!a8A3t>ncUr27nMK)T?~U}Ok^^cMx4aR;6MUFZXjBwXUjxf25?!x3gsx$#i z9SPEO6|N5KQW7W;9rP`jCM-xSqMQpSn}iFAAB@Ru9}w!z#P!viO%-Tz*=)vBV~b6* zaA3ePjD2bH%=7AF&vVP3Cr!<&@P7AEV$KM!?^SE~wz zV`c@94KSuOIZNp#+G(Io0bMZ3r8T~NpfESN<*h`w@j74!ozonx0Bvpz^c0QuMsj5& ziY~M!>c|tDoXgoL(1URIPWwxGdPtYo*EHv;ID14lJ3GHL`O#^_2AP~56Pqkvf0Rg? zTtjDWva>L`13-nv<|NdbitGq^6|NnatfL>9tO1#t#;1LhP zhsw2bc(rVD7+ol#$+x)MKED9= zxaXKGqu(RqKhJscg75yM$)~4BbauM48Yka}ClB@{@VDQt{=((1zx&u?%Qb6AM5#3G@j=0KeBa-D#mf;hs1G!4T2B#~8WjioMTM9t*Lix6 zI;^C!A2UbO3{lH^WnU-Bs7IvtXB1KzdZPUxxVFC0kyla^f4WBW^lY?GFmyboYvLLl zN2p)mtBjuviE&*DND}pRx`T%_nQ!=n$v2`ry<&fb$qEV1ZkxGGD4SuIB!#=T8up5FxX$v5<_&{mp!d7;q7#pxmOY@7T#6V9`|m+vjOzT4ynyW`^z z0ob~{(Xb!)f1ZV7j_AFoeCKzyqa5ib?R#x*!*6UY`4c8TKO%Le+P9hI&F)R+vbfIN{ppQFm~K4%-P zPNxN%e_v)uvX9zCa1eT>BC_}HP{47=#f)~dSryqVD{W(}wcG6xnr()N zUO|IP2mSfwO{t_pQs(1IlNn7Ru~)OZ%5cP+Y-%**^J~eUF!_d##A@{;4v$aiaEDF4 z3`~BiT+xE}-9-}>hMXT%npo3M(D=3A*~})#@X}B7#beFj?oGf3R1wyTk?6Nku@5Hif%)b%vwu1wE3B*VjBQ z^CHOUa-1wHu2}mcu4b<3@cG?iaxYGsib9&EB~a&5p;QeEta%QK8=4$oG;&0fN}nVd zPNtvXlQ<)UEtKb|XiAgg-InBWXmWor80@Lo^O~?}0)fYoi3%=?^E{T z8`MK$d;%TJX=;JVjf$=WCYt~(z@vJVME(GQ5hhoCUx&St-DQd*$9dir7+lh(@CUM= z9uXH$&sb^Y=pu?5E|+*N>z`jRS{ZqLL&s#I7>rwU7cJPX#F8ebz>Fi4 z#p8QYXzVen8kjsKN$Hl!e+C+vg~`KG$w2IOoUD+bYwWSfw8se}9au#^={5Gex;~uF zvPHYD5ioXPcUx*nn%o^*F#IY66^+dV@@f<(uVi=0_ASg=j|BKN&g0`XzWv#$d16rcZIgYVOSBqYL?+W57kM2aF%i#D41E_#OKx}yf1`%J=v#rD)iY?S zqEd!k)aG%rgQ|>^SF*cg`>x|uk#`(tbK>NOGdb4FtVPbq-(hmCFOg$%0)6CrDO6TX zR%A&Y(3Gf=$>|foq{w6*<;%Zra>=m(cr~UBwbm8aGaSLI3zLf^Q@gvcNvpt#Or{#T zF#!F!$vPzVN_JP+f4&Il>WDUnqlbG2Q8KeG`;+f)azR-#*~bD`9F>p{=C^?2NpH#I zZeZ>ZKqQW&-9#fxOD2zm!K)_69Ij(V)N1b0B)Eb)%pv^9WDzIZL<6X#&P`6BL9><% zZ*FoO_2E#5y_(%6+jkqNcEB$-hKDp+*;tdS>TF?hiKokIe>iEiJgEG#lr}VW$rMrp z1-J{7-3Fi&)1Q)7psu56;}J0h%LXismQ8Nv^Xjjdtm8Q4cIudk;2|_w12U|!G`VD? z7ADg$MXDN@SqD1WU}C`}0?I1Y;WMJ|L^%M}7CLiz_pi+^BhJkt9Mx(0cC=Ni?h#(k4C28_Xc9&>h zNx~HuG*Q=cP-Z{YYE0f#lk31Vij%d8*+7HWDB7rSe;KS+ccHQrKppzRWFl zk)Fb(I;z6UY9D}W=(^E&i^60I$W29k9s;Yu&0IhWO{Q!jJCs*Y#c>%HNt1^dlZe8l zq3wZ(vJkZi)JMtQ*s7ammZ0)1N|k%;Ck@!E*A&l^mFu8@vAtTg8jkyOXX%)#duuC%=A(-B> zP;1SU76fCOn@m#xz6>rN11Vv$0l<;bg{2F{0<^k|=7vZW5(R z6fkSG+M@M6)3mv19UaEFJ)(8Hby+)r~y)}7D#6R|g!~3(bpEI)M zKf+JXb{>LfKWt6j^0)HE1DX8Y*5oaJD@RWrBE0zU$?NO$IU`&C8+`E)dx*|?NS@G^ zEq^CJ{p&YSl! zZB5?tcbd!$b;B4YLWYJUI`itwuf6r@r{8?~)=MvsR@!j&kKcax!xOeT4PAoQPw`a4-H6+*V&3asK9v_>(q3oRFM1nge+mmi0aoo#hXv_bc Zp8;2dj7jJ?vc~`b002ovPDHLkV1hXA$`Swo diff --git a/docs/cs-basics/network/images/network-layer/smtp.png b/docs/cs-basics/network/images/network-layer/smtp.png index 03ca5c3c5ddaa4e1cb665c29972452fedb2da6b3..6580bfb263c7763cd7692d4fc4cf1912cefb57d5 100644 GIT binary patch literal 14676 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 diff --git a/docs/cs-basics/network/images/osi&tcp-ip-model/TCP-IP-4-model.png b/docs/cs-basics/network/images/osi&tcp-ip-model/TCP-IP-4-model.png index bdbe1c77d7505eee2ee1aeaf0a646bd3971fd8e7..7db48d8cc6233cec66b0ae479fd6c347ce6dbf9e 100644 GIT binary patch delta 26109 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 UtfGp8NB{r;07*qoM6N<$f?!DVGXMYp delta 27258 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 Zp8;2dj7jJ?vc~`b002ovPDHLkV1hXA$`Swo diff --git a/docs/cs-basics/network/images/osi&tcp-ip-model/application-layer.png b/docs/cs-basics/network/images/osi&tcp-ip-model/application-layer.png index 4a0241bfce93e3837403ae6131820b7d53570b5d..a1ec5c7e0182f0fdbf77e539f4c0f2cf53b1cebe 100644 GIT binary patch delta 13189 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 delta 14308 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 S6#`cP0000t0U;i) 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 xw>GH%LAXV!Yq_4gJ006+iz^1Xl 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 shK5GizVT=7Si2Joyw+wi>1XZ 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

*{kEzNLFozph?qL`~-`!(L}Z5@@)! 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 delta 13748 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Ⓢ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 =TQ~ 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 z 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 A0{{R3 diff --git a/docs/java/basis/java-basic-questions-01.md b/docs/java/basis/java-basic-questions-01.md index 0222c434..e81f3fed 100644 --- a/docs/java/basis/java-basic-questions-01.md +++ b/docs/java/basis/java-basic-questions-01.md @@ -121,90 +121,13 @@ JRE 是 Java 运行时环境。它是运行已编译 Java 程序所需的所有 ### 字符型常量和字符串常量的区别? -1. **形式** : 字符常量是单引号引起的一个字符,字符串常量是双引号引起的 0 个或若干个字符 -2. **含义** : 字符常量相当于一个整型值( ASCII 值),可以参加表达式运算; 字符串常量代表一个地址值(该字符串在内存中存放位置) -3. **占内存大小** : 字符常量只占 2 个字节; 字符串常量占若干个字节 (**注意: `char` 在 Java 中占两个字节**) +1. **形式** : 字符常量是单引号引起的一个字符,字符串常量是双引号引起的 0 个或若干个字符。 +2. **含义** : 字符常量相当于一个整型值( ASCII 值),可以参加表达式运算; 字符串常量代表一个地址值(该字符串在内存中存放位置)。 +3. **占内存大小** : 字符常量只占 2 个字节; 字符串常量占若干个字节。 -### 使用过可变长参数吗? + (**注意: `char` 在 Java 中占两个字节**) -从 Java5 开始,Java 支持定义可变长参数,所谓可变长参数就是允许在调用方法时传入不定长度的参数。就比如下面的这个 `printVariable` 方法就可以接受 0 个或者多个参数。 - -```java -public static void method1(String... args) { - //...... -} -``` - -另外,可变参数只能作为函数的最后一个参数,但其前面可以有也可以没有任何其他参数。 - -```java -public static void method2(String arg1, String... args) { - //...... -} -``` - -**遇到方法重载的情况怎么办呢?会优先匹配固定参数还是可变参数的方法呢?** - -答案是会优先匹配固定参数的方法,因为固定参数的方法匹配度更高。 - -我们通过下面这个例子来证明一下。 - -```java -/** - * 微信搜 JavaGuide 回复"面试突击"即可免费领取个人原创的 Java 面试手册 - * - * @author Guide哥 - * @date 2021/12/13 16:52 - **/ -public class VariableLengthArgument { - - public static void printVariable(String... args) { - for (String s : args) { - System.out.println(s); - } - } - - public static void printVariable(String arg1, String arg2) { - System.out.println(arg1 + arg2); - } - - public static void main(String[] args) { - printVariable("a", "b"); - printVariable("a", "b", "c", "d"); - } -} -``` - -输出: - -``` -ab -a -b -c -d -``` - -另外,Java 的可变参数编译后实际会被转换成一个数组,我们看编译后生成的 `class`文件就可以看出来了。 - -```java -public class VariableLengthArgument { - - public static void printVariable(String... args) { - String[] var1 = args; - int var2 = args.length; - - for(int var3 = 0; var3 < var2; ++var3) { - String s = var1[var3]; - System.out.println(s); - } - - } - // ...... -} -``` - -### 注释有哪几种?注释越多越好吗? +### 注释有哪几种形式? Java 中的注释有三种: @@ -239,23 +162,25 @@ Java 中的注释有三种: ### 标识符和关键字的区别是什么? -在我们编写程序的时候,需要大量地为程序、类、变量、方法等取名字,于是就有了标识符,简单来说,标识符就是一个名字。但是有一些标识符,Java 语言已经赋予了其特殊的含义,只能用于特定的地方,这些特殊的标识符就是关键字。因此,关键字是被赋予特殊含义的标识符。比如,在我们的日常生活中,如果我们想要开一家店,则要给这个店起一个名字,起的这个“名字”就叫标识符。但是我们店的名字不能叫“警察局”,因为“警察局”这个名字已经被赋予了特殊的含义,而“警察局”就是我们日常生活中的关键字。 +在我们编写程序的时候,需要大量地为程序、类、变量、方法等取名字,于是就有了 **标识符** 。简单来说, **标识符就是一个名字** 。 -### Java 中的 `53` 个关键字 +有一些标识符,Java 语言已经赋予了其特殊的含义,只能用于特定的地方,这些特殊的标识符就是 **关键字** 。简单来说,**关键字是被赋予特殊含义的标识**符 。比如,在我们的日常生活中,如果我们想要开一家店,则要给这个店起一个名字,起的这个“名字”就叫标识符。但是我们店的名字不能叫“警察局”,因为“警察局”这个名字已经被赋予了特殊的含义,而“警察局”就是我们日常生活中的关键字。 + +### Java 语言关键字有哪些? | 分类 | 关键字 | | | | | | | -| :------------------- | -------- | ---------- | -------- | ------------ | ---------- | --------- | ------ | -| 访问控制 | private | protected | public | | | | | +| :------------------- | -------- |-------- | -------- | -------- | --------| --------| -------- | +| 访问控制 | private | protected | public | | | | | | 类,方法和变量修饰符 | abstract | class | extends | final | implements | interface | native | | | new | static | strictfp | synchronized | transient | volatile | enum | -| 程序控制 | break | continue | return | do | while | if | else | +| 程序控制 | break | continue | return | do | while | if | else | | | for | instanceof | switch | case | default | assert | | -| 错误处理 | try | catch | throw | throws | finally | | | -| 包相关 | import | package | | | | | | -| 基本类型 | boolean | byte | char | double | float | int | long | -| | short | null | true | false | | | | -| 变量引用 | super | this | void | | | | | -| 保留字 | goto | const | | | | | | +| 错误处理 | try | catch | throw | throws | finally | | | +| 包相关 | import | package | | | | | | +| 基本类型 | boolean | byte | char | double | float | int | long | +| | short | | | | | | | +| 变量引用 | super | this | void | | | | | +| 保留字 | goto | const | | | | | | > Tips:所有的关键字都是小写的,在 IDE 中会以特殊颜色显示。 > @@ -265,6 +190,10 @@ Java 中的注释有三种: > - 在类,方法和变量修饰符中,从 JDK8 开始引入了默认方法,可以使用 `default` 关键字来定义一个方法的默认实现。 > - 在访问控制中,如果一个方法前没有任何修饰符,则默认会有一个修饰符 `default`,但是这个修饰符加上了就会报错。 +注意 ⚠️:`true`, `false`, 和`null`看起来像关键字但不是关键字。 + +官方文档:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html 。 + ### 自增自减运算符 在写代码的过程中,常见的一种情况是需要某个整数类型变量增加 1 或减少 1,Java 提供了一种特殊的运算符,用于这种表达式,叫做自增运算符(++)和自减运算符(--)。 @@ -626,6 +555,85 @@ public native int hashCode(); 更多关于 `hashCode()` 和 `equals()` 的内容可以查看:[Java hashCode() 和 equals()的若干问题解答](https://www.cnblogs.com/skywang12345/p/3324958.html) +### 什么是可变长参数? + +从 Java5 开始,Java 支持定义可变长参数,所谓可变长参数就是允许在调用方法时传入不定长度的参数。就比如下面的这个 `printVariable` 方法就可以接受 0 个或者多个参数。 + +```java +public static void method1(String... args) { + //...... +} +``` + +另外,可变参数只能作为函数的最后一个参数,但其前面可以有也可以没有任何其他参数。 + +```java +public static void method2(String arg1, String... args) { + //...... +} +``` + +**遇到方法重载的情况怎么办呢?会优先匹配固定参数还是可变参数的方法呢?** + +答案是会优先匹配固定参数的方法,因为固定参数的方法匹配度更高。 + +我们通过下面这个例子来证明一下。 + +```java +/** + * 微信搜 JavaGuide 回复"面试突击"即可免费领取个人原创的 Java 面试手册 + * + * @author Guide哥 + * @date 2021/12/13 16:52 + **/ +public class VariableLengthArgument { + + public static void printVariable(String... args) { + for (String s : args) { + System.out.println(s); + } + } + + public static void printVariable(String arg1, String arg2) { + System.out.println(arg1 + arg2); + } + + public static void main(String[] args) { + printVariable("a", "b"); + printVariable("a", "b", "c", "d"); + } +} +``` + +输出: + +``` +ab +a +b +c +d +``` + +另外,Java 的可变参数编译后实际会被转换成一个数组,我们看编译后生成的 `class`文件就可以看出来了。 + +```java +public class VariableLengthArgument { + + public static void printVariable(String... args) { + String[] var1 = args; + int var2 = args.length; + + for(int var3 = 0; var3 < var2; ++var3) { + String s = var1[var3]; + System.out.println(s); + } + + } + // ...... +} +``` + ## 基本数据类型 ### Java 中的几种基本数据类型了解么? From b2933cca07e4d1da0eb5e6bd3584e01cf6bcbd64 Mon Sep 17 00:00:00 2001 From: sam Date: Sat, 26 Feb 2022 03:04:00 +0800 Subject: [PATCH 44/66] fix typo: flase -> false Signed-off-by: sam --- docs/java/basis/java-basic-questions-01.md | 2 +- docs/java/jvm/memory-area.md | 2 +- 2 files 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 e81f3fed..d5b0be44 100644 --- a/docs/java/basis/java-basic-questions-01.md +++ b/docs/java/basis/java-basic-questions-01.md @@ -749,7 +749,7 @@ Double i4 = 1.2; System.out.println(i3 == i4);// 输出 false ``` -下面我们来看一下问题。下面的代码的输出结果是 `true` 还是 `flase` 呢? +下面我们来看一下问题。下面的代码的输出结果是 `true` 还是 `false` 呢? ```java Integer i1 = 40; diff --git a/docs/java/jvm/memory-area.md b/docs/java/jvm/memory-area.md index cba72dae..46a24bdb 100644 --- a/docs/java/jvm/memory-area.md +++ b/docs/java/jvm/memory-area.md @@ -551,7 +551,7 @@ public static Boolean valueOf(boolean b) { 如果超出对应范围仍然会去创建新的对象,缓存的范围区间的大小只是在性能和资源之间的权衡。 -下面我们来看一下问题。下面的代码的输出结果是 `true` 还是 `flase` 呢? +下面我们来看一下问题。下面的代码的输出结果是 `true` 还是 `false` 呢? ```java Integer i1 = 40; From d0d5a2f36039279ae281bda757109af8c492caf1 Mon Sep 17 00:00:00 2001 From: sam Date: Sat, 26 Feb 2022 03:13:56 +0800 Subject: [PATCH 45/66] Update java-basic-questions-01.md Signed-off-by: sam --- 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 e81f3fed..7846ae7d 100644 --- a/docs/java/basis/java-basic-questions-01.md +++ b/docs/java/basis/java-basic-questions-01.md @@ -190,9 +190,9 @@ Java 中的注释有三种: > - 在类,方法和变量修饰符中,从 JDK8 开始引入了默认方法,可以使用 `default` 关键字来定义一个方法的默认实现。 > - 在访问控制中,如果一个方法前没有任何修饰符,则默认会有一个修饰符 `default`,但是这个修饰符加上了就会报错。 -注意 ⚠️:`true`, `false`, 和`null`看起来像关键字但不是关键字。 +注意 ⚠️:虽然 `true`, `false`, 和 `null` 看起来像关键字但实际上他们是字面值,同时你也不可以作为标识符来使用。 -官方文档:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html 。 +官方文档:[https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html) ### 自增自减运算符 From 711757662d94b4d803016eed2e17e226012e99cb Mon Sep 17 00:00:00 2001 From: sam Date: Sat, 26 Feb 2022 03:17:57 +0800 Subject: [PATCH 46/66] Fix typo: TARNSACTION -> TRANSACTION Signed-off-by: sam --- docs/database/mysql/transaction-isolation-level.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/database/mysql/transaction-isolation-level.md b/docs/database/mysql/transaction-isolation-level.md index 33c20a5f..2d2930be 100644 --- a/docs/database/mysql/transaction-isolation-level.md +++ b/docs/database/mysql/transaction-isolation-level.md @@ -88,7 +88,7 @@ InnoDB 存储引擎在 **分布式事务** 的情况下一般会用到 **SERIALI 在下面我会使用 2 个命令行mysql ,模拟多线程(多事务)对同一份数据的脏读问题。 -MySQL 命令行的默认配置中事务都是自动提交的,即执行SQL语句后就会马上执行 COMMIT 操作。如果要显式地开启一个事务需要使用命令:`START TARNSACTION`。 +MySQL 命令行的默认配置中事务都是自动提交的,即执行SQL语句后就会马上执行 COMMIT 操作。如果要显式地开启一个事务需要使用命令:`START TRANSACTION`。 我们可以通过下面的命令来设置隔离级别。 @@ -98,7 +98,7 @@ SET [SESSION|GLOBAL] TRANSACTION ISOLATION LEVEL [READ UNCOMMITTED|READ COMMITTE 我们再来看一下我们在下面实际操作中使用到的一些并发控制语句: -- `START TARNSACTION` |`BEGIN`:显式地开启一个事务。 +- `START TRANSACTION` |`BEGIN`:显式地开启一个事务。 - `COMMIT`:提交事务,使得对数据库做的所有修改成为永久性。 - `ROLLBACK`:回滚会结束用户的事务,并撤销正在进行的所有未提交的修改。 From 8e415b7fa1f7ef193b0a8188c7bf56e3c67e2858 Mon Sep 17 00:00:00 2001 From: guide Date: Sat, 26 Feb 2022 08:10:15 +0800 Subject: [PATCH 47/66] Update java-collection-questions-01.md --- docs/java/collection/java-collection-questions-01.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/java/collection/java-collection-questions-01.md b/docs/java/collection/java-collection-questions-01.md index c91861aa..80034e40 100644 --- a/docs/java/collection/java-collection-questions-01.md +++ b/docs/java/collection/java-collection-questions-01.md @@ -123,7 +123,7 @@ public interface RandomAccess { ### 说一说 ArrayList 的扩容机制吧 -详见笔主的这篇文章:[通过源码一步一步分析 ArrayList 扩容机制](https://snailclimb.gitee.io/javaguide/#/docs/java/collection/arraylist-source-code?id=_2-arraylist-%e6%a0%b8%e5%bf%83%e6%ba%90%e7%a0%81%e8%a7%a3%e8%af%bb) +详见笔主的这篇文章:[ArrayList 扩容机制分析](https://javaguide.cn/java/collection/arraylist-source-code/#_2-arraylist-核心源码解读) ## Collection 子接口之 Set From ee3772dc66f6623c84252c82b8696087fecc2ef2 Mon Sep 17 00:00:00 2001 From: guide Date: Sun, 27 Feb 2022 15:39:34 +0800 Subject: [PATCH 48/66] =?UTF-8?q?[docs=20fix]=20springcloud=E5=85=A5?= =?UTF-8?q?=E9=97=A8=E6=A0=87=E9=A2=98=E6=A0=BC=E5=BC=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 70 ++++++------ .../distributed-transaction.md | 5 +- docs/high-availability/降级&熔断.md | 7 +- docs/java/basis/generics.md | 7 +- docs/readme.md | 6 +- docs/system-design/framework/netty.md | 5 +- .../springcloud/springcloud-intro.md | 103 +++++++++--------- docs/system-design/system-design-questions.md | 5 +- 8 files changed, 97 insertions(+), 111 deletions(-) diff --git a/README.md b/README.md index ad5763f9..fc9f667e 100755 --- a/README.md +++ b/README.md @@ -1,43 +1,41 @@ -## 👏 重大更新!!!重磅! +> [JavaGuide 官方知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)来啦!!!如果你需要专属面试小册/一对一交流/简历修改/专属求职指南/学习打卡,不妨花 3 分钟左右看看星球的详细介绍: [JavaGuide 知识星球详细介绍](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc) (一定要确定自己真的需要再加入,一定要看完详细介绍之后再加我)。 -- JavaGuide 在线阅读版(新版,推荐👍):https://javaguide.cn/ -- JavaGuide 在线阅读版(老版):https://snailclimb.gitee.io/javaguide/#/ -- [《JavaGuide 面试突击版》PDF 版本下载](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=100029614&idx=1&sn=62993c5cf10265cb7018db7f1ec67250&chksm=4ea1fb6579d67273499b7243641d4ef372decd08047bfbb6dfb5843ef81c7ccba209086cf345#rd) - - - -> 1. **介绍**:关于 JavaGuide 的相关介绍请看:[关于 JavaGuide 的一些说明](https://www.yuque.com/snailclimb/dr6cvl/mr44yt) 。 -> 2. **贡献指南** :欢迎参与 [JavaGuide的维护工作](https://github.com/Snailclimb/JavaGuide/issues/1235),这是一件非常有意义的事情。 -> 3. **PDF版本** : [《JavaGuide 面试突击版》PDF 版本](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=100029614&idx=1&sn=62993c5cf10265cb7018db7f1ec67250&chksm=4ea1fb6579d67273499b7243641d4ef372decd08047bfbb6dfb5843ef81c7ccba209086cf345#rd) 。 -> 4. **图解计算机基础** :[图解计算机基础 PDF 下载](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=100021725&idx=1&sn=2db9664ca25363139a81691043e9fd8f&chksm=4ea19a1679d61300d8990f7e43bfc7f476577a81b712cf0f9c6f6552a8b219bc081efddb5c54#rd) 。 -> 5. **知识星球** : 简历指导/Java学习/面试指导/面试小册。欢迎加入[我的知识星球](https://sourl.cn/psyWaE) 。 -> 6. **面试专版** :准备面试的小伙伴可以考虑面试专版:[《Java面试进阶指北 》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7) (质量很高,专为面试打造,星球用户免费) -> 7. **转载须知** :以下所有文章如非文首说明皆为我(Guide哥)的原创,转载在文首注明出处,如发现恶意抄袭/搬运,会动用法律武器维护自己的权益。让我们一起维护一个良好的技术创作环境!⛽️ - -

- - - -

-

- 阅读 - stars - forks - issues -

-

推荐

- - - - - - -
+
+

- -

+ + +

+

+ + + +

+

+ 阅读 + stars + forks + issues +

+ +> 1. **面试专版** :准备面试的小伙伴可以考虑面试专版:[《Java 面试进阶指北 》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7) (质量很高,专为面试打造,配合 JavaGuide 食用)。 +> 1. **知识星球** :专属面试小册/一对一交流/简历修改/专属求职指南,欢迎加入 [JavaGuide 知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)(点击链接即可查看星球的详细介绍,一定一定一定确定自己真的需要再加入,一定一定要看完详细介绍之后再加我)。 +> 2. **转载须知** :以下所有文章如非文首说明为转载皆为我(Guide 哥)的原创,转载在文首注明出处,如发现恶意抄袭/搬运,会动用法律武器维护自己的权益。让我们一起维护一个良好的技术创作环境! + +推荐你通过在线阅读网站进行阅读,体验更好,速度更快! + +- [JavaGuide 在线阅读网站(新版,推荐👍)](https://javaguide.cn/) +- [JavaGuide 在线阅读版(老版)](https://snailclimb.gitee.io/javaguide/#/) + +你可能需要: + +- [项目介绍](./docs/javaguide/intro) +- [贡献指南](./docs/javaguide/contribution-guideline) +- [常见问题](./docs/javaguide/faq) +- [项目代办](./docs/javaguide/todo) + ## Java ### 基础 diff --git a/docs/distributed-system/distributed-transaction.md b/docs/distributed-system/distributed-transaction.md index 67fc9415..c020c89e 100644 --- a/docs/distributed-system/distributed-transaction.md +++ b/docs/distributed-system/distributed-transaction.md @@ -13,12 +13,11 @@ category: 分布式 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220211231206733.png) -专属面试小册/一对一交流/简历修改/专属求职指南,欢迎加入我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)!。 +如果你需要专属面试小册/一对一交流/简历修改/专属求职指南/学习打卡,不妨花 3 分钟左右看看星球的详细介绍: [JavaGuide 知识星球详细介绍](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc) (一定要确定自己真的需要再加入,一定要看完详细介绍之后再加我)。 星球目前的定价为 **159/年**,即将调整为 **199/年**。如果的认可 JavaGuide,相信我,并且需要星球提供的专属服务,那欢迎你加入我的星球。你可以添加我的私人微信领取星球专属优惠券,限时 **100/年** 加入。一定要备注“**星球优惠券**”! ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220211231926486.png) -**用心做内容,不割韭菜。加油!!!** +**用心做内容,真心希望帮助到你,拒绝知识付费割韭菜。加油!!!** -知识星球详细介绍请看(一定一定一定确定自己真的需要再加入,一定一定要看完详细介绍之后再加我):[https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)。 diff --git a/docs/high-availability/降级&熔断.md b/docs/high-availability/降级&熔断.md index 59f6c368..acc7b673 100644 --- a/docs/high-availability/降级&熔断.md +++ b/docs/high-availability/降级&熔断.md @@ -10,14 +10,13 @@ ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220211231206733.png) -专属面试小册/一对一交流/简历修改/专属求职指南,欢迎加入我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)!。 +如果你需要专属面试小册/一对一交流/简历修改/专属求职指南/学习打卡,不妨花 3 分钟左右看看星球的详细介绍: [JavaGuide 知识星球详细介绍](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc) (一定要确定自己真的需要再加入,一定要看完详细介绍之后再加我)。 星球目前的定价为 **159/年**,即将调整为 **199/年**。如果的认可 JavaGuide,相信我,并且需要星球提供的专属服务,那欢迎你加入我的星球。你可以添加我的私人微信领取星球专属优惠券,限时 **100/年** 加入。一定要备注“**星球优惠券**”! ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220211231926486.png) -**用心做内容,不割韭菜。加油!!!** - -知识星球详细介绍请看(一定一定一定确定自己真的需要再加入,一定一定要看完详细介绍之后再加我):[https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)。 +**用心做内容,真心希望帮助到你,拒绝知识付费割韭菜。加油!!!** + diff --git a/docs/java/basis/generics.md b/docs/java/basis/generics.md index e6f35e96..164794b6 100644 --- a/docs/java/basis/generics.md +++ b/docs/java/basis/generics.md @@ -15,16 +15,13 @@ tag: ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220211231206733.png) -专属面试小册/一对一交流/简历修改/专属求职指南,欢迎加入我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)!。 +如果你需要专属面试小册/一对一交流/简历修改/专属求职指南/学习打卡,不妨花 3 分钟左右看看星球的详细介绍: [JavaGuide 知识星球详细介绍](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc) (一定要确定自己真的需要再加入,一定要看完详细介绍之后再加我)。 星球目前的定价为 **159/年**,即将调整为 **199/年**。如果的认可 JavaGuide,相信我,并且需要星球提供的专属服务,那欢迎你加入我的星球。你可以添加我的私人微信领取星球专属优惠券,限时 **100/年** 加入。一定要备注“**星球优惠券**”! ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220211231926486.png) -**用心做内容,不割韭菜。加油!!!** - -知识星球详细介绍请看(一定一定一定确定自己真的需要再加入,一定一定要看完详细介绍之后再加我):[https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)。 - +**用心做内容,真心希望帮助到你,拒绝知识付费割韭菜。加油!!!** diff --git a/docs/readme.md b/docs/readme.md index 42cb7db1..39d35129 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -15,11 +15,9 @@ action: ## 👍官方知识星球 -专属面试小册/一对一交流/简历修改/专属求职指南。欢迎加入 JavaGuide [知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc),星球详细介绍:[https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)。 + [JavaGuide 官方知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)来啦!!!如果你需要专属面试小册/一对一交流/简历修改/专属求职指南/学习打卡,不妨花 3 分钟左右看看星球的详细介绍: [JavaGuide 知识星球详细介绍](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc) (一定要确定自己真的需要再加入,一定要看完详细介绍之后再加我)。 -**最优质良心的 Java 面试交流星球,多次被官方推荐!** - -**真诚欢迎准备面试的小伙伴加入星球一起交流!真心希望能够帮助到更多小伙伴!相信一定不会让你失望的!** +**用心做内容,真心希望帮助到你,拒绝知识付费割韭菜。加油!!!** ## 👉推荐阅读 diff --git a/docs/system-design/framework/netty.md b/docs/system-design/framework/netty.md index e5e94990..19b03f87 100644 --- a/docs/system-design/framework/netty.md +++ b/docs/system-design/framework/netty.md @@ -13,12 +13,11 @@ Netty 相关的面试题为我的[知识星球](https://www.yuque.com/docs/share ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220211231206733.png) -专属面试小册/一对一交流/简历修改/专属求职指南,欢迎加入我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)!。 +如果你需要专属面试小册/一对一交流/简历修改/专属求职指南/学习打卡,不妨花 3 分钟左右看看星球的详细介绍: [JavaGuide 知识星球详细介绍](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc) (一定要确定自己真的需要再加入,一定要看完详细介绍之后再加我)。 星球目前的定价为 **159/年**,即将调整为 **199/年**。如果的认可 JavaGuide,相信我,并且需要星球提供的专属服务,那欢迎你加入我的星球。你可以添加我的私人微信领取星球专属优惠券,限时 **100/年** 加入。一定要备注“**星球优惠券**”! ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220211231926486.png) -**用心做内容,不割韭菜。加油!!!** +**用心做内容,真心希望帮助到你,拒绝知识付费割韭菜。加油!!!** -知识星球详细介绍请看(一定一定一定确定自己真的需要再加入,一定一定要看完详细介绍之后再加我):[https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)。 diff --git a/docs/system-design/framework/springcloud/springcloud-intro.md b/docs/system-design/framework/springcloud/springcloud-intro.md index edcc68ca..8a3e83ab 100644 --- a/docs/system-design/framework/springcloud/springcloud-intro.md +++ b/docs/system-design/framework/springcloud/springcloud-intro.md @@ -4,13 +4,11 @@ > > 授权转载自:https://juejin.im/post/5de2553e5188256e885f4fa3 - - 首先我给大家看一张图,如果大家对这张图有些地方不太理解的话,我希望你们看完我这篇文章会恍然大悟。 ![Spring Cloud 总体架构](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-11/spring-cloud总体架构.jpg) -## 什么是Spring Cloud +## 什么是 Spring Cloud > 构建分布式系统不仅复杂而且容易出错。Spring Cloud 为最常见的分布式系统模式提供了一种简单且易于接受的编程模型,帮助开发人员构建有弹性的、可靠的、协调的应用程序。Spring Cloud 构建于 Spring Boot 之上,使得开发者很容易入手并快速应用于生产中。 @@ -26,7 +24,7 @@ ## Spring Cloud 的服务发现框架——Eureka -> `Eureka`是基于`REST`(代表性状态转移)的服务,主要在 `AWS` 云中用于定位服务,以实现负载均衡和中间层服务器的故障转移。我们称此服务为`Eureka`服务器。Eureka还带有一个基于 `Java` 的客户端组件 `Eureka Client`,它使与服务的交互变得更加容易。客户端还具有一个内置的负载平衡器,可以执行基本的循环负载平衡。在 `Netflix`,更复杂的负载均衡器将 `Eureka` 包装起来,以基于流量,资源使用,错误条件等多种因素提供加权负载均衡,以提供出色的弹性。 +> `Eureka`是基于`REST`(代表性状态转移)的服务,主要在 `AWS` 云中用于定位服务,以实现负载均衡和中间层服务器的故障转移。我们称此服务为`Eureka`服务器。Eureka 还带有一个基于 `Java` 的客户端组件 `Eureka Client`,它使与服务的交互变得更加容易。客户端还具有一个内置的负载平衡器,可以执行基本的循环负载平衡。在 `Netflix`,更复杂的负载均衡器将 `Eureka` 包装起来,以基于流量,资源使用,错误条件等多种因素提供加权负载均衡,以提供出色的弹性。 总的来说,`Eureka` 就是一个服务发现框架。何为服务,何又为发现呢? @@ -66,33 +64,33 @@ **服务注册 Register**: -官方解释:当 `Eureka` 客户端向 `Eureka Server` 注册时,它提供自身的**元数据**,比如IP地址、端口,运行状况指示符URL,主页等。 +官方解释:当 `Eureka` 客户端向 `Eureka Server` 注册时,它提供自身的**元数据**,比如 IP 地址、端口,运行状况指示符 URL,主页等。 结合中介理解:房东 (提供者 `Eureka Client Provider`)在中介 (服务器 `Eureka Server`) 那里登记房屋的信息,比如面积,价格,地段等等(元数据 `metaData`)。 **服务续约 Renew**: -官方解释:**`Eureka` 客户会每隔30秒(默认情况下)发送一次心跳来续约**。 通过续约来告知 `Eureka Server` 该 `Eureka` 客户仍然存在,没有出现问题。 正常情况下,如果 `Eureka Server` 在90秒没有收到 `Eureka` 客户的续约,它会将实例从其注册表中删除。 +官方解释:**`Eureka` 客户会每隔 30 秒(默认情况下)发送一次心跳来续约**。 通过续约来告知 `Eureka Server` 该 `Eureka` 客户仍然存在,没有出现问题。 正常情况下,如果 `Eureka Server` 在 90 秒没有收到 `Eureka` 客户的续约,它会将实例从其注册表中删除。 结合中介理解:房东 (提供者 `Eureka Client Provider`) 定期告诉中介 (服务器 `Eureka Server`) 我的房子还租(续约) ,中介 (服务器`Eureka Server`) 收到之后继续保留房屋的信息。 -**获取注册列表信息 Fetch Registries**: +**获取注册列表信息 Fetch Registries**: -官方解释:`Eureka` 客户端从服务器获取注册表信息,并将其缓存在本地。客户端会使用该信息查找其他服务,从而进行远程调用。该注册列表信息定期(每30秒钟)更新一次。每次返回注册列表信息可能与 `Eureka` 客户端的缓存信息不同, `Eureka` 客户端自动处理。如果由于某种原因导致注册列表信息不能及时匹配,`Eureka` 客户端则会重新获取整个注册表信息。 `Eureka` 服务器缓存注册列表信息,整个注册表以及每个应用程序的信息进行了压缩,压缩内容和没有压缩的内容完全相同。`Eureka` 客户端和 `Eureka` 服务器可以使用JSON / XML格式进行通讯。在默认的情况下 `Eureka` 客户端使用压缩 `JSON` 格式来获取注册列表的信息。 +官方解释:`Eureka` 客户端从服务器获取注册表信息,并将其缓存在本地。客户端会使用该信息查找其他服务,从而进行远程调用。该注册列表信息定期(每 30 秒钟)更新一次。每次返回注册列表信息可能与 `Eureka` 客户端的缓存信息不同, `Eureka` 客户端自动处理。如果由于某种原因导致注册列表信息不能及时匹配,`Eureka` 客户端则会重新获取整个注册表信息。 `Eureka` 服务器缓存注册列表信息,整个注册表以及每个应用程序的信息进行了压缩,压缩内容和没有压缩的内容完全相同。`Eureka` 客户端和 `Eureka` 服务器可以使用 JSON / XML 格式进行通讯。在默认的情况下 `Eureka` 客户端使用压缩 `JSON` 格式来获取注册列表的信息。 结合中介理解:租客(消费者 `Eureka Client Consumer`) 去中介 (服务器 `Eureka Server`) 那里获取所有的房屋信息列表 (客户端列表 `Eureka Client List`) ,而且租客为了获取最新的信息会定期向中介 (服务器 `Eureka Server`) 那里获取并更新本地列表。 **服务下线 Cancel**: -官方解释:Eureka客户端在程序关闭时向Eureka服务器发送取消请求。 发送请求后,该客户端实例信息将从服务器的实例注册表中删除。该下线请求不会自动完成,它需要调用以下内容:`DiscoveryManager.getInstance().shutdownComponent();` +官方解释:Eureka 客户端在程序关闭时向 Eureka 服务器发送取消请求。 发送请求后,该客户端实例信息将从服务器的实例注册表中删除。该下线请求不会自动完成,它需要调用以下内容:`DiscoveryManager.getInstance().shutdownComponent();` -结合中介理解:房东 (提供者 `Eureka Client Provider`) 告诉中介 (服务器 `Eureka Server`) 我的房子不租了,中介之后就将注册的房屋信息从列表中剔除。 +结合中介理解:房东 (提供者 `Eureka Client Provider`) 告诉中介 (服务器 `Eureka Server`) 我的房子不租了,中介之后就将注册的房屋信息从列表中剔除。 **服务剔除 Eviction**: -官方解释:在默认的情况下,**当Eureka客户端连续90秒(3个续约周期)没有向Eureka服务器发送服务续约,即心跳,Eureka服务器会将该服务实例从服务注册列表删除**,即服务剔除。 +官方解释:在默认的情况下,**当 Eureka 客户端连续 90 秒(3 个续约周期)没有向 Eureka 服务器发送服务续约,即心跳,Eureka 服务器会将该服务实例从服务注册列表删除**,即服务剔除。 -结合中介理解:房东(提供者 `Eureka Client Provider`) 会定期联系 中介 (服务器 `Eureka Server`) 告诉他我的房子还租(续约),如果中介 (服务器 `Eureka Server`) 长时间没收到提供者的信息,那么中介会将他的房屋信息给下架(服务剔除)。 +结合中介理解:房东(提供者 `Eureka Client Provider`) 会定期联系 中介 (服务器 `Eureka Server`) 告诉他我的房子还租(续约),如果中介 (服务器 `Eureka Server`) 长时间没收到提供者的信息,那么中介会将他的房屋信息给下架(服务剔除)。 下面就是 `Netflix` 官方给出的 `Eureka` 架构图,你会发现和我们前面画的中介图别无二致。 @@ -100,7 +98,7 @@ 当然,可以充当服务发现的组件有很多:`Zookeeper` ,`Consul` , `Eureka` 等。 -更多关于 `Eureka` 的知识(自我保护,初始注册策略等等)可以自己去官网查看,或者查看我的另一篇文章 [深入理解 Eureka]()。 +更多关于 `Eureka` 的知识(自我保护,初始注册策略等等)可以自己去官网查看,或者查看我的另一篇文章 [深入理解 Eureka](https://juejin.im/post/5dd497e3f265da0ba7718018)。 ## 负载均衡之 Ribbon @@ -110,7 +108,7 @@ 我不听我不听我不听:hear_no_evil::hear_no_evil::hear_no_evil:。 -我就说一句!**`RestTemplate`是`Spring`提供的一个访问Http服务的客户端类**,怎么说呢?就是微服务之间的调用是使用的 `RestTemplate` 。比如这个时候我们 消费者B 需要调用 提供者A 所提供的服务我们就需要这么写。如我下面的伪代码。 +我就说一句!**`RestTemplate`是`Spring`提供的一个访问 Http 服务的客户端类**,怎么说呢?就是微服务之间的调用是使用的 `RestTemplate` 。比如这个时候我们 消费者 B 需要调用 提供者 A 所提供的服务我们就需要这么写。如我下面的伪代码。 ```java @Autowired @@ -124,11 +122,12 @@ public boolean judge(@RequestBody Request request) { return restTemplate.postForObject(url, request, Boolean.class); } ``` - 如果你对源码感兴趣的话,你会发现上面我们所讲的 `Eureka` 框架中的 **注册**、**续约** 等,底层都是使用的 `RestTemplate` 。 + +如果你对源码感兴趣的话,你会发现上面我们所讲的 `Eureka` 框架中的 **注册**、**续约** 等,底层都是使用的 `RestTemplate` 。 ### 为什么需要 Ribbon? -`Ribbon` 是 `Netflix` 公司的一个开源的负载均衡 项目,是一个客户端/进程内负载均衡器,**运行在消费者端**。 +`Ribbon` 是 `Netflix` 公司的一个开源的负载均衡 项目,是一个客户端/进程内负载均衡器,**运行在消费者端**。 我们再举个:chestnut:,比如我们设计了一个秒杀系统,但是为了整个系统的 **高可用** ,我们需要将这个系统做一个集群,而这个时候我们消费者就可以拥有多个秒杀系统的调用途径了,如下图。 @@ -160,9 +159,9 @@ public boolean judge(@RequestBody Request request) { 负载均衡,不管 `Nginx` 还是 `Ribbon` 都需要其算法的支持,如果我没记错的话 `Nginx` 使用的是 轮询和加权轮询算法。而在 `Ribbon` 中有更多的负载均衡调度算法,其默认是使用的 `RoundRobinRule` 轮询策略。 -* **`RoundRobinRule`**:轮询策略。`Ribbon` 默认采用的策略。若经过一轮轮询没有找到可用的 `provider`,其最多轮询 10 轮。若最终还没有找到,则返回 `null`。 -* **`RandomRule`**: 随机策略,从所有可用的 `provider` 中随机选择一个。 -* **`RetryRule`**: 重试策略。先按照 `RoundRobinRule` 策略获取 `provider`,若获取失败,则在指定的时限内重试。默认的时限为 500 毫秒。 +- **`RoundRobinRule`**:轮询策略。`Ribbon` 默认采用的策略。若经过一轮轮询没有找到可用的 `provider`,其最多轮询 10 轮。若最终还没有找到,则返回 `null`。 +- **`RandomRule`**: 随机策略,从所有可用的 `provider` 中随机选择一个。 +- **`RetryRule`**: 重试策略。先按照 `RoundRobinRule` 策略获取 `provider`,若获取失败,则在指定的时限内重试。默认的时限为 500 毫秒。 🐦🐦🐦 还有很多,这里不一一举:chestnut:了,你最需要知道的是默认轮询算法,并且可以更换默认的负载均衡算法,只需要在配置文件中做出修改就行。 @@ -176,7 +175,7 @@ providerName: ## 什么是 Open Feign -有了 `Eureka` ,`RestTemplate` ,`Ribbon`, 我们就可以愉快地进行服务间的调用了,但是使用 `RestTemplate` 还是不方便,我们每次都要进行这样的调用。 +有了 `Eureka` ,`RestTemplate` ,`Ribbon`, 我们就可以愉快地进行服务间的调用了,但是使用 `RestTemplate` 还是不方便,我们每次都要进行这样的调用。 ```java @Autowired @@ -187,18 +186,18 @@ private static final String SERVICE_PROVIDER_A = "http://localhost:8081"; @PostMapping("/judge") public boolean judge(@RequestBody Request request) { String url = SERVICE_PROVIDER_A + "/service1"; - // 是不是太麻烦了???每次都要 url、请求、返回类型的 + // 是不是太麻烦了???每次都要 url、请求、返回类型的 return restTemplate.postForObject(url, request, Boolean.class); } ``` 这样每次都调用 `RestRemplate` 的 `API` 是否太麻烦,我能不能像**调用原来代码一样进行各个服务间的调用呢?** -:bulb::bulb::bulb:聪明的小朋友肯定想到了,那就用 **映射** 呀,就像域名和IP地址的映射。我们可以将被调用的服务代码映射到消费者端,这样我们就可以 **“无缝开发” **啦。 +:bulb::bulb::bulb:聪明的小朋友肯定想到了,那就用 **映射** 呀,就像域名和 IP 地址的映射。我们可以将被调用的服务代码映射到消费者端,这样我们就可以 **“无缝开发” **啦。 -> `OpenFeign` 也是运行在消费者端的,使用 `Ribbon` 进行负载均衡,所以 `OpenFeign` 直接内置了 `Ribbon`。 +> `OpenFeign` 也是运行在消费者端的,使用 `Ribbon` 进行负载均衡,所以 `OpenFeign` 直接内置了 `Ribbon`。 -在导入了 `Open Feign` 之后我们就可以进行愉快编写 `Consumer` 端代码了。 +在导入了 `Open Feign` 之后我们就可以进行愉快编写 `Consumer` 端代码了。 ```java // 使用 @FeignClient 注解来指定提供者的名字 @@ -229,17 +228,17 @@ public class TestController { ## 必不可少的 Hystrix -### 什么是 Hystrix之熔断和降级 +### 什么是 Hystrix 之熔断和降级 -> 在分布式环境中,不可避免地会有许多服务依赖项中的某些失败。Hystrix是一个库,可通过添加等待时间容限和容错逻辑来帮助您控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点,停止服务之间的级联故障并提供后备选项来实现此目的,所有这些都可以提高系统的整体弹性。 +> 在分布式环境中,不可避免地会有许多服务依赖项中的某些失败。Hystrix 是一个库,可通过添加等待时间容限和容错逻辑来帮助您控制这些分布式服务之间的交互。Hystrix 通过隔离服务之间的访问点,停止服务之间的级联故障并提供后备选项来实现此目的,所有这些都可以提高系统的整体弹性。 总体来说 `Hystrix` 就是一个能进行 **熔断** 和 **降级** 的库,通过使用它能提高整个系统的弹性。 -那么什么是 熔断和降级 呢?再举个:chestnut:,此时我们整个微服务系统是这样的。服务A调用了服务B,服务B再调用了服务C,但是因为某些原因,服务C顶不住了,这个时候大量请求会在服务C阻塞。 +那么什么是 熔断和降级 呢?再举个:chestnut:,此时我们整个微服务系统是这样的。服务 A 调用了服务 B,服务 B 再调用了服务 C,但是因为某些原因,服务 C 顶不住了,这个时候大量请求会在服务 C 阻塞。 -服务C阻塞了还好,毕竟只是一个系统崩溃了。但是请注意这个时候因为服务C不能返回响应,那么服务B调用服务C的的请求就会阻塞,同理服务B阻塞了,那么服务A也会阻塞崩溃。 +服务 C 阻塞了还好,毕竟只是一个系统崩溃了。但是请注意这个时候因为服务 C 不能返回响应,那么服务 B 调用服务 C 的的请求就会阻塞,同理服务 B 阻塞了,那么服务 A 也会阻塞崩溃。 > 请注意,为什么阻塞会崩溃。因为这些请求会消耗占用系统的线程、IO 等资源,消耗完你这个系统服务器不就崩了么。 @@ -255,9 +254,9 @@ public class TestController { 所谓 **熔断** 就是服务雪崩的一种有效解决方案。当指定时间窗内的请求失败率达到设定阈值时,系统将通过 **断路器** 直接将此请求链路断开。 -也就是我们上面服务B调用服务C在指定时间窗内,调用的失败率到达了一定的值,那么 `Hystrix` 则会自动将 服务B与C 之间的请求都断了,以免导致服务雪崩现象。 +也就是我们上面服务 B 调用服务 C 在指定时间窗内,调用的失败率到达了一定的值,那么 `Hystrix` 则会自动将 服务 B 与 C 之间的请求都断了,以免导致服务雪崩现象。 -其实这里所讲的 **熔断** 就是指的 `Hystrix` 中的 **断路器模式** ,你可以使用简单的 `@HystrixCommand` 注解来标注某个方法,这样 `Hystrix` 就会使用 **断路器** 来“包装”这个方法,每当调用时间超过指定时间时(默认为1000ms),断路器将会中断对这个方法的调用。 +其实这里所讲的 **熔断** 就是指的 `Hystrix` 中的 **断路器模式** ,你可以使用简单的 `@HystrixCommand` 注解来标注某个方法,这样 `Hystrix` 就会使用 **断路器** 来“包装”这个方法,每当调用时间超过指定时间时(默认为 1000ms),断路器将会中断对这个方法的调用。 当然你可以对这个注解的很多属性进行设置,比如设置超时时间,像这样。 @@ -270,7 +269,7 @@ public List getXxxx() { } ``` -但是,我查阅了一些博客,发现他们都将 **熔断** 和 **降级** 的概念混淆了,以我的理解,**降级是为了更好的用户体验,当一个方法调用异常时,通过执行另一种代码逻辑来给用户友好的回复**。这也就对应着 `Hystrix` 的 **后备处理** 模式。你可以通过设置 `fallbackMethod` 来给一个方法设置备用的代码逻辑。比如这个时候有一个热点新闻出现了,我们会推荐给用户查看详情,然后用户会通过id去查询新闻的详情,但是因为这条新闻太火了(比如最近什么*易对吧),大量用户同时访问可能会导致系统崩溃,那么我们就进行 **服务降级** ,一些请求会做一些降级处理比如当前人数太多请稍后查看等等。 +但是,我查阅了一些博客,发现他们都将 **熔断** 和 **降级** 的概念混淆了,以我的理解,**降级是为了更好的用户体验,当一个方法调用异常时,通过执行另一种代码逻辑来给用户友好的回复**。这也就对应着 `Hystrix` 的 **后备处理** 模式。你可以通过设置 `fallbackMethod` 来给一个方法设置备用的代码逻辑。比如这个时候有一个热点新闻出现了,我们会推荐给用户查看详情,然后用户会通过 id 去查询新闻的详情,但是因为这条新闻太火了(比如最近什么\*易对吧),大量用户同时访问可能会导致系统崩溃,那么我们就进行 **服务降级** ,一些请求会做一些降级处理比如当前人数太多请稍后查看等等。 ```java // 指定了后备方法调用 @@ -279,16 +278,16 @@ public List getXxxx() { public News getNews(@PathVariable("id") int id) { // 调用新闻系统的获取新闻api 代码逻辑省略 } -// +// public News getHystrixNews(@PathVariable("id") int id) { // 做服务降级 // 返回当前人数太多,请稍后查看 } ``` -### 什么是Hystrix之其他 +### 什么是 Hystrix 之其他 -我在阅读 《Spring微服务实战》这本书的时候还接触到了一个 **舱壁模式** 的概念。在不使用舱壁模式的情况下,服务A调用服务B,这种调用默认的是 **使用同一批线程来执行** 的,而在一个服务出现性能问题的时候,就会出现所有线程被刷爆并等待处理工作,同时阻塞新请求,最终导致程序崩溃。而舱壁模式会将远程资源调用隔离在他们自己的线程池中,以便可以控制单个表现不佳的服务,而不会使该程序崩溃。 +我在阅读 《Spring 微服务实战》这本书的时候还接触到了一个 **舱壁模式** 的概念。在不使用舱壁模式的情况下,服务 A 调用服务 B,这种调用默认的是 **使用同一批线程来执行** 的,而在一个服务出现性能问题的时候,就会出现所有线程被刷爆并等待处理工作,同时阻塞新请求,最终导致程序崩溃。而舱壁模式会将远程资源调用隔离在他们自己的线程池中,以便可以控制单个表现不佳的服务,而不会使该程序崩溃。 具体其原理我推荐大家自己去了解一下,本篇文章中对 **舱壁模式** 不做过多解释。当然还有 **`Hystrix` 仪表盘**,它是**用来实时监控 `Hystrix` 的各项指标信息的**,这里我将这个问题也抛出去,希望有不了解的可以自己去搜索一下。 @@ -296,9 +295,9 @@ public News getHystrixNews(@PathVariable("id") int id) { > ZUUL 是从设备和 web 站点到 Netflix 流应用后端的所有请求的前门。作为边界服务应用,ZUUL 是为了实现动态路由、监视、弹性和安全性而构建的。它还具有根据情况将请求路由到多个 Amazon Auto Scaling Groups(亚马逊自动缩放组,亚马逊的一种云计算方式) 的能力 -在上面我们学习了 `Eureka` 之后我们知道了 *服务提供者* 是 *消费者* 通过 `Eureka Server` 进行访问的,即 `Eureka Server` 是 *服务提供者* 的统一入口。那么整个应用中存在那么多 *消费者* 需要用户进行调用,这个时候用户该怎样访问这些 *消费者工程* 呢?当然可以像之前那样直接访问这些工程。但这种方式没有统一的消费者工程调用入口,不便于访问与管理,而 Zuul 就是这样的一个对于 *消费者* 的统一入口。 +在上面我们学习了 `Eureka` 之后我们知道了 _服务提供者_ 是 _消费者_ 通过 `Eureka Server` 进行访问的,即 `Eureka Server` 是 _服务提供者_ 的统一入口。那么整个应用中存在那么多 _消费者_ 需要用户进行调用,这个时候用户该怎样访问这些 _消费者工程_ 呢?当然可以像之前那样直接访问这些工程。但这种方式没有统一的消费者工程调用入口,不便于访问与管理,而 Zuul 就是这样的一个对于 _消费者_ 的统一入口。 -> 如果学过前端的肯定都知道 Router 吧,比如 Flutter 中的路由,Vue,React中的路由,用了 Zuul 你会发现在路由功能方面和前端配置路由基本是一个理。:smile: 我偶尔撸撸 Flutter。 +> 如果学过前端的肯定都知道 Router 吧,比如 Flutter 中的路由,Vue,React 中的路由,用了 Zuul 你会发现在路由功能方面和前端配置路由基本是一个理。:smile: 我偶尔撸撸 Flutter。 大家对网关应该很熟吧,简单来讲网关是系统唯一对外的入口,介于客户端与服务器端之间,用于对请求进行**鉴权**、**限流**、 **路由**、**监控**等功能。 @@ -332,7 +331,7 @@ emmm,信息量有点大,我来解释一下。关于前面的知识我就不 拿到这些元数据有什么好处呢?拿到了我们是不是直接可以做**路由映射**?比如原来用户调用 `Consumer1` 的接口 `localhost:8001/studentInfo/update` 这个请求,我们是不是可以这样进行调用了呢?`localhost:9000/consumer1/studentInfo/update` 呢?你这样是不是恍然大悟了? -> 这里的url为了让更多人看懂所以没有使用 restful 风格。 +> 这里的 url 为了让更多人看懂所以没有使用 restful 风格。 上面的你理解了,那么就能理解关于 `Zuul` 最基本的配置了,看下面。 @@ -370,7 +369,7 @@ zuul: consumer2: /FrancisQ2/** ``` -这个时候你就可以使用 ` `localhost:9000/zuul/FrancisQ1/studentInfo/update` 进行访问了。 +这个时候你就可以使用 ``localhost:9000/zuul/FrancisQ1/studentInfo/update` 进行访问了。 #### 服务名屏蔽 @@ -392,15 +391,15 @@ zuul: 这样关于 auto 的请求我们就可以过滤掉了。 -> ** 代表匹配多级任意路径 +> \*\* 代表匹配多级任意路径 > -> *代表匹配一级任意路径 +> \*代表匹配一级任意路径 #### 敏感请求头屏蔽 默认情况下,像 `Cookie`、`Set-Cookie` 等敏感请求头信息会被 `zuul` 屏蔽掉,我们可以将这些默认屏蔽去掉,当然,也可以添加要屏蔽的请求头。 -### Zuul 的过滤功能 +### Zuul 的过滤功能 如果说,路由功能是 `Zuul` 的基操的话,那么**过滤器**就是 `Zuul`的利器了。毕竟所有请求都经过网关(Zuul),那么我们可以进行各种过滤,这样我们就能实现 **限流**,**灰度发布**,**权限控制** 等等。 @@ -447,8 +446,6 @@ public class PreRequestFilter extends ZuulFilter { } ``` - - ```java // lombok的日志 @Slf4j @@ -553,13 +550,13 @@ public class RouteFilter extends ZuulFilter { 这样我们就能将请求数量控制在一秒两个,有没有觉得很酷? -### 关于 Zuul 的其他 +### 关于 Zuul 的其他 `Zuul` 的过滤器的功能肯定不止上面我所实现的两种,它还可以实现 **权限校验**,包括我上面提到的 **灰度发布** 等等。 当然,`Zuul` 作为网关肯定也存在 **单点问题** ,如果我们要保证 `Zuul` 的高可用,我们就需要进行 `Zuul` 的集群配置,这个时候可以借助额外的一些负载均衡器比如 `Nginx` 。 -##Spring Cloud配置管理——Config +## Spring Cloud 配置管理——Config ### 为什么要使用进行配置管理? @@ -589,7 +586,7 @@ public class RouteFilter extends ZuulFilter { 什么?那怎么进行动态修改配置文件呢?这不是出现了 **配置漂移** 吗?你个渣男:rage:,你又骗我! -别急嘛,你可以使用 `Webhooks` ,这是 `github` 提供的功能,它能确保远程库的配置文件更新后客户端中的配置信息也得到更新。 +别急嘛,你可以使用 `Webhooks` ,这是 `github` 提供的功能,它能确保远程库的配置文件更新后客户端中的配置信息也得到更新。 噢噢,这还差不多。我去查查怎么用。 @@ -613,12 +610,12 @@ public class RouteFilter extends ZuulFilter { 这篇文章中我带大家初步了解了 `Spring Cloud` 的各个组件,他们有 -* `Eureka` 服务发现框架 -* `Ribbon` 进程内负载均衡器 -* `Open Feign` 服务调用映射 -* `Hystrix` 服务降级熔断器 -* `Zuul` 微服务网关 -* `Config` 微服务统一配置中心 -* `Bus` 消息总线 +- `Eureka` 服务发现框架 +- `Ribbon` 进程内负载均衡器 +- `Open Feign` 服务调用映射 +- `Hystrix` 服务降级熔断器 +- `Zuul` 微服务网关 +- `Config` 微服务统一配置中心 +- `Bus` 消息总线 如果你能这个时候能看懂文首那张图,也就说明了你已经对 `Spring Cloud` 微服务有了一定的架构认识。 diff --git a/docs/system-design/system-design-questions.md b/docs/system-design/system-design-questions.md index 6b7f13c9..76c77f69 100644 --- a/docs/system-design/system-design-questions.md +++ b/docs/system-design/system-design-questions.md @@ -13,12 +13,11 @@ category: Java面试指北 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220211231206733.png) -专属面试小册/一对一交流/简历修改/专属求职指南,欢迎加入我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)!。 +如果你需要专属面试小册/一对一交流/简历修改/专属求职指南/学习打卡,不妨花 3 分钟左右看看星球的详细介绍: [JavaGuide 知识星球详细介绍](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc) (一定要确定自己真的需要再加入,一定要看完详细介绍之后再加我)。 星球目前的定价为 **159/年**,即将调整为 **199/年**。如果的认可 JavaGuide,相信我,并且需要星球提供的专属服务,那欢迎你加入我的星球。你可以添加我的私人微信领取星球专属优惠券,限时 **100/年** 加入。一定要备注“**星球优惠券**”! ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220211231926486.png) -**用心做内容,不割韭菜。加油!!!** +**用心做内容,真心希望帮助到你,拒绝知识付费割韭菜。加油!!!** -知识星球详细介绍请看(一定一定一定确定自己真的需要再加入,一定一定要看完详细介绍之后再加我):[https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)。 \ No newline at end of file From 478ec91572466a162666c83b4b8246c8b5f51a10 Mon Sep 17 00:00:00 2001 From: guide Date: Sun, 27 Feb 2022 17:43:03 +0800 Subject: [PATCH 49/66] Update index.html --- index.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 6fdc0cbc..43fa2e3e 100755 --- a/index.html +++ b/index.html @@ -15,8 +15,9 @@ From 5d8423860127260f8d15b88bcc991e1ed00f58c7 Mon Sep 17 00:00:00 2001 From: guide Date: Sun, 27 Feb 2022 18:05:51 +0800 Subject: [PATCH 50/66] Update config.js --- docs/.vuepress/config.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 9a0a41c3..74526270 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -78,7 +78,8 @@ module.exports = config({ editLinks: true, docsDir: 'docs', seo: true, nav: [ { text: "Java面试指南", icon: "java", link: "/home", }, - { text: "官方知识星球", icon: "recommend", link: "https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc", }, + { text: "Java面试指北", icon: "recommend", link: "https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7"}, + { text: "官方知识星球", icon: "recommend", link: "https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc"}, { text: "开发工具", icon: "Tools", link: "/tools/", items: [ From cabe495b0f8c3b628e4e481112b4b23cc411e8ee Mon Sep 17 00:00:00 2001 From: kexin Date: Mon, 28 Feb 2022 15:16:56 +0800 Subject: [PATCH 51/66] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/cs-basics/network/other-network-questions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cs-basics/network/other-network-questions.md b/docs/cs-basics/network/other-network-questions.md index 10272f5b..f482220c 100644 --- a/docs/cs-basics/network/other-network-questions.md +++ b/docs/cs-basics/network/other-network-questions.md @@ -116,7 +116,7 @@ FTP 是基于客户—服务器(C/S)模型而设计的,在客户端与 FTP 第三次握手:Client 确认了:自己发送、接收正常,对方发送、接收正常;Server 确认了:自己发送、接收正常,对方发送、接收正常 -所以三次握手就能确认双发收发功能都正常,缺一不可。 +所以三次握手就能确认双方收发功能都正常,缺一不可。 ### 第 2 次握手传回了 ACK,为什么还要传回 SYN? From cdfc475549747b53427a17ffb4e73024e75c8235 Mon Sep 17 00:00:00 2001 From: hujesse83 Date: Mon, 28 Feb 2022 17:19:32 +0800 Subject: [PATCH 52/66] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=E5=AD=97=E4=BD=93?= =?UTF-8?q?=E5=8A=A0=E7=B2=97=E5=A4=B1=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/database/redis/redis-questions-01.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/database/redis/redis-questions-01.md b/docs/database/redis/redis-questions-01.md index 603eee53..f8fbfebd 100644 --- a/docs/database/redis/redis-questions-01.md +++ b/docs/database/redis/redis-questions-01.md @@ -482,7 +482,7 @@ OK (integer) 56 ``` -注意:**Redis 中除了字符串类型有自己独有设置过期时间的命令 `setex` 外,其他方法都需要依靠 `expire` 命令来设置过期时间 。另外, `persist` 命令可以移除一个键的过期时间。 ** +注意:**Redis 中除了字符串类型有自己独有设置过期时间的命令 `setex` 外,其他方法都需要依靠 `expire` 命令来设置过期时间 。另外, `persist` 命令可以移除一个键的过期时间。** **过期时间除了有助于缓解内存的消耗,还有什么其他用么?** From 263d11b6f97ef6b26792e1689a827ea4eea4679b Mon Sep 17 00:00:00 2001 From: guide Date: Mon, 28 Feb 2022 17:22:06 +0800 Subject: [PATCH 53/66] =?UTF-8?q?Update=20=E7=81=BE=E5=A4=87=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=92=8C=E5=BC=82=E5=9C=B0=E5=A4=9A=E6=B4=BB.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/high-availability/灾备设计和异地多活.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/high-availability/灾备设计和异地多活.md b/docs/high-availability/灾备设计和异地多活.md index 4f83dfa9..f8dfc12f 100644 --- a/docs/high-availability/灾备设计和异地多活.md +++ b/docs/high-availability/灾备设计和异地多活.md @@ -5,7 +5,7 @@ - **备份** : 将系统所产生的的所有重要数据多备份几份。 - **容灾** : 在异地建立两个完全相同的系统。当某个地方的系统突然挂掉,整个应用系统可以切换到另一个,这样系统就可以正常提供服务了。 -**异地多活** 描述的是将服务部署在异地并且服务同时对外提供服务。和传统的灾备设计的最主要区别在于“多活”,即所有站点都是同时在对外提供服务的。异地多活是为了应对突发状况比如火灾、地震等自然或者认为灾害。 +**异地多活** 描述的是将服务部署在异地并且服务同时对外提供服务。和传统的灾备设计的最主要区别在于“多活”,即所有站点都是同时在对外提供服务的。异地多活是为了应对突发状况比如火灾、地震等自然或者人为灾害。 相关阅读: From 735a5a1b1a2a122a2597d290d19b8bcea53aaec2 Mon Sep 17 00:00:00 2001 From: Evan He <1453064869@qq.com> Date: Tue, 1 Mar 2022 09:00:29 +0800 Subject: [PATCH 54/66] =?UTF-8?q?[docs=20fix]=E9=94=99=E5=88=AB=E5=AD=97?= =?UTF-8?q?=E4=BF=AE=E6=94=B9&=E4=BC=98=E5=8C=96=E8=A1=A8=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/java/concurrent/java-concurrent-questions-02.md | 4 ++-- docs/java/concurrent/java-thread-pool-best-practices.md | 2 +- docs/java/concurrent/java-thread-pool-summary.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/java/concurrent/java-concurrent-questions-02.md b/docs/java/concurrent/java-concurrent-questions-02.md index 3f138403..8691bf61 100644 --- a/docs/java/concurrent/java-concurrent-questions-02.md +++ b/docs/java/concurrent/java-concurrent-questions-02.md @@ -427,7 +427,7 @@ static class Entry extends WeakReference> { > **池化技术想必大家已经屡见不鲜了,线程池、数据库连接池、Http 连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。** -**线程池**提供了一种限制和管理资源(包括执行一个任务)。 每个**线程池**还维护一些基本统计信息,例如已完成任务的数量。 +**线程池**提供了一种限制和管理资源(包括执行一个任务)的方式。 每个**线程池**还维护一些基本统计信息,例如已完成任务的数量。 这里借用《Java 并发编程的艺术》提到的来说一下**使用线程池的好处**: @@ -1042,7 +1042,7 @@ try { System.out.println("all done. "); ``` -上面的代码还可以接续优化,当任务过多的时候,把每一个 task 都列出来不太现实,可以考虑通过循环来添加任务。 +上面的代码还可以继续优化,当任务过多的时候,把每一个 task 都列出来不太现实,可以考虑通过循环来添加任务。 ```java //文件夹位置 diff --git a/docs/java/concurrent/java-thread-pool-best-practices.md b/docs/java/concurrent/java-thread-pool-best-practices.md index 0900f5c1..d92705b7 100644 --- a/docs/java/concurrent/java-thread-pool-best-practices.md +++ b/docs/java/concurrent/java-thread-pool-best-practices.md @@ -15,7 +15,7 @@ tag: > **池化技术想必大家已经屡见不鲜了,线程池、数据库连接池、Http 连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。** -**线程池**提供了一种限制和管理资源(包括执行一个任务)。 每个**线程池**还维护一些基本统计信息,例如已完成任务的数量。 +**线程池**提供了一种限制和管理资源(包括执行一个任务)的方式。 每个**线程池**还维护一些基本统计信息,例如已完成任务的数量。 这里借用《Java 并发编程的艺术》提到的来说一下**使用线程池的好处**: diff --git a/docs/java/concurrent/java-thread-pool-summary.md b/docs/java/concurrent/java-thread-pool-summary.md index ab9e6491..98cf63f9 100644 --- a/docs/java/concurrent/java-thread-pool-summary.md +++ b/docs/java/concurrent/java-thread-pool-summary.md @@ -11,7 +11,7 @@ tag: > **池化技术想必大家已经屡见不鲜了,线程池、数据库连接池、Http 连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。** -**线程池**提供了一种限制和管理资源(包括执行一个任务)。 每个**线程池**还维护一些基本统计信息,例如已完成任务的数量。 +**线程池**提供了一种限制和管理资源(包括执行一个任务)的方式。 每个**线程池**还维护一些基本统计信息,例如已完成任务的数量。 这里借用《Java 并发编程的艺术》提到的来说一下**使用线程池的好处**: From 87183727bfcbd7ff19c517ec4be7045833aa6343 Mon Sep 17 00:00:00 2001 From: guide Date: Tue, 1 Mar 2022 15:19:02 +0800 Subject: [PATCH 55/66] Update http&https.md --- docs/cs-basics/network/http&https.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cs-basics/network/http&https.md b/docs/cs-basics/network/http&https.md index 4848527b..5ba8a479 100644 --- a/docs/cs-basics/network/http&https.md +++ b/docs/cs-basics/network/http&https.md @@ -142,7 +142,7 @@ SSL/TLS 介绍到这里,了解信息安全的朋友又会想到一个安全隐 ## 总结 - **端口号** :HTTP 默认是 80,HTTPS 默认是 443。 -- **UTL 前缀** :HTTP 的 URL 前缀是 `http://`,HTTPS 的 URL 前缀是 `https://`。 +- **URL 前缀** :HTTP 的 URL 前缀是 `http://`,HTTPS 的 URL 前缀是 `https://`。 - **安全性和资源消耗** : HTTP 协议运行在 TCP 之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。HTTPS 是运行在 SSL/TLS 之上的 HTTP 协议,SSL/TLS 运行在 TCP 之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。所以说,HTTP 安全性没有 HTTPS 高,但是 HTTPS 比 HTTP 耗费更多服务器资源。 From 9fdc2cff2790815847e279a3953a2edd85a8774a Mon Sep 17 00:00:00 2001 From: luo <1127959736@qq.com> Date: Tue, 1 Mar 2022 16:31:22 +0800 Subject: [PATCH 56/66] =?UTF-8?q?Update=20=E6=93=8D=E4=BD=9C=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E5=B8=B8=E8=A7=81=E9=9D=A2=E8=AF=95=E9=A2=98&?= =?UTF-8?q?=E7=9F=A5=E8=AF=86=E7=82=B9=E6=80=BB=E7=BB=93.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit add 2.8 解决死锁的方法 --- ...系统常见面试题&知识点总结.md | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/docs/cs-basics/operating-system/操作系统常见面试题&知识点总结.md b/docs/cs-basics/operating-system/操作系统常见面试题&知识点总结.md index 98aaadf7..17d65225 100644 --- a/docs/cs-basics/operating-system/操作系统常见面试题&知识点总结.md +++ b/docs/cs-basics/operating-system/操作系统常见面试题&知识点总结.md @@ -155,6 +155,92 @@ tag: 注意,只有四个条件同时成立时,死锁才会出现。 +### 2.8 解决死锁的方法 + +#### 那么解决死锁的方法是什么呢? + +解决死锁的方法可以从多个角度去分析,一般的情况下,有**预防,避免,检测和解除四种**。 + +- **预防** 是采用某种策略,**限制并发进程对资源的请求**,从而使得死锁的必要条件在系统执行的任何时间上都不满足。 + +- **避免**则是系统在分配资源时,根据资源的使用情况**提前做出预测**,从而**避免死锁的发生** + +- **检测**是指系统设有**专门的机构**,当死锁发生时,该机构能够检测死锁的发生,并精确地确定与死锁有关的进程和资源。 +- **解除** 是与检测相配套的一种措施,用于**将进程从死锁状态下解脱出来**。 + +#### 死锁的预防 + +死锁四大必要条件上面都已经列出来了,很显然,`只要破坏四个必要条件中的任何一个就能够预防死锁的发生`。 + +破坏第一个条件 **互斥条件**:使得资源是可以同时访问的,这是种简单的方法,磁盘就可以用这种方法管理,但是我们要知道,有很多资源**往往是不能同时访问的**,所以这种做法在大多数的场合是行不通的。 + +破坏第三个条件**非抢占**:也就是说可以采用**剥夺式**调度算法,但剥夺调度方法目前一般仅适用于**主存资源**和**处理器资源**的分配,并不适用于所以的资源,会导致**资源利用率下降**。 + +所以一般比较实用的**预防死锁的方法**,是通过考虑破坏第二个条件和第四个条件。 + +- **静态分配策略**:所谓静态分配策略,就是指一个进程必须在执行前就申请到**它所需要的全部资源**,并且知道它所要的资源都得到满足之后才开始执行。这种做法破坏了死锁产生的第二个条件**占有并等待**,进程要么占有所有的资源然后开始执行,要么不占有资源,不会出现占有一些资源等待一些资源的情况。 + 静态分配策略逻辑简单,实现也很容易,但这种策略**严重地降低了资源利用率**,因为在每个进程所占有的资源中,有些资源是在比较靠后的执行时间里采用的,甚至有些资源是在**额外的情况**下才是用的,这样就可能造成了一个进程占有了一些**几乎不用的资源而使其他需要该资源的进程产生等待**的情况。 + +- **层次分配策略**:层次分配策略破坏了产生死锁的第四个条件(**循环等待**)。在层次分配策略下,所有的资源被分成了多个层次,一个进程得到某一次的一个资源后,**它只能再申请较高一层的资源**;当一个进程要释放某层的一个资源时,必须先释放所占用的**较高层的资源**,按这种策略,是不可能出现**循环等待链的**,因为那样的话,就出现了已经申请了较高层的资源,反而去申请了较低层的资源,不符合**层次分配策略**,证明略。 + +#### 死锁的避免 + +上面提到的**破坏**死锁产生的四个必要条件之一就可以成功**预防系统发生死锁**,但是会导致**低效的进程运行**和**资源使用率**。而死锁的避免相反,它的角度是允许系统中**同时存在四个必要条件**,只要掌握并发进程中与每个进程有关的资源动态申请情况,做出**明智和合理的选择**,仍然可以避免死锁,因为四大条件仅仅是产生死锁的必要条件。 + +我们将系统的状态分为**安全状态**和**不安全状态**,每当在未申请者分配资源前先测试系统状态,若把系统资源分配给申请者会产生死锁,则拒绝分配,否则接受申请,并为它分配资源。 + +`安全状态`:如果操作系统能够保证**所有的进程在有限的时间内得到需要的全部资源**,则称系统处于安全状态,否则说系统是不安全的。很显然,`系统处于安全状态则不会发生死锁,系统若处于不安全状态则可能发生死锁`。 + +那么如何保证系统保持在安全状态呢?通过算法,其中最具有代表性的**避免死锁算法**就是Dijkstra的银行家算法,银行家算法用一句话表达就是,“当一个进程申请使用资源的时候,**银行家算法**通过先**试探**分配给该进程资源,然后通过**安全性算法**判断分配后系统是否处于安全状态,若不安全则试探分配作废,让该进程继续等待,若能够进入到安全的状态,则就**真的分配资源给该进程**”。 + +银行家算法详情可见[(41条消息) 一句话+一张图说清楚——银行家算法_土豆洋芋山药蛋的博客-CSDN博客_银行家算法](https://blog.csdn.net/qq_33414271/article/details/80245715) + +操作系统教程树中讲述的银行家算法也比较清晰,可以一看. + +死锁的避免(银行家算法)改善解决了**资源使用率低的问题**,但是它要不断地检测每个进程对各类资源的占用和申请情况,以及做**安全性检查**,需要花费较多的时间。 + +#### 死锁的检测 + +对资源的分配加以限制可以**预防和避免**死锁的发生,但是都不利于各进程对系统资源的**充分共享**。解决死锁问题的另一条途径是**死锁检测和解除**(这里突然联想到了乐观锁和悲观锁,感觉死锁的检测和解除就像是**乐观锁**,分配资源时不去提前管会不会发生死锁了,等到真的死锁出现了再来解决嘛,而**死锁的预防和避免**更像是悲观锁,总是觉得死锁会出现,所以在分配资源的时候就很谨慎)。 + +这种方法对资源的分配不加以任何限制,也不采取死锁避免措施,但系统**定时地运行一个 “死锁检测”**的程序,判断系统内是否出现死锁,如果检测到系统发生了死锁,再采取措施去解除它。 + +##### 进程-资源分配图 + +操作系统中的每一刻时刻的**系统状态**都可以用**进程-资源分配图**来表示,进程-资源分配图是描述进程和资源申请及分配关系的一种有向图,可用于**检测系统是否处于死锁状态**。 + +用一个方框表示每一个资源类,方框中的黑点表示该资源类中的各个资源,每个键进程用一个圆圈表示,用**有向边**来表示**进程申请资源和资源被分配的情况**。约定$P_{i} \rightarrow R_{j}$为请求边,表示线程$P_{i}$申请资源类$R_{j}$中的一个资源**得不到满足**而处于等待$R_{j}$类资源的状态,该有向边从进程开始指到方框的边缘,表示进程$P_{i}$申请$R_{j}$类中的一个资源。反之,$R_{j}\rightarrow P_{i}$为**分配边**,表示R的一个资源分配给了P。 + +图中2-21是**进程-资源分配图**的一个例子,其中公有三个资源类,每个进程的资源占有和申请情况已清楚地表示在图中。在这个例子中,由于存在**占有和等待资源的环路**,导致一组进程永远处于等待资源的状态,**发生了死锁**。 + + + +进程-资源分配图中存在环路**并不一定是**发生了死锁。因为循环等待资源仅仅是死锁发生的必要条件,而不是充分条件。图2-22便是一个有环路而无死锁的例子。虽然进程P1和进程P3分别占用了一个资源R1和一个资源R2,并且因为等待另一个资源R2和另一个资源R1形成了环路,但进程P2和进程P4分别占有了一个资源R1和一个资源R2,它们申请的资源得到了满足,在有限的时间里会归还资源,于是进程P1或P3都能获得另一个所需的资源,环路自动解除,系统也就不存在死锁状态了。 + +##### 死锁检测步骤: + +知道了死锁检测的原理,我们可以利用下列步骤编写一个**死锁检测**程序,检测系统是否产生了死锁。 + +1) 如果进程-资源分配图中无环路,则此时系统没有发生死锁 +2) 如果进程-资源分配图中有环路,且每个资源类仅有一个资源,则系统中已经发生了死锁。 +3) 如果进程-资源分配图中有环路,且涉及到的资源类有多个资源,此时系统未必会发生死锁。如果能在进程-资源分配图中找出一个**既不阻塞又非独立的进程**,该进程能够在有限的时间内归还占有的资源,也就是把边给消除掉了,重复此过程,直到能在有限的时间内**消除所有的边**,则不会发生死锁,否则会发生死锁。(消除边的过程类似于**拓扑排序**) + +#### 死锁的解除 + +当死锁检测程序检测到**存在死锁发生时**,应设法让其解除,让系统从死锁状态中恢复过来,常用的解除死锁的方法有以下四种: + +1. **立即结束所有进程的执行,重新启动操作系统** + + 这种方法简单,但以前所在的工作全部作废,损失很大。 + +2. **撤销涉及死锁的所有进程**,解除死锁后继续运行 + + 这种方法能彻底打破**死锁的循环等待**条件,但将付出很大代价,例如有些进程可能已经计算了很长时间,由于被撤销而使产生的部分结果也被消除了,再重新执行时还要再次进行计算。 + +3. 逐个撤销涉及死锁的进程,回收其资源直至死锁解除。 + +4. 抢占资源:从涉及死锁的**一个或几个进程**中抢占资源,把夺得的资源再分配给涉及死锁的进程直至死锁解除。 + ## 三 操作系统内存管理基础 ### 3.1 内存管理介绍 From 1628e600ee5c2996b8bbc5f0e515f53909c76fda Mon Sep 17 00:00:00 2001 From: luo <1127959736@qq.com> Date: Tue, 1 Mar 2022 16:35:16 +0800 Subject: [PATCH 57/66] =?UTF-8?q?Add=20=E8=BF=9B=E7=A8=8B-=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E5=88=86=E9=85=8D=E5=9B=BE.jpg?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../images/进程-资源分配图.jpg | Bin 0 -> 214378 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/cs-basics/operating-system/images/进程-资源分配图.jpg diff --git a/docs/cs-basics/operating-system/images/进程-资源分配图.jpg b/docs/cs-basics/operating-system/images/进程-资源分配图.jpg new file mode 100644 index 0000000000000000000000000000000000000000..812c6a15a63547fc73912c15bad02485424a3c3c GIT binary patch literal 214378 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�^edqKmEoE9I$mt~}M_ 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 z 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

fzj?qEsCSj57(NvY;>CwtA_T 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 z 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 Date: Tue, 1 Mar 2022 16:38:17 +0800 Subject: [PATCH 58/66] =?UTF-8?q?Update=20=E6=93=8D=E4=BD=9C=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E5=B8=B8=E8=A7=81=E9=9D=A2=E8=AF=95=E9=A2=98=20&=20?= =?UTF-8?q?=E7=9F=A5=E8=AF=86=E7=82=B9=E6=80=BB=E7=BB=93.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../操作系统常见面试题&知识点总结.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/cs-basics/operating-system/操作系统常见面试题&知识点总结.md b/docs/cs-basics/operating-system/操作系统常见面试题&知识点总结.md index 17d65225..202f1570 100644 --- a/docs/cs-basics/operating-system/操作系统常见面试题&知识点总结.md +++ b/docs/cs-basics/operating-system/操作系统常见面试题&知识点总结.md @@ -213,6 +213,7 @@ tag: 图中2-21是**进程-资源分配图**的一个例子,其中公有三个资源类,每个进程的资源占有和申请情况已清楚地表示在图中。在这个例子中,由于存在**占有和等待资源的环路**,导致一组进程永远处于等待资源的状态,**发生了死锁**。 + 进程-资源分配图中存在环路**并不一定是**发生了死锁。因为循环等待资源仅仅是死锁发生的必要条件,而不是充分条件。图2-22便是一个有环路而无死锁的例子。虽然进程P1和进程P3分别占用了一个资源R1和一个资源R2,并且因为等待另一个资源R2和另一个资源R1形成了环路,但进程P2和进程P4分别占有了一个资源R1和一个资源R2,它们申请的资源得到了满足,在有限的时间里会归还资源,于是进程P1或P3都能获得另一个所需的资源,环路自动解除,系统也就不存在死锁状态了。 From e8faa4b4bee92736a4c46f729eaf8f60bd70b9a0 Mon Sep 17 00:00:00 2001 From: guide Date: Tue, 1 Mar 2022 18:16:51 +0800 Subject: [PATCH 59/66] =?UTF-8?q?[docs=20update]=20java=20=E6=96=B0?= =?UTF-8?q?=E7=89=B9=E6=80=A7=E9=83=A8=E5=88=86=E5=86=85=E5=AE=B9=E5=AE=8C?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/.vuepress/config.js | 6 +- docs/java/new-features/java10.md | 119 +++ docs/java/new-features/java11.md | 127 +++ docs/java/new-features/java12-13.md | 276 +++++ docs/java/new-features/java14-15.md | 267 +++++ .../new-features/java8-common-new-features.md | 4 +- docs/java/new-features/java9.md | 245 +++++ docs/java/new-features/java新特性总结.md | 946 ------------------ 8 files changed, 1039 insertions(+), 951 deletions(-) create mode 100644 docs/java/new-features/java10.md create mode 100644 docs/java/new-features/java11.md create mode 100644 docs/java/new-features/java12-13.md create mode 100644 docs/java/new-features/java14-15.md create mode 100644 docs/java/new-features/java9.md delete mode 100644 docs/java/new-features/java新特性总结.md diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 74526270..d023d9f9 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -78,8 +78,8 @@ module.exports = config({ editLinks: true, docsDir: 'docs', seo: true, nav: [ { text: "Java面试指南", icon: "java", link: "/home", }, - { text: "Java面试指北", icon: "recommend", link: "https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7"}, - { text: "官方知识星球", icon: "recommend", link: "https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc"}, + { text: "Java面试指北", icon: "recommend", link: "https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7" }, + { text: "官方知识星球", icon: "recommend", link: "https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc" }, { text: "开发工具", icon: "Tools", link: "/tools/", items: [ @@ -206,7 +206,7 @@ module.exports = config({ }, { title: "新特性", prefix: "new-features/", - children: ["java8-common-new-features", "java8-tutorial-translate", "java新特性总结"], + children: ["java8-common-new-features", "java8-tutorial-translate", "java9", "java10", "java11", "java12-13", "java14-15"], }, { title: "小技巧", prefix: "tips/", diff --git a/docs/java/new-features/java10.md b/docs/java/new-features/java10.md new file mode 100644 index 00000000..fa34b90d --- /dev/null +++ b/docs/java/new-features/java10.md @@ -0,0 +1,119 @@ +--- +title: Java 10 新特性概览 +category: Java +tag: + - Java新特性 +--- + +**Java 10** 发布于 2018 年 3 月 20 日,最知名的特性应该是 `var` 关键字(局部变量类型推断)的引入了,其他还有垃圾收集器改善、GC 改进、性能提升、线程管控等一批新特性。 + +**概览(精选了一部分)** : + +- [JEP 286:局部变量类型推断](https://openjdk.java.net/jeps/286) +- [JEP 304:垃圾回收器接口](https://openjdk.java.net/jeps/304) +- [JEP 307:G1 并行 Full GC](https://openjdk.java.net/jeps/307) +- [JEP 310:应用程序类数据共享(扩展 CDS 功能)](https://openjdk.java.net/jeps/310) +- [JEP 317:实验性的基于 Java 的 JIT 编译器](https://openjdk.java.net/jeps/317) + +## 局部变量类型推断(var) + +由于太多 Java 开发者希望 Java 中引入局部变量推断,于是 Java 10 的时候它来了,也算是众望所归了! + +Java 10 提供了 `var` 关键字声明局部变量。 + +```java +var id = 0; +var codefx = new URL("https://mp.weixin.qq.com/"); +var list = new ArrayList<>(); +var list = List.of(1, 2, 3); +var map = new HashMap(); +var p = Paths.of("src/test/java/Java9FeaturesTest.java"); +var numbers = List.of("a", "b", "c"); +for (var n : list) + System.out.print(n+ " "); +``` + +var 关键字只能用于带有构造器的局部变量和 for 循环中。 + +```java +var count=null; //❌编译不通过,不能声明为 null +var r = () -> Math.random();//❌编译不通过,不能声明为 Lambda表达式 +var array = {1,2,3};//❌编译不通过,不能声明数组 +``` + +var 并不会改变 Java 是一门静态类型语言的事实,编译器负责推断出类型。 + +另外,Scala 和 Kotlin 中已经有了 `val` 关键字 ( `final var` 组合关键字)。 + +相关阅读:[《Java 10 新特性之局部变量类型推断》](https://zhuanlan.zhihu.com/p/34911982)。 + +## 垃圾回收器接口 + +在早期的 JDK 结构中,组成垃圾收集器 (GC) 实现的组件分散在代码库的各个部分。 Java 10 通过引入一套纯净的垃圾收集器接口来将不同垃圾收集器的源代码分隔开。 + +## G1 并行 Full GC + +从 Java9 开始 G1 就了默认的垃圾回收器,G1 是以一种低延时的垃圾回收器来设计的,旨在避免进行 Full GC,但是 Java9 的 G1 的 FullGC 依然是使用单线程去完成标记清除算法,这可能会导致垃圾回收期在无法回收内存的时候触发 Full GC。 + +为了最大限度地减少 Full GC 造成的应用停顿的影响,从 Java10 开始,G1 的 FullGC 改为并行的标记清除算法,同时会使用与年轻代回收和混合回收相同的并行工作线程数量,从而减少了 Full GC 的发生,以带来更好的性能提升、更大的吞吐量。 + +## 集合增强 + +`List`,`Set`,`Map` 提供了静态方法`copyOf()`返回入参集合的一个不可变拷贝。 + +```java +static List copyOf(Collection coll) { + return ImmutableCollections.listCopy(coll); +} +``` + +使用 `copyOf()` 创建的集合为不可变集合,不能进行添加、删除、替换、 排序等操作,不然会报 `java.lang.UnsupportedOperationException` 异常。 IDEA 也会有相应的提示。 + +![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/java-guide-blog/image-20210816154125579.png) + +并且,`java.util.stream.Collectors` 中新增了静态方法,用于将流中的元素收集为不可变的集合。 + +```java +var list = new ArrayList<>(); +list.stream().collect(Collectors.toUnmodifiableList()); +list.stream().collect(Collectors.toUnmodifiableSet()); +``` + +## Optional 增强 + +`Optional` 新增了`orElseThrow()`方法来在没有值时抛出指定的异常。 + +```java +Optional.ofNullable(cache.getIfPresent(key)) + .orElseThrow(() -> new PrestoException(NOT_FOUND, "Missing entry found for key: " + key)); +``` + +## 应用程序类数据共享(扩展 CDS 功能) + +在 Java 5 中就已经引入了类数据共享机制 (Class Data Sharing,简称 CDS),允许将一组类预处理为共享归档文件,以便在运行时能够进行内存映射以减少 Java 程序的启动时间,当多个 Java 虚拟机(JVM)共享相同的归档文件时,还可以减少动态内存的占用量,同时减少多个虚拟机在同一个物理或虚拟的机器上运行时的资源占用。CDS 在当时还是 Oracle JDK 的商业特性。 + +Java 10 在现有的 CDS 功能基础上再次拓展,以允许应用类放置在共享存档中。CDS 特性在原来的 bootstrap 类基础之上,扩展加入了应用类的 CDS 为 (Application Class-Data Sharing,AppCDS) 支持,大大加大了 CDS 的适用范围。其原理为:在启动时记录加载类的过程,写入到文本文件中,再次启动时直接读取此启动文本并加载。设想如果应用环境没有大的变化,启动速度就会得到提升。 + +## 实验性的基于 Java 的 JIT 编译器 + +Graal 是一个基于 Java 语言编写的 JIT 编译器,是 JDK 9 中引入的实验性 Ahead-of-Time (AOT) 编译器的基础。 + +Oracle 的 HotSpot VM 便附带两个用 C++ 实现的 JIT compiler:C1 及 C2。在Java 10 (Linux/x64, macOS/x64) 中,默认情况下HotSpot 仍使用C2,但通过向java 命令添加 `-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler` 参数便可将 C2 替换成 Graal。 + +相关阅读:[深入浅出 Java 10 的实验性 JIT 编译器 Graal - 郑雨迪](https://www.infoq.cn/article/java-10-jit-compiler-graal) + +## 其他 + +- **线程-局部管控**:Java 10 中线程管控引入 JVM 安全点的概念,将允许在不运行全局 JVM 安全点的情况下实现线程回调,由线程本身或者 JVM 线程来执行,同时保持线程处于阻塞状态,这种方式使得停止单个线程变成可能,而不是只能启用或停止所有线程 +- **备用存储装置上的堆分配**:Java 10 中将使得 JVM 能够使用适用于不同类型的存储机制的堆,在可选内存设备上进行堆内存分配 +- ...... + +## 参考 + +- Java 10 Features and Enhancements : https://howtodoinjava.com/java10/java10-features/ + +- Guide to Java10 : + +- 4 Class Data Sharing : https://docs.oracle.com/javase/10/vm/class-data-sharing.htm#JSJVM-GUID-7EAA3411-8CF0-4D19-BD05-DF5E1780AA91 + + \ No newline at end of file diff --git a/docs/java/new-features/java11.md b/docs/java/new-features/java11.md new file mode 100644 index 00000000..89bc4ad6 --- /dev/null +++ b/docs/java/new-features/java11.md @@ -0,0 +1,127 @@ +--- +title: Java 11 新特性概览 +category: Java +tag: + - Java新特性 +--- + +**Java 11** 于 2018 年 9 月 25 日正式发布,这是很重要的一个版本!Java 11 和 2017 年 9 月份发布的 Java 9 以及 2018 年 3 月份发布的 Java 10 相比,其最大的区别就是:在长期支持(Long-Term-Support)方面,**Oracle 表示会对 Java 11 提供大力支持,这一支持将会持续至 2026 年 9 月。这是据 Java 8 以后支持的首个长期版本。** + +![](https://img-blog.csdnimg.cn/20210603202746605.png) + +**概览(精选了一部分)** : + +- [JEP 321:HTTP Client 标准化](https://openjdk.java.net/jeps/321) +- [JEP 333:ZGC(可伸缩低延迟垃圾收集器)](https://openjdk.java.net/jeps/333) +- [JEP 323:Lambda 参数的局部变量语法](https://openjdk.java.net/jeps/323) +- [JEP 330:启动单文件源代码程序](https://openjdk.java.net/jeps/330) + +## HTTP Client 标准化 + +Java 11 对 Java 9 中引入并在 Java 10 中进行了更新的 Http Client API 进行了标准化,在前两个版本中进行孵化的同时,Http Client 几乎被完全重写,并且现在完全支持异步非阻塞。 + +并且,Java 11 中,Http Client 的包名由 `jdk.incubator.http` 改为`java.net.http`,该 API 通过 `CompleteableFuture` 提供非阻塞请求和响应语义。使用起来也很简单,如下: + +```java +var request = HttpRequest.newBuilder() + .uri(URI.create("https://javastack.cn")) + .GET() + .build(); +var client = HttpClient.newHttpClient(); + +// 同步 +HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); +System.out.println(response.body()); + +// 异步 +client.sendAsync(request, HttpResponse.BodyHandlers.ofString()) + .thenApply(HttpResponse::body) + .thenAccept(System.out::println); +``` + +## String 增强 + +Java 11 增加了一系列的字符串处理方法: + +```java +//判断字符串是否为空 +" ".isBlank();//true +//去除字符串首尾空格 +" Java ".strip();// "Java" +//去除字符串首部空格 +" Java ".stripLeading(); // "Java " +//去除字符串尾部空格 +" Java ".stripTrailing(); // " Java" +//重复字符串多少次 +"Java".repeat(3); // "JavaJavaJava" +//返回由行终止符分隔的字符串集合。 +"A\nB\nC".lines().count(); // 3 +"A\nB\nC".lines().collect(Collectors.toList()); +``` + +## Optional 增强 + +新增了`empty()`方法来判断指定的 `Optional` 对象是否为空。 + +```java +var op = Optional.empty(); +System.out.println(op.isEmpty());//判断指定的 Optional 对象是否为空 +``` + +## ZGC(可伸缩低延迟垃圾收集器) + +**ZGC 即 Z Garbage Collector**,是一个可伸缩的、低延迟的垃圾收集器。 + +ZGC 主要为了满足如下目标进行设计: + +- GC 停顿时间不超过 10ms +- 即能处理几百 MB 的小堆,也能处理几个 TB 的大堆 +- 应用吞吐能力不会下降超过 15%(与 G1 回收算法相比) +- 方便在此基础上引入新的 GC 特性和利用 colored 针以及 Load barriers 优化奠定基础 +- 当前只支持 Linux/x64 位平台 + +ZGC 目前 **处在实验阶段**,只支持 Linux/x64 平台。 + +与 CMS 中的 ParNew 和 G1 类似,ZGC 也采用标记-复制算法,不过 ZGC 对该算法做了重大改进。 + +在 ZGC 中出现 Stop The World 的情况会更少! + +详情可以看 : [《新一代垃圾回收器 ZGC 的探索与实践》](https://tech.meituan.com/2020/08/06/new-zgc-practice-in-meituan.html) + +## Lambda 参数的局部变量语法 + +从 Java 10 开始,便引入了局部变量类型推断这一关键特性。类型推断允许使用关键字 var 作为局部变量的类型而不是实际类型,编译器根据分配给变量的值推断出类型。 + +Java 10 中对 var 关键字存在几个限制 + +- 只能用于局部变量上 +- 声明时必须初始化 +- 不能用作方法参数 +- 不能在 Lambda 表达式中使用 + +Java11 开始允许开发者在 Lambda 表达式中使用 var 进行参数声明。 + +```java +// 下面两者是等价的 +Consumer consumer = (var i) -> System.out.println(i); +Consumer consumer = (String i) -> System.out.println(i); +``` + +## 启动单文件源代码程序 + +这意味着我们可以运行单一文件的 Java 源代码。此功能允许使用 Java 解释器直接执行 Java 源代码。源代码在内存中编译,然后由解释器执行,不需要在磁盘上生成 `.class` 文件了。唯一的约束在于所有相关的类必须定义在同一个 Java 文件中。 + +对于 Java 初学者并希望尝试简单程序的人特别有用,并且能和 jshell 一起使用。一定能程度上增强了使用 Java 来写脚本程序的能力。 + +## 其他 + +- **新的垃圾回收器 Epsilon** :一个完全消极的 GC 实现,分配有限的内存资源,最大限度的降低内存占用和内存吞吐延迟时间 +- **低开销的 Heap Profiling** :Java 11 中提供一种低开销的 Java 堆分配采样方法,能够得到堆分配的 Java 对象信息,并且能够通过 JVMTI 访问堆信息 +- **TLS1.3 协议** :Java 11 中包含了传输层安全性(TLS)1.3 规范(RFC 8446)的实现,替换了之前版本中包含的 TLS,包括 TLS 1.2,同时还改进了其他 TLS 功能,例如 OCSP 装订扩展(RFC 6066,RFC 6961),以及会话散列和扩展主密钥扩展(RFC 7627),在安全性和性能方面也做了很多提升 +- **飞行记录器(Java Flight Recorder)** :飞行记录器之前是商业版 JDK 的一项分析工具,但在 Java 11 中,其代码被包含到公开代码库中,这样所有人都能使用该功能了。 +- ...... + +## 参考 + +- JDK 11 Release Notes:https://www.oracle.com/java/technologies/javase/11-relnote-issues.html +- Java 11 – Features and Comparison: \ No newline at end of file diff --git a/docs/java/new-features/java12-13.md b/docs/java/new-features/java12-13.md new file mode 100644 index 00000000..179acd7f --- /dev/null +++ b/docs/java/new-features/java12-13.md @@ -0,0 +1,276 @@ +--- +title: Java 12 ~ 13 新特性概览 +category: Java +tag: + - Java新特性 +--- + +## Java12 + +### String 增强 + +Java 11 增加了两个的字符串处理方法,如以下所示。 + +`indent()` 方法可以实现字符串缩进。 + +```java +String text = "Java"; +// 缩进 4 格 +text = text.indent(4); +System.out.println(text); +text = text.indent(-10); +System.out.println(text); +``` + +输出: + +``` + Java +Java +``` + +`transform()` 方法可以用来转变指定字符串。 + +```java +String result = "foo".transform(input -> input + " bar"); +System.out.println(result); // foo bar +``` + +### Files 增强(文件比较) + +Java 12 添加了以下方法来比较两个文件: + +```java +public static long mismatch(Path path, Path path2) throws IOException +``` + +`mismatch()` 方法用于比较两个文件,并返回第一个不匹配字符的位置,如果文件相同则返回 -1L。 + +代码示例(两个文件内容相同的情况): + +```java +Path filePath1 = Files.createTempFile("file1", ".txt"); +Path filePath2 = Files.createTempFile("file2", ".txt"); +Files.writeString(filePath1, "Java 12 Article"); +Files.writeString(filePath2, "Java 12 Article"); + +long mismatch = Files.mismatch(filePath1, filePath2); +assertEquals(-1, mismatch); +``` + +代码示例(两个文件内容不相同的情况): + +```java +Path filePath3 = Files.createTempFile("file3", ".txt"); +Path filePath4 = Files.createTempFile("file4", ".txt"); +Files.writeString(filePath3, "Java 12 Article"); +Files.writeString(filePath4, "Java 12 Tutorial"); + +long mismatch = Files.mismatch(filePath3, filePath4); +assertEquals(8, mismatch); +``` + +### 数字格式化工具类 + +`NumberFormat` 新增了对复杂的数字进行格式化的支持 + +```java +NumberFormat fmt = NumberFormat.getCompactNumberInstance(Locale.US, NumberFormat.Style.SHORT); +String result = fmt.format(1000); + System.out.println(result); +``` + +输出: + +``` +1K +``` + +### Shenandoah GC + +Redhat 主导开发的 Pauseless GC 实现,主要目标是 99.9% 的暂停小于 10ms,暂停与堆大小无关等 + +和 Java11 开源的 ZGC 相比(需要升级到 JDK11 才能使用),Shenandoah GC 有稳定的 JDK8u 版本,在 Java8 占据主要市场份额的今天有更大的可落地性。 + +### G1 收集器优化 + +Java12 为默认的垃圾收集器 G1 带来了两项更新: + +- **可中止的混合收集集合** :JEP344 的实现,为了达到用户提供的停顿时间目标,JEP 344 通过把要被回收的区域集(混合收集集合)拆分为强制和可选部分,使 G1 垃圾回收器能中止垃圾回收过程。 G1 可以中止可选部分的回收以达到停顿时间目标 +- **及时返回未使用的已分配内存** :JEP346 的实现,增强 G1 GC,以便在空闲时自动将 Java 堆内存返回给操作系统 + +### 预览新特性 + +作为预览特性加入,需要在`javac`编译和`java`运行时增加参数`--enable-preview` 。 + +#### 增强 Switch + +传统的 `switch` 语法存在容易漏写 `break` 的问题,而且从代码整洁性层面来看,多个 break 本质也是一种重复 + +Java12 增强了 `swtich` 表达式,使用类似 lambda 语法条件匹配成功后的执行块,不需要多写 break 。 + +```java +switch (day) { + case MONDAY, FRIDAY, SUNDAY -> System.out.println(6); + case TUESDAY -> System.out.println(7); + case THURSDAY, SATURDAY -> System.out.println(8); + case WEDNESDAY -> System.out.println(9); +} +``` + +#### instanceof 模式匹配 + +`instanceof` 主要在类型强转前探测对象的具体类型。 + +之前的版本中,我们需要显示地对对象进行类型转换。 + +```java +Object obj = "我是字符串"; +if(obj instanceof String){ + String str = (String) obj; + System.out.println(str); +} +``` + +新版的 `instanceof` 可以在判断是否属于具体的类型同时完成转换。 + +```java +Object obj = "我是字符串"; +if(obj instanceof String str){ + System.out.println(str); +} +``` + +## Java13 + +### 增强 ZGC(释放未使用内存) + +在 Java 11 中是实验性的引入的 ZGC 在实际的使用中存在未能主动将未使用的内存释放给操作系统的问题。 + +ZGC 堆由一组称为 ZPages 的堆区域组成。在 GC 周期中清空 ZPages 区域时,它们将被释放并返回到页面缓存 **ZPageCache** 中,此缓存中的 ZPages 按最近最少使用(LRU)的顺序,并按照大小进行组织。 + +在 Java 13 中,ZGC 将向操作系统返回被标识为长时间未使用的页面,这样它们将可以被其他进程重用。 + +### SocketAPI 重构 + +Java Socket API 终于迎来了重大更新! + +Java 13 将 Socket API 的底层进行了重写, `NioSocketImpl` 是对 `PlainSocketImpl` 的直接替代,它使用 `java.util.concurrent` 包下的锁而不是同步方法。如果要使用旧实现,请使用 `-Djdk.net.usePlainSocketImpl=true`。 + +并且,在 Java 13 中是默认使用新的 Socket 实现。 + +```java +public final class NioSocketImpl extends SocketImpl implements PlatformSocketImpl { +} +``` + +### FileSystems + +`FileSystems` 类中添加了以下三种新方法,以便更容易地使用将文件内容视为文件系统的文件系统提供程序: + +- `newFileSystem(Path)` +- `newFileSystem(Path, Map)` +- `newFileSystem(Path, Map, ClassLoader)` + +### 动态 CDS 存档 + +Java 13 中对 Java 10 中引入的应用程序类数据共享(AppCDS)进行了进一步的简化、改进和扩展,即:**允许在 Java 应用程序执行结束时动态进行类归档**,具体能够被归档的类包括所有已被加载,但不属于默认基层 CDS 的应用程序类和引用类库中的类。 + +这提高了应用程序类数据共享([AppCDS](https://openjdk.java.net/jeps/310))的可用性。无需用户进行试运行来为每个应用程序创建类列表。 + +```bash +$ java -XX:ArchiveClassesAtExit=my_app_cds.jsa -cp my_app.jar +$ java -XX:SharedArchiveFile=my_app_cds.jsa -cp my_app.jar +``` + +### 预览新特性 + +#### 文本块 + +解决 Java 定义多行字符串时只能通过换行转义或者换行连接符来变通支持的问题,引入**三重双引号**来定义多行文本。 + +Java 13 支持两个 `"""` 符号中间的任何内容都会被解释为字符串的一部分,包括换行符。 + +未支持文本块之前的 HTML 写法: + +```java +String json ="{\n" + + " \"name\":\"mkyong\",\n" + + " \"age\":38\n" + + "}\n"; +``` + +支持文本块之后的 HTML 写法: + +```java + String json = """ + { + "name":"mkyong", + "age":38 + } + """; +``` + +未支持文本块之前的 SQL 写法: + +```sql +String query = "SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n" + + "WHERE `CITY` = 'INDIANAPOLIS'\n" + + "ORDER BY `EMP_ID`, `LAST_NAME`;\n"; +``` + +支持文本块之后的 SQL 写法: + +```sql +String query = """ + SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB` + WHERE `CITY` = 'INDIANAPOLIS' + ORDER BY `EMP_ID`, `LAST_NAME`; + """; +``` + +另外,`String` 类新增加了 3 个新的方法来操作文本块: + +- `formatted(Object... args)` :它类似于 `String` 的`format()`方法。添加它是为了支持文本块的格式设置。 +- `stripIndent()` :用于去除文本块中每一行开头和结尾的空格。 +- `translateEscapes()` :转义序列如 _“\\\t”_ 转换为 _“\t”_ + +由于文本块是一项预览功能,可以在未来版本中删除,因此这些新方法被标记为弃用。 + +```java +@Deprecated(forRemoval=true, since="13") +public String stripIndent() { +} +@Deprecated(forRemoval=true, since="13") +public String formatted(Object... args) { + +} +@Deprecated(forRemoval=true, since="13") +public String translateEscapes() { +} +``` + +#### 增强 Switch(引入 yield 关键字到 Switch 中) + +`Switch` 表达式中就多了一个关键字用于跳出 `Switch` 块的关键字 `yield`,主要用于返回一个值 + +`yield`和 `return` 的区别在于:`return` 会直接跳出当前循环或者方法,而 `yield` 只会跳出当前 `Switch` 块,同时在使用 `yield` 时,需要有 `default` 条件 + +```java + private static String descLanguage(String name) { + return switch (name) { + case "Java": yield "object-oriented, platform independent and secured"; + case "Ruby": yield "a programmer's best friend"; + default: yield name +" is a good language"; + }; + } +``` + +## 参考 + +- JDK Project Overview : +- Oracle Java12 ReleaseNote +- Oracle Java13 ReleaseNote +- New Features in Java 12 +- New Java13 Features +- Java13 新特性概述 diff --git a/docs/java/new-features/java14-15.md b/docs/java/new-features/java14-15.md new file mode 100644 index 00000000..bb09867d --- /dev/null +++ b/docs/java/new-features/java14-15.md @@ -0,0 +1,267 @@ +--- +title: Java 14 ~ 15 新特性概览 +category: Java +tag: + - Java新特性 +--- + +## Java14 + +### 空指针异常精准提示 + +通过 JVM 参数中添加`-XX:+ShowCodeDetailsInExceptionMessages`,可以在空指针异常中获取更为详细的调用信息,更快的定位和解决问题。 + +```java +a.b.c.i = 99; // 假设这段代码会发生空指针 +``` + +Java 14 之前: + +```java +Exception in thread "main" java.lang.NullPointerException + at NullPointerExample.main(NullPointerExample.java:5) +``` + +Java 14 之后: + +```java + // 增加参数后提示的异常中很明确的告知了哪里为空导致 +Exception in thread "main" java.lang.NullPointerException: + Cannot read field 'c' because 'a.b' is null. + at Prog.main(Prog.java:5) +``` + +### switch 的增强(转正) + +Java12 引入的 switch(预览特性)在 Java14 变为正式版本,不需要增加参数来启用,直接在 JDK14 中就能使用。 + +Java12 为 switch 表达式引入了类似 lambda 语法条件匹配成功后的执行块,不需要多写 break ,Java13 提供了 `yield` 来在 block 中返回值。 + +```java +String result = switch (day) { + case "M", "W", "F" -> "MWF"; + case "T", "TH", "S" -> "TTS"; + default -> { + if(day.isEmpty()) + yield "Please insert a valid day."; + else + yield "Looks like a Sunday."; + } + + }; +System.out.println(result); +``` + +### 预览新特性 + +#### record 关键字 + +`record` 关键字可以简化 **数据类**(一个 Java 类一旦实例化就不能再修改)的定义方式,使用 `record` 代替 `class` 定义的类,只需要声明属性,就可以在获得属性的访问方法,以及 `toString()`,`hashCode()`, `equals()`方法 + +类似于使用 `class` 定义类,同时使用了 lombok 插件,并打上了`@Getter,@ToString,@EqualsAndHashCode`注解 + +```java +/** + * 这个类具有两个特征 + * 1. 所有成员属性都是final + * 2. 全部方法由构造方法,和两个成员属性访问器组成(共三个) + * 那么这种类就很适合使用record来声明 + */ +final class Rectangle implements Shape { + final double length; + final double width; + + public Rectangle(double length, double width) { + this.length = length; + this.width = width; + } + + double length() { return length; } + double width() { return width; } +} +/** + * 1. 使用record声明的类会自动拥有上面类中的三个方法 + * 2. 在这基础上还附赠了equals(),hashCode()方法以及toString()方法 + * 3. toString方法中包括所有成员属性的字符串表示形式及其名称 + */ +record Rectangle(float length, float width) { } +``` + +#### 文本块 + +Java14 中,文本块依然是预览特性,不过,其引入了两个新的转义字符: + +- `\` : 表示行尾,不引入换行符 +- `\s` :表示单个空格 + +```java +String str = "凡心所向,素履所往,生如逆旅,一苇以航。"; + +String str2 = """ + 凡心所向,素履所往, \ + 生如逆旅,一苇以航。"""; +System.out.println(str2);// 凡心所向,素履所往, 生如逆旅,一苇以航。 +String text = """ + java + c++\sphp + """; +System.out.println(text); +//输出: +java +c++ php +``` + +#### instanceof 增强 + +依然是**预览特性** ,Java 12 新特性中介绍过。 + +### Java14 其他特性 + +- 从 Java11 引入的 ZGC 作为继 G1 过后的下一代 GC 算法,从支持 Linux 平台到 Java14 开始支持 MacOS 和 Window(个人感觉是终于可以在日常开发工具中先体验下 ZGC 的效果了,虽然其实 G1 也够用) +- 移除了 CMS(Concurrent Mark Sweep) 垃圾收集器(功成而退) +- 新增了 jpackage 工具,标配将应用打成 jar 包外,还支持不同平台的特性包,比如 linux 下的`deb`和`rpm`,window 平台下的`msi`和`exe` + +## Java15 + +### CharSequence + +`CharSequence` 接口添加了一个默认方法 `isEmpty()` 来判断字符序列为空,如果是则返回 true。 + +```java +public interface CharSequence { + default boolean isEmpty() { + return this.length() == 0; + } +} +``` + +### TreeMap + +`TreeMap` 新引入了下面这些方法: + +- `putIfAbsent()` +- `computeIfAbsent()` +- `computeIfPresent()` +- `compute()` +- `merge()` + +### ZGC(转正) + +Java11 的时候 ,ZGC 还在试验阶段。 + +当时,ZGC 的出现让众多 Java 开发者看到了垃圾回收器的另外一种可能,因此备受关注。 + +经过多个版本的迭代,不断的完善和修复问题,ZGC 在 Java 15 已经可以正式使用了! + +不过,默认的垃圾回收器依然是 G1。你可以通过下面的参数启动 ZGC: + +```bash +$ java -XX:+UseZGC className +``` + +### EdDSA(数字签名算法) + +新加入了一个安全性和性能都更强的基于 Edwards-Curve Digital Signature Algorithm (EdDSA)实现的数字签名算法。 + +虽然其性能优于现有的 ECDSA 实现,不过,它并不会完全取代 JDK 中现有的椭圆曲线数字签名算法( ECDSA)。 + +```java +KeyPairGenerator kpg = KeyPairGenerator.getInstance("Ed25519"); +KeyPair kp = kpg.generateKeyPair(); + +byte[] msg = "test_string".getBytes(StandardCharsets.UTF_8); + +Signature sig = Signature.getInstance("Ed25519"); +sig.initSign(kp.getPrivate()); +sig.update(msg); +byte[] s = sig.sign(); + +String encodedString = Base64.getEncoder().encodeToString(s); +System.out.println(encodedString); +``` + +输出: + +``` +0Hc0lxxASZNvS52WsvnncJOH/mlFhnA8Tc6D/k5DtAX5BSsNVjtPF4R4+yMWXVjrvB2mxVXmChIbki6goFBgAg== +``` + +### 文本块(转正) + +在 Java 15 ,文本块是正式的功能特性了。 + +### 隐藏类(Hidden Classes) + +隐藏类是为框架(frameworks)所设计的,隐藏类不能直接被其他类的字节码使用,只能在运行时生成类并通过反射间接使用它们。 + +### 预览新特性 + +#### 密封类 + +Java 15 对 Java 14 中引入的预览新特性进行了增强,主要是引入了一个新的概念 **密封类(Sealed Classes)。** + +密封类可以对继承或者实现它们的类进行限制。 + +比如抽象类 `Person` 只允许 `Employee` 和 `Manager` 继承。 + +```java +public abstract sealed class Person + permits Employee, Manager { + + //... +} +``` + +另外,任何扩展密封类的类本身都必须声明为 `sealed`、`non-sealed` 或 `final`。 + +```java +public final class Employee extends Person { +} + +public non-sealed class Manager extends Person { +} +``` + +![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/javaguide/image-20210820153955587.png) + +如果允许扩展的子类和封闭类在同一个源代码文件里,封闭类可以不使用 permits 语句,Java 编译器将检索源文件,在编译期为封闭类添加上许可的子类。 + +#### instanceof 模式匹配 + +Java 15 并没有对此特性进行调整,继续预览特性,主要用于接受更多的使用反馈。 + +在未来的 Java 版本中,Java 的目标是继续完善 `instanceof` 模式匹配新特性。 + +### Java15 其他新特性 + +- **Nashorn JavaScript 引擎彻底移除** :Nashorn 从 Java8 开始引入的 JavaScript 引擎,Java9 对 Nashorn 做了些增强,实现了一些 ES6 的新特性。在 Java 11 中就已经被弃用,到了 Java 15 就彻底被删除了。 +- **DatagramSocket API 重构** +- **禁用和废弃偏向锁(Biased Locking)** : 偏向锁的引入增加了 JVM 的复杂性大于其带来的性能提升。不过,你仍然可以使用 `-XX:+UseBiasedLocking` 启用偏向锁定,但它会提示 这是一个已弃用的 API。 +- ...... + +## 总结 + +### 关于预览特性 + +先贴一段 oracle 官网原文:`This is a preview feature, which is a feature whose design, specification, and implementation are complete, but is not permanent, which means that the feature may exist in a different form or not at all in future JDK releases. To compile and run code that contains preview features, you must specify additional command-line options.` + +这是一个预览功能,该功能的设计,规格和实现是完整的,但不是永久性的,这意味着该功能可能以其他形式存在或在将来的 JDK 版本中根本不存在。 要编译和运行包含预览功能的代码,必须指定其他命令行选项。 + +就以`switch`的增强为例子,从 Java12 中推出,到 Java13 中将继续增强,直到 Java14 才正式转正进入 JDK 可以放心使用,不用考虑后续 JDK 版本对其的改动或修改 + +一方面可以看出 JDK 作为标准平台在增加新特性的严谨态度,另一方面个人认为是对于预览特性应该采取审慎使用的态度。特性的设计和实现容易,但是其实际价值依然需要在使用中去验证 + +### JVM 虚拟机优化 + +每次 Java 版本的发布都伴随着对 JVM 虚拟机的优化,包括对现有垃圾回收算法的改进,引入新的垃圾回收算法,移除老旧的不再适用于今天的垃圾回收算法等 + +整体优化的方向是**高效,低时延的垃圾回收表现** + +对于日常的应用开发者可能比较关注新的语法特性,但是从一个公司角度来说,在考虑是否升级 Java 平台时更加考虑的是**JVM 运行时的提升** + +## 参考 + +- Oracle Java14 record +- java14-features +- Java 14 Features : +- What is new in Java 15: https://mkyong.com/java/what-is-new-in-java-15/ \ No newline at end of file diff --git a/docs/java/new-features/java8-common-new-features.md b/docs/java/new-features/java8-common-new-features.md index 974bbcad..84737dd4 100644 --- a/docs/java/new-features/java8-common-new-features.md +++ b/docs/java/new-features/java8-common-new-features.md @@ -1,8 +1,8 @@ -# Java8新特性实战 +# Java8 新特性实战 > 本文来自[cowbi](https://github.com/cowbi)的投稿~ -Oracle 于 2014 发布了 Java8(jdk1.8),诸多原因使它成为目前市场上使用最多的 jdk 版本。虽然发布距今已将近 7 年,但很多程序员对其新特性还是不够了解,尤其是用惯了 java8 之前版本的老程序员,比如我。 +Oracle 于 2014 发布了 Java8(jdk1.8),诸多原因使它成为目前市场上使用最多的 jdk 版本。虽然发布距今已将近 7 年,但很多程序员对其新特性还是不够了解,尤其是用惯了 Java8 之前版本的老程序员,比如我。 为了不脱离队伍太远,还是有必要对这些新特性做一些总结梳理。它较 jdk.7 有很多变化或者说是优化,比如 interface 里可以有静态方法,并且可以有方法体,这一点就颠覆了之前的认知;`java.util.HashMap` 数据结构里增加了红黑树;还有众所周知的 Lambda 表达式等等。本文不能把所有的新特性都给大家一一分享,只列出比较常用的新特性给大家做详细讲解。更多相关内容请看[官网关于 Java8 的新特性的介绍](https://www.oracle.com/java/technologies/javase/8-whats-new.html)。 diff --git a/docs/java/new-features/java9.md b/docs/java/new-features/java9.md new file mode 100644 index 00000000..27d35a4d --- /dev/null +++ b/docs/java/new-features/java9.md @@ -0,0 +1,245 @@ +--- +title: Java 9 新特性概览 +category: Java +tag: + - Java新特性 +--- + +**Java 9** 发布于 2017 年 9 月 21 日 。作为 Java 8 之后 3 年半才发布的新版本,Java 9 带来了很多重大的变化其中最重要的改动是 Java 平台模块系统的引入,其他还有诸如集合、`Stream` 流......。 + +你可以在 [Archived OpenJDK General-Availability Releases](http://jdk.java.net/archive/) 上下载自己需要的 JDK 版本!官方的新特性说明文档地址: https://openjdk.java.net/projects/jdk/ 。 + +## JShell + +JShell 是 Java 9 新增的一个实用工具。为 Java 提供了类似于 Python 的实时命令行交互工具。 + +在 JShell 中可以直接输入表达式并查看其执行结果。 + +![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/java-guide-blog/image-20210816083417616.png) + +**JShell 为我们带来了哪些好处呢?** + +1. 降低了输出第一行 Java 版"Hello World!"的门槛,能够提高新手的学习热情。 +2. 在处理简单的小逻辑,验证简单的小问题时,比 IDE 更有效率(并不是为了取代 IDE,对于复杂逻辑的验证,IDE 更合适,两者互补)。 +3. ...... + +**JShell 的代码和普通的可编译代码,有什么不一样?** + +1. 一旦语句输入完成,JShell 立即就能返回执行的结果,而不再需要编辑器、编译器、解释器。 +2. JShell 支持变量的重复声明,后面声明的会覆盖前面声明的。 +3. JShell 支持独立的表达式比如普通的加法运算 `1 + 1`。 +4. ...... + +## Java 平台模块系统 + +Java 平台模块系统是[Jigsaw Project](https://openjdk.java.net/projects/jigsaw/)的一部分,把模块化开发实践引入到了 Java 平台中,可以让我们的代码可重用性更好! + +**什么是模块系统?** 官方的定义是: + +> A uniquely named, reusable group of related packages, as well as resources (such as images and XML files) and a module descriptor。 + +简单来说,你可以将一个模块看作是一组唯一命名、可重用的包、资源和模块描述文件(`module-info.java`)。 + +任意一个 jar 文件,只要加上一个模块描述文件(`module-info.java`),就可以升级为一个模块。 + +![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/java-guide-blog/module-structure.png) + +在引入了模块系统之后,JDK 被重新组织成 94 个模块。Java 应用可以通过新增的 **[jlink](http://openjdk.java.net/jeps/282) 工具** (Java 的新命令行工具),创建出只包含所依赖的 JDK 模块的自定义运行时镜像。这样可以极大的减少 Java 运行时环境的大小。 + +我们可以通过 `exports` 关键词精准控制哪些类可以对外开放使用,哪些类只能内部使用。 + +```java +module my.module { + //exports 公开指定包的所有公共成员 + exports com.my.package.name; +} + +module my.module { + //exports…to 限制访问的成员范围 + export com.·my.package.name to com.specific.package; +} +``` + +想要深入了解 Java 9 的模块化,可以参考下面这几篇文章: + +- [《Project Jigsaw: Module System Quick-Start Guide》](https://openjdk.java.net/projects/jigsaw/quick-start) +- [《Java 9 Modules: part 1》](https://stacktraceguru.com/java9/module-introduction) +- [[Java 9 揭秘(2. 模块化系统)](https://www.cnblogs.com/IcanFixIt/p/6947763.html)](http://www.cnblogs.com/IcanFixIt/p/6947763.html) + +## 快速创建不可变集合 + +增加了`List.of()`、`Set.of()`、`Map.of()` 和 `Map.ofEntries()`等工厂方法来创建不可变集合(有点参考 Guava 的味道): + +```java +List.of("Java", "C++"); +Set.of("Java", "C++"); +Map.of("Java", 1, "C++", 2); +``` + +使用 `of()` 创建的集合为不可变集合,不能进行添加、删除、替换、 排序等操作,不然会报 `java.lang.UnsupportedOperationException` 异常。 + +## String 存储结构优化 + +Java 8 及之前的版本,`String` 一直是用 `char[]` 存储。在 Java 9 之后,`String` 的实现改用 `byte[]` 数组存储字符串,节省了空间。 + +```java +public final class String implements java.io.Serializable,Comparable, CharSequence { + // @Stable 注解表示变量最多被修改一次,称为“稳定的”。 + @Stable + private final byte[] value; +} +``` + +## 接口私有方法 + +Java 9 允许在接口中使用私有方法。这样的话,接口的使用就更加灵活了,有点像是一个简化版的抽象类。 + +```java +public interface MyInterface { + private void methodPrivate(){ + } +} +``` + +## try-with-resources 增强 + +在 Java 9 之前,我们只能在 `try-with-resources` 块中声明变量: + +```java +try (Scanner scanner = new Scanner(new File("testRead.txt")); + PrintWriter writer = new PrintWriter(new File("testWrite.txt"))) { + // omitted +} +``` + +在 Java 9 之后,在 `try-with-resources` 语句中可以使用 effectively-final 变量。 + +```java +final Scanner scanner = new Scanner(new File("testRead.txt")); +PrintWriter writer = new PrintWriter(new File("testWrite.txt")) +try (scanner;writer) { + // omitted +} +``` + +**什么是 effectively-final 变量?** 简单来说就是没有被 `final` 修饰但是值在初始化后从未更改的变量。 + +正如上面的代码所演示的那样,即使 `writer` 变量没有被显示声明为 `final`,但它在第一次被复制后就不会改变了,因此,它就是 effectively-final 变量。 + +## Stream & Optional 增强 + +`Stream` 中增加了新的方法 `ofNullable()`、`dropWhile()`、`takeWhile()` 以及 `iterate()` 方法的重载方法。 + +Java 9 中的 `ofNullable()` 方 法允许我们创建一个单元素的 `Stream`,可以包含一个非空元素,也可以创建一个空 `Stream`。 而在 Java 8 中则不可以创建空的 `Stream` 。 + +```java +Stream stringStream = Stream.ofNullable("Java"); +System.out.println(stringStream.count());// 1 +Stream nullStream = Stream.ofNullable(null); +System.out.println(nullStream.count());//0 +``` + +`takeWhile()` 方法可以从 `Stream` 中依次获取满足条件的元素,直到不满足条件为止结束获取。 + +```java +List integerList = List.of(11, 33, 66, 8, 9, 13); +integerList.stream().takeWhile(x -> x < 50).forEach(System.out::println);// 11 33 +``` + +`dropWhile()` 方法的效果和 `takeWhile()` 相反。 + +```java +List integerList2 = List.of(11, 33, 66, 8, 9, 13); +integerList2.stream().dropWhile(x -> x < 50).forEach(System.out::println);// 66 8 9 13 +``` + +`iterate()` 方法的新重载方法提供了一个 `Predicate` 参数 (判断条件)来决定什么时候结束迭代 + +```java +public static Stream iterate(final T seed, final UnaryOperator f) { +} +// 新增加的重载方法 +public static Stream iterate(T seed, Predicate hasNext, UnaryOperator next) { + +} +``` + +两者的使用对比如下,新的 `iterate()` 重载方法更加灵活一些。 + +```java +// 使用原始 iterate() 方法输出数字 1~10 +Stream.iterate(1, i -> i + 1).limit(10).forEach(System.out::println); +// 使用新的 iterate() 重载方法输出数字 1~10 +Stream.iterate(1, i -> i <= 10, i -> i + 1).forEach(System.out::println); +``` + +`Optional` 类中新增了 `ifPresentOrElse()`、`or()` 和 `stream()` 等方法 + +`ifPresentOrElse()` 方法接受两个参数 `Consumer` 和 `Runnable` ,如果 `Optional` 不为空调用 `Consumer` 参数,为空则调用 `Runnable` 参数。 + +```java +public void ifPresentOrElse(Consumer action, Runnable emptyAction) + +Optional objectOptional = Optional.empty(); +objectOptional.ifPresentOrElse(System.out::println, () -> System.out.println("Empty!!!"));// Empty!!! +``` + +`or()` 方法接受一个 `Supplier` 参数 ,如果 `Optional` 为空则返回 `Supplier` 参数指定的 `Optional` 值。 + +```java +public Optional or(Supplier> supplier) + +Optional objectOptional = Optional.empty(); +objectOptional.or(() -> Optional.of("java")).ifPresent(System.out::println);//java +``` + +## 进程 API + +Java 9 增加了 `java.lang.ProcessHandle` 接口来实现对原生进程进行管理,尤其适合于管理长时间运行的进程。 + +```java +// 获取当前正在运行的 JVM 的进程 +ProcessHandle currentProcess = ProcessHandle.current(); +// 输出进程的 id +System.out.println(currentProcess.pid()); +// 输出进程的信息 +System.out.println(currentProcess.info()); +``` + +`ProcessHandle` 接口概览: + +![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/java-guide-blog/image-20210816104614414.png) + +## 响应式流 ( Reactive Streams ) + +在 Java 9 中的 `java.util.concurrent.Flow` 类中新增了反应式流规范的核心接口 。 + +`Flow` 中包含了 `Flow.Publisher`、`Flow.Subscriber`、`Flow.Subscription` 和 `Flow.Processor` 等 4 个核心接口。Java 9 还提供了`SubmissionPublisher` 作为`Flow.Publisher` 的一个实现。 + +关于 Java 9 响应式流更详细的解读,推荐你看 [Java 9 揭秘(17. Reactive Streams )- 林本托 ](https://www.cnblogs.com/IcanFixIt/p/7245377.html) 这篇文章。 + +## 变量句柄 + +变量句柄是一个变量或一组变量的引用,包括静态域,非静态域,数组元素和堆外数据结构中的组成部分等。 + +变量句柄的含义类似于已有的方法句柄 `MethodHandle` ,由 Java 类 `java.lang.invoke.VarHandle` 来表示,可以使用类 `java.lang.invoke.MethodHandles.Lookup` 中的静态工厂方法来创建 `VarHandle` 对象。 + +`VarHandle` 的出现替代了 `java.util.concurrent.atomic` 和 `sun.misc.Unsafe` 的部分操作。并且提供了一系列标准的内存屏障操作,用于更加细粒度的控制内存排序。在安全性、可用性、性能上都要优于现有的 API。 + +## 其它 + +- **平台日志 API 改进** : Java 9 允许为 JDK 和应用配置同样的日志实现。新增了 `System.LoggerFinder` 用来管理 JDK 使 用的日志记录器实现。JVM 在运行时只有一个系统范围的 `LoggerFinder` 实例。我们可以通过添加自己的 `System.LoggerFinder` 实现来让 JDK 和应用使用 SLF4J 等其他日志记录框架。 +- **`CompletableFuture`类增强** :新增了几个新的方法(`completeAsync` ,`orTimeout` 等)。 +- **Nashorn 引擎的增强** :Nashorn 从 Java8 开始引入的 JavaScript 引擎,Java9 对 Nashorn 做了些增强,实现了一些 ES6 的新特性(Java 11 中已经被弃用)。 +- **I/O 流的新特性** :增加了新的方法来读取和复制 `InputStream` 中包含的数据。 +- **改进应用的安全性能** :Java 9 新增了 4 个 SHA- 3 哈希算法,SHA3-224、SHA3-256、SHA3-384 和 SHA3-512。 +- **改进方法句柄(Method Handle)** :方法句柄从 Java7 开始引入,Java9 在类`java.lang.invoke.MethodHandles` 中新增了更多的静态方法来创建不同类型的方法句柄。 +- ...... + +## 参考 + +- 《深入剖析 Java 新特性》-极客时间 - JShell:怎么快速验证简单的小问题? + +- New Features in Java 9:https://www.baeldung.com/new-java-9 + +- Java – Try with Resources:https://www.baeldung.com/java-try-with-resources \ No newline at end of file diff --git a/docs/java/new-features/java新特性总结.md b/docs/java/new-features/java新特性总结.md deleted file mode 100644 index 3ee0a4de..00000000 --- a/docs/java/new-features/java新特性总结.md +++ /dev/null @@ -1,946 +0,0 @@ -# 一文带你看遍 JDK9~15 的重要新特性! - -Java 8 新特性见这里:[Java8 新特性最佳指南](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247484744&idx=1&sn=9db31dca13d327678845054af75efb74&chksm=cea24a83f9d5c3956f4feb9956b068624ab2fdd6c4a75fe52d5df5dca356a016577301399548&token=1082669959&lang=zh_CN&scene=21#wechat_redirect) 。 - -你可以在 [Archived OpenJDK General-Availability Releases](http://jdk.java.net/archive/) 上下载自己需要的 JDK 版本! - -官方的新特性说明文档地址: https://openjdk.java.net/projects/jdk/ 。 - -_Guide :别人家的特性都用了几年了,我 Java 才出来,哈哈!真实!_ - -## Java9 - -发布于 2017 年 9 月 21 日 。作为 Java8 之后 3 年半才发布的新版本,Java 9 带 来了很多重大的变化其中最重要的改动是 Java 平台模块系统的引入,其他还有诸如集合、Stream 流 - -### Java 平台模块系统 - -Java 平台模块系统是[Jigsaw Project](https://openjdk.java.net/projects/jigsaw/)的一部分,把模块化开发实践引入到了 Java 平台中,可以让我们的代码可重用性更好! - -什么是模块系统?官方的定义是:A uniquely named, reusable group of related packages, as well as resources (such as images and XML files) and a module descriptor. - -简单来说,你可以将一个模块看作是一组唯一命名、可重用的包、资源和模块描述文件(module-info.java)。 - -任意一个 jar 文件,只要加上一个 模块描述文件(module-info.java),就可以升级为一个模块。 - -![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/java-guide-blog/module-structure.png) - -在引入了模块系统之后,JDK 被重新组织成 94 个模块。Java 应用可以通过新增的 jlink 工具,创建出只包含所依赖的 JDK 模块的自定义运行时镜像。这样可以极大的减少 Java 运行时环境的大小。 - -我们可以通过 exports 关键词精准控制哪些类可以对外开放使用,哪些类只能内部使用。 - -```java -module my.module { - //exports 公开指定包的所有公共成员 - exports com.my.package.name; -} - -module my.module { - //exports…to 限制访问的成员范围 - export com.my.package.name to com.specific.package; -} -``` - -Java 9 模块的重要特征是在其工件(artifact)的根目录中包含了一个描述模块的 `module-info.java` 文 件。 工件的格式可以是传统的 JAR 文件或是 Java 9 新增的 JMOD 文件。 - -想要深入了解 Java 9 的模块化,参见: - -- [《Project Jigsaw: Module System Quick-Start Guide》](https://openjdk.java.net/projects/jigsaw/quick-start) -- [《Java 9 Modules: part 1》](https://stacktraceguru.com/java9/module-introduction) - -### Jshell - -jshell 是 Java 9 新增的一个实用工具。为 Java 提供了类似于 Python 的实时命令行交互工具。 - -在 Jshell 中可以直接输入表达式并查看其执行结果。 - -![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/java-guide-blog/image-20210816083417616.png) - -### 集合增强 - -增加 了 `List.of()`、`Set.of()`、`Map.of()` 和 `Map.ofEntries()`等工厂方法来创建不可变集合(这部分内容有点参考 Guava 的味道) - -```java -List.of("Java", "C++"); -Set.of("Java", "C++"); -Map.of("Java", 1, "C++", 2); -``` - -使用 `of()` 创建的集合为不可变集合,不能进行添加、删除、替换、 排序等操作,不然会报 `java.lang.UnsupportedOperationException` 异常。 - -`Collectors` 中增加了新的方法 `filtering()` 和 `flatMapping()`。 - -`Collectors` 的 `filtering()` 方法类似于 `Stream` 类的 `filter()` 方法,都是用于过滤元素。 - -> Java 8 为 `Collectors` 类引入了 `groupingBy` 操作,用于根据特定的属性将对象分组。 - -```java -List list = List.of("x","www", "yy", "zz"); -Map> result = list.stream() - .collect(Collectors.groupingBy(String::length, - Collectors.filtering(s -> !s.contains("z"), - Collectors.toList()))); - -System.out.println(result); // {1=[x], 2=[yy], 3=[www]} -``` - -### Stream & Optional 增强 - -`Stream` 中增加了新的方法 `ofNullable()`、`dropWhile()`、`takeWhile()` 以及 `iterate()` 方法的重载方法。 - -Java 9 中的 `ofNullable()` 方 法允许我们创建一个单元素的 `Stream`,可以包含一个非空元素,也可以创建一个空 `Stream`。 而在 Java 8 中则不可以创建空的 `Stream` 。 - -```java -Stream stringStream = Stream.ofNullable("Java"); -System.out.println(stringStream.count());// 1 -Stream nullStream = Stream.ofNullable(null); -System.out.println(nullStream.count());//0 -``` - -`takeWhile()` 方法可以从 `Stream` 中依次获取满足条件的元素,直到不满足条件为止结束获取。 - -```java -List integerList = List.of(11, 33, 66, 8, 9, 13); -integerList.stream().takeWhile(x -> x < 50).forEach(System.out::println);// 11 33 -``` - -`dropWhile()` 方法的效果和 `takeWhile()` 相反。 - -```java -List integerList2 = List.of(11, 33, 66, 8, 9, 13); -integerList2.stream().dropWhile(x -> x < 50).forEach(System.out::println);// 66 8 9 13 -``` - -`iterate()` 方法的新重载方法提供了一个 `Predicate` 参数 (判断条件)来决定什么时候结束迭代 - -```java -public static Stream iterate(final T seed, final UnaryOperator f) { -} -// 新增加的重载方法 -public static Stream iterate(T seed, Predicate hasNext, UnaryOperator next) { - -} -``` - -两者的使用对比如下,新的 `iterate()` 重载方法更加灵活一些。 - -```java -// 使用原始 iterate() 方法输出数字 1~10 -Stream.iterate(1, i -> i + 1).limit(10).forEach(System.out::println); -// 使用新的 iterate() 重载方法输出数字 1~10 -Stream.iterate(1, i -> i <= 10, i -> i + 1).forEach(System.out::println); -``` - -`Optional` 类中新增了 `ifPresentOrElse()`、`or()` 和 `stream()` 等方法 - -`ifPresentOrElse()` 方法接受两个参数 `Consumer` 和 `Runnable` ,如果 `Optional` 不为空调用 `Consumer` 参数,为空则调用 `Runnable` 参数。 - -```java -public void ifPresentOrElse(Consumer action, Runnable emptyAction) - -Optional objectOptional = Optional.empty(); -objectOptional.ifPresentOrElse(System.out::println, () -> System.out.println("Empty!!!"));// Empty!!! -``` - -`or()` 方法接受一个 `Supplier` 参数 ,如果 `Optional` 为空则返回 `Supplier` 参数指定的 `Optional` 值。 - -```java -public Optional or(Supplier> supplier) - -Optional objectOptional = Optional.empty(); -objectOptional.or(() -> Optional.of("java")).ifPresent(System.out::println);//java -``` - -### String 存储结构变更 - -JDK 8 及之前的版本,`String` 一直是用 `char[]` 存储。在 Java 9 之后,`String` 的实现改用 `byte[]` 数组存储字符串。 - -### 进程 API - -Java 9 增加了 `ProcessHandle` 接口,可以对原生进程进行管理,尤其适合于管理长时间运行的进程。 - -```java -System.out.println(ProcessHandle.current().pid()); -System.out.println(ProcessHandle.current().info()); -``` - -![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/java-guide-blog/image-20210816104614414.png) - -### 平台日志 API 和服务 - -Java 9 允许为 JDK 和应用配置同样的日志实现。新增了 `System.LoggerFinder` 用来管理 JDK 使 用的日志记录器实现。JVM 在运行时只有一个系统范围的 `LoggerFinder` 实例。 - -我们可以通过添加自己的 `System.LoggerFinder` 实现来让 JDK 和应用使用 SLF4J 等其他日志记录框架。 - -### 反应式流 ( Reactive Streams ) - -在 Java9 中的 `java.util.concurrent.Flow` 类中新增了反应式流规范的核心接口 。 - -`Flow` 中包含了 `Flow.Publisher`、`Flow.Subscriber`、`Flow.Subscription` 和 `Flow.Processor` 等 4 个核心接口。Java 9 还提供了`SubmissionPublisher` 作为`Flow.Publisher` 的一个实现。 - -### 变量句柄 - -变量句柄是一个变量或一组变量的引用,包括静态域,非静态域,数组元素和堆外数据结构中的组成部分等 - -变量句柄的含义类似于已有的方法句柄 `MethodHandle` ,由 Java 类 `java.lang.invoke.VarHandle` 来表示,可以使用类 `java.lang.invoke.MethodHandles.Lookup` 中的静态工厂方法来创建 `VarHandle` 对象。 - -`VarHandle` 的出现替代了 `java.util.concurrent.atomic` 和 `sun.misc.Unsafe` 的部分操作。并且提供了一系列标准的内存屏障操作,用于更加细粒度的控制内存排序。在安全性、可用性、性能上都要优于现有的 API。 - -### 改进方法句柄(Method Handle) - -方法句柄从 Java7 开始引入,Java9 在类`java.lang.invoke.MethodHandles` 中新增了更多的静态方法来创建不同类型的方法句柄。 - -### 接口私有方法 - -Java 9 允许在接口中使用私有方法。 - -```java -public interface MyInterface { - private void methodPrivate(){ - - } -} -``` - -### Java9 其它新特性 - -- **try-with-resources 增强** :在 try-with-resources 语句中可以使用 effectively-final 变量(什么是 effectively-final 变量,见这篇文章:[《Effectively Final Variables in Java》](https://ilkinulas.github.io/programming/java/2016/03/27/effectively-final-java.html) -- 类 `CompletableFuture` 中增加了几个新的方法(`completeAsync` ,`orTimeout` 等) -- **Nashorn 引擎的增强** :Nashorn 从 Java8 开始引入的 JavaScript 引擎,Java9 对 Nashorn 做了些增强,实现了一些 ES6 的新特性(Java 11 中已经被弃用)。 -- **I/O 流的新特性** :增加了新的方法来读取和复制 `InputStream` 中包含的数据 -- **改进应用的安全性能** :Java 9 新增了 4 个 SHA- 3 哈希算法,SHA3-224、SHA3-256、SHA3-384 和 SHA3-512 -- ...... - -## Java10 - -发布于 2018 年 3 月 20 日,最知名的特性应该是 var 关键字(局部变量类型推断)的引入了,其他还有垃圾收集器改善、GC 改进、性能提升、线程管控等一批新特性 - -### var(局部变量推断) - -由于太多 Java 开发者希望 Java 中引入局部变量推断,于是 Java 10 的时候它来了,也算是众望所归了! - -Java 10 提供了 var 关键字声明局部变量。 - -> Scala 和 Kotlin 中有 val 关键字 ( `final var` 组合关键字),Java10 中并没有引入。 - -Java 10 只引入了 var,而 - -```java -var id = 0; -var codefx = new URL("https://mp.weixin.qq.com/"); -var list = new ArrayList<>(); -var list = List.of(1, 2, 3); -var map = new HashMap(); -var p = Paths.of("src/test/java/Java9FeaturesTest.java"); -var numbers = List.of("a", "b", "c"); -for (var n : list) - System.out.print(n+ " "); -``` - -var 关键字只能用于带有构造器的局部变量和 for 循环中。 - -```java -var count=null; //❌编译不通过,不能声明为 null -var r = () -> Math.random();//❌编译不通过,不能声明为 Lambda表达式 -var array = {1,2,3};//❌编译不通过,不能声明数组 -``` - -var 并不会改变 Java 是一门静态类型语言的事实,编译器负责推断出类型。 - -相关阅读:[《Java 10 新特性之局部变量类型推断》](https://zhuanlan.zhihu.com/p/34911982)。 - -### 集合增强 - -`list`,`set`,`map` 提供了静态方法`copyOf()`返回入参集合的一个不可变拷贝。 - -以下为 JDK 的源码: - -```java -static List copyOf(Collection coll) { - return ImmutableCollections.listCopy(coll); -} -``` - -使用 `copyOf()` 创建的集合为不可变集合,不能进行添加、删除、替换、 排序等操作,不然会报 `java.lang.UnsupportedOperationException` 异常。 IDEA 也会有相应的提示。 - -![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/java-guide-blog/image-20210816154125579.png) - -`java.util.stream.Collectors` 中新增了静态方法,用于将流中的元素收集为不可变的集合。 - -```java -var list = new ArrayList<>(); -list.stream().collect(Collectors.toUnmodifiableList()); -list.stream().collect(Collectors.toUnmodifiableSet()); -``` - -### Optional - -新增了`orElseThrow()`方法来在没有值时抛出指定的异常。 - -```java -Optional.ofNullable(cache.getIfPresent(key)) - .orElseThrow(() -> new PrestoException(NOT_FOUND, "Missing entry found for key: " + key)); -``` - -### 并行全垃圾回收器 G1 - -从 Java9 开始 G1 就了默认的垃圾回收器,G1 是以一种低延时的垃圾回收器来设计的,旨在避免进行 Full GC,但是 Java9 的 G1 的 FullGC 依然是使用单线程去完成标记清除算法,这可能会导致垃圾回收期在无法回收内存的时候触发 Full GC。 - -为了最大限度地减少 Full GC 造成的应用停顿的影响,从 Java10 开始,G1 的 FullGC 改为并行的标记清除算法,同时会使用与年轻代回收和混合回收相同的并行工作线程数量,从而减少了 Full GC 的发生,以带来更好的性能提升、更大的吞吐量。 - -### 应用程序类数据共享(扩展 CDS 功能) - -在 Java 5 中就已经引入了类数据共享机制 (Class Data Sharing,简称 CDS),允许将一组类预处理为共享归档文件,以便在运行时能够进行内存映射以减少 Java 程序的启动时间,当多个 Java 虚拟机(JVM)共享相同的归档文件时,还可以减少动态内存的占用量,同时减少多个虚拟机在同一个物理或虚拟的机器上运行时的资源占用。CDS 在当时还是 Oracle JDK 的商业特性。 - -Java 10 在现有的 CDS 功能基础上再次拓展,以允许应用类放置在共享存档中。CDS 特性在原来的 bootstrap 类基础之上,扩展加入了应用类的 CDS 为 (Application Class-Data Sharing,AppCDS) 支持,大大加大了 CDS 的适用范围。其原理为:在启动时记录加载类的过程,写入到文本文件中,再次启动时直接读取此启动文本并加载。设想如果应用环境没有大的变化,启动速度就会得到提升。 - -### Java10 其他新特性 - -- **线程-局部管控**:Java 10 中线程管控引入 JVM 安全点的概念,将允许在不运行全局 JVM 安全点的情况下实现线程回调,由线程本身或者 JVM 线程来执行,同时保持线程处于阻塞状态,这种方式使得停止单个线程变成可能,而不是只能启用或停止所有线程 -- **备用存储装置上的堆分配**:Java 10 中将使得 JVM 能够使用适用于不同类型的存储机制的堆,在可选内存设备上进行堆内存分配 -- **统一的垃圾回收接口**:Java 10 中,hotspot/gc 代码实现方面,引入一个干净的 GC 接口,改进不同 GC 源代码的隔离性,多个 GC 之间共享的实现细节代码应该存在于辅助类中。统一垃圾回收接口的主要原因是:让垃圾回收器(GC)这部分代码更加整洁,便于新人上手开发,便于后续排查相关问题。 -- ...... - -## Java11 - -Java11 于 2018 年 9 月 25 日正式发布,这是很重要的一个版本!Java 11 和 2017 年 9 月份发布的 Java 9 以及 2018 年 3 月份发布的 Java 10 相比,其最大的区别就是:在长期支持(Long-Term-Support)方面,**Oracle 表示会对 Java 11 提供大力支持,这一支持将会持续至 2026 年 9 月。这是据 Java 8 以后支持的首个长期版本。** - -![](https://img-blog.csdnimg.cn/20210603202746605.png) - -### String - -Java 11 增加了一系列的字符串处理方法,如以下所示。 - -_Guide:说白点就是多了层封装,JDK 开发组的人没少看市面上常见的工具类框架啊!_ - -```java -//判断字符串是否为空 -" ".isBlank();//true -//去除字符串首尾空格 -" Java ".strip();// "Java" -//去除字符串首部空格 -" Java ".stripLeading(); // "Java " -//去除字符串尾部空格 -" Java ".stripTrailing(); // " Java" -//重复字符串多少次 -"Java".repeat(3); // "JavaJavaJava" - -//返回由行终止符分隔的字符串集合。 -"A\nB\nC".lines().count(); // 3 -"A\nB\nC".lines().collect(Collectors.toList()); -``` - -### Optional - -新增了`empty()`方法来判断指定的 `Optional` 对象是否为空。 - -```java -var op = Optional.empty(); -System.out.println(op.isEmpty());//判断指定的 Optional 对象是否为空 -``` - -### ZGC(可伸缩低延迟垃圾收集器) - -**ZGC 即 Z Garbage Collector**,是一个可伸缩的、低延迟的垃圾收集器。 - -ZGC 主要为了满足如下目标进行设计: - -- GC 停顿时间不超过 10ms -- 即能处理几百 MB 的小堆,也能处理几个 TB 的大堆 -- 应用吞吐能力不会下降超过 15%(与 G1 回收算法相比) -- 方便在此基础上引入新的 GC 特性和利用 colored 针以及 Load barriers 优化奠定基础 -- 当前只支持 Linux/x64 位平台 - -ZGC 目前 **处在实验阶段**,只支持 Linux/x64 平台。 - -与 CMS 中的 ParNew 和 G1 类似,ZGC 也采用标记-复制算法,不过 ZGC 对该算法做了重大改进。 - -在 ZGC 中出现 Stop The World 的情况会更少! - -详情可以看 : [《新一代垃圾回收器 ZGC 的探索与实践》](https://tech.meituan.com/2020/08/06/new-zgc-practice-in-meituan.html) - -### 标准 HTTP Client 升级 - -Java 11 对 Java 9 中引入并在 Java 10 中进行了更新的 Http Client API 进行了标准化,在前两个版本中进行孵化的同时,Http Client 几乎被完全重写,并且现在完全支持异步非阻塞。 - -并且,Java11 中,Http Client 的包名由 `jdk.incubator.http` 改为`java.net.http`,该 API 通过 `CompleteableFuture` 提供非阻塞请求和响应语义。使用起来也很简单,如下: - -```java -var request = HttpRequest.newBuilder() - .uri(URI.create("https://javastack.cn")) - .GET() - .build(); -var client = HttpClient.newHttpClient(); - -// 同步 -HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); -System.out.println(response.body()); - -// 异步 -client.sendAsync(request, HttpResponse.BodyHandlers.ofString()) - .thenApply(HttpResponse::body) - .thenAccept(System.out::println); -``` - -### var(Lambda 参数的局部变量语法) - -从 Java 10 开始,便引入了局部变量类型推断这一关键特性。类型推断允许使用关键字 var 作为局部变量的类型而不是实际类型,编译器根据分配给变量的值推断出类型。 - -Java 10 中对 var 关键字存在几个限制 - -- 只能用于局部变量上 -- 声明时必须初始化 -- 不能用作方法参数 -- 不能在 Lambda 表达式中使用 - -Java11 开始允许开发者在 Lambda 表达式中使用 var 进行参数声明。 - -```java -// 下面两者是等价的 -Consumer consumer = (var i) -> System.out.println(i); -Consumer consumer = (String i) -> System.out.println(i); -``` - -### 启动单文件源代码程序 - -[JEP 330:启动单文件源代码程序(aunch Single-File Source-Code Programs)](https://openjdk.java.net/jeps/330) 可以让我们运行单一文件的 Java 源代码。此功能允许使用 Java 解释器直接执行 Java 源代码。源代码在内存中编译,然后由解释器执行,不需要在磁盘上生成 `.class` 文件了。 - -唯一的约束在于所有相关的类必须定义在同一个 Java 文件中。 - -对于 Java 初学者并希望尝试简单程序的人特别有用,并且能和 jshell 一起使用 - -一定能程度上增强了使用 Java 来写脚本程序的能力。 - -### Java11 其他新特性 - -- **新的垃圾回收器 Epsilon** :一个完全消极的 GC 实现,分配有限的内存资源,最大限度的降低内存占用和内存吞吐延迟时间 -- **低开销的 Heap Profiling** :Java 11 中提供一种低开销的 Java 堆分配采样方法,能够得到堆分配的 Java 对象信息,并且能够通过 JVMTI 访问堆信息 -- **TLS1.3 协议** :Java 11 中包含了传输层安全性(TLS)1.3 规范(RFC 8446)的实现,替换了之前版本中包含的 TLS,包括 TLS 1.2,同时还改进了其他 TLS 功能,例如 OCSP 装订扩展(RFC 6066,RFC 6961),以及会话散列和扩展主密钥扩展(RFC 7627),在安全性和性能方面也做了很多提升 -- **飞行记录器(Java Flight Recorder)** :飞行记录器之前是商业版 JDK 的一项分析工具,但在 Java 11 中,其代码被包含到公开代码库中,这样所有人都能使用该功能了。 -- ...... - -## Java12 - -### String - -Java 11 增加了两个的字符串处理方法,如以下所示。 - -`indent()` 方法可以实现字符串缩进。 - -```java -String text = "Java"; -// 缩进 4 格 -text = text.indent(4); -System.out.println(text); -text = text.indent(-10); -System.out.println(text); -``` - -输出: - -``` - Java -Java -``` - -`transform()` 方法可以用来转变指定字符串。 - -```java -String result = "foo".transform(input -> input + " bar"); -System.out.println(result); // foo bar -``` - -### 文件比较 - -Java 12 添加了以下方法来比较两个文件: - -```java -public static long mismatch(Path path, Path path2) throws IOException -``` - -`mismatch()` 方法用于比较两个文件,并返回第一个不匹配字符的位置,如果文件相同则返回 -1L。 - -代码示例(两个文件内容相同的情况): - -```java -Path filePath1 = Files.createTempFile("file1", ".txt"); -Path filePath2 = Files.createTempFile("file2", ".txt"); -Files.writeString(filePath1, "Java 12 Article"); -Files.writeString(filePath2, "Java 12 Article"); - -long mismatch = Files.mismatch(filePath1, filePath2); -assertEquals(-1, mismatch); -``` - -代码示例(两个文件内容不相同的情况): - -```java -Path filePath3 = Files.createTempFile("file3", ".txt"); -Path filePath4 = Files.createTempFile("file4", ".txt"); -Files.writeString(filePath3, "Java 12 Article"); -Files.writeString(filePath4, "Java 12 Tutorial"); - -long mismatch = Files.mismatch(filePath3, filePath4); -assertEquals(8, mismatch); -``` - -### 数字格式化工具类 - -`NumberFormat` 新增了对复杂的数字进行格式化的支持 - -```java -NumberFormat fmt = NumberFormat.getCompactNumberInstance(Locale.US, NumberFormat.Style.SHORT); -String result = fmt.format(1000); - System.out.println(result); // 输出为 1K,计算工资是多少K更方便了。。。 -``` - -### Shenandoah GC - -Redhat 主导开发的 Pauseless GC 实现,主要目标是 99.9% 的暂停小于 10ms,暂停与堆大小无关等 - -和 Java11 开源的 ZGC 相比(需要升级到 JDK11 才能使用),Shenandoah GC 有稳定的 JDK8u 版本,在 Java8 占据主要市场份额的今天有更大的可落地性。 - -### G1 收集器提升 - -Java12 为默认的垃圾收集器 G1 带来了两项更新: - -- **可中止的混合收集集合** :JEP344 的实现,为了达到用户提供的停顿时间目标,JEP 344 通过把要被回收的区域集(混合收集集合)拆分为强制和可选部分,使 G1 垃圾回收器能中止垃圾回收过程。 G1 可以中止可选部分的回收以达到停顿时间目标 -- **及时返回未使用的已分配内存** :JEP346 的实现,增强 G1 GC,以便在空闲时自动将 Java 堆内存返回给操作系统 - -### 预览新特性 - -作为预览特性加入,需要在`javac`编译和`java`运行时增加参数`--enable-preview` 。 - -#### 增强 Switch - -传统的 `switch` 语法存在容易漏写 `break` 的问题,而且从代码整洁性层面来看,多个 break 本质也是一种重复 - -Java12 增强了 `swtich` 表达式,使用类似 lambda 语法条件匹配成功后的执行块,不需要多写 break 。 - -```java -switch (day) { - case MONDAY, FRIDAY, SUNDAY -> System.out.println(6); - case TUESDAY -> System.out.println(7); - case THURSDAY, SATURDAY -> System.out.println(8); - case WEDNESDAY -> System.out.println(9); -} -``` - -#### instanceof 模式匹配 - -`instanceof` 主要在**类型强转前探测对象的具体类型**。 - -之前的版本中,我们需要显示地对对象进行类型转换。 - -```java -Object obj = "我是字符串"; -if(obj instanceof String){ - String str = (String) obj; - System.out.println(str); -} -``` - -新版的 `instanceof` 可以在判断是否属于具体的类型同时完成转换。 - -```java -Object obj = "我是字符串"; -if(obj instanceof String str){ - System.out.println(str); -} -``` - -## Java13 - -### 增强 ZGC(释放未使用内存) - -在 Java 11 中是实验性的引入的 ZGC 在实际的使用中存在未能主动将未使用的内存释放给操作系统的问题。 - -ZGC 堆由一组称为 ZPages 的堆区域组成。在 GC 周期中清空 ZPages 区域时,它们将被释放并返回到页面缓存 **ZPageCache** 中,此缓存中的 ZPages 按最近最少使用(LRU)的顺序,并按照大小进行组织。 - -在 Java 13 中,ZGC 将向操作系统返回被标识为长时间未使用的页面,这样它们将可以被其他进程重用。 - -### SocketAPI 重构 - -Java Socket API 终于迎来了重大更新! - -Java 13 将 Socket API 的底层进行了重写, `NioSocketImpl` 是对 `PlainSocketImpl` 的直接替代,它使用 `java.util.concurrent` 包下的锁而不是同步方法。如果要使用旧实现,请使用 `-Djdk.net.usePlainSocketImpl=true`。 - -并且,在 Java 13 中是默认使用新的 Socket 实现。 - -```java -public final class NioSocketImpl extends SocketImpl implements PlatformSocketImpl { -} -``` - -### FileSystems - -`FileSystems` 类中添加了以下三种新方法,以便更容易地使用将文件内容视为文件系统的文件系统提供程序: - -- `newFileSystem(Path)` -- `newFileSystem(Path, Map)` -- `newFileSystem(Path, Map, ClassLoader)` - -### 动态 CDS 存档 - -Java 13 中对 Java 10 中引入的应用程序类数据共享(AppCDS)进行了进一步的简化、改进和扩展,即:**允许在 Java 应用程序执行结束时动态进行类归档**,具体能够被归档的类包括所有已被加载,但不属于默认基层 CDS 的应用程序类和引用类库中的类。 - -这提高了应用程序类数据共享([AppCDS](https://openjdk.java.net/jeps/310))的可用性。无需用户进行试运行来为每个应用程序创建类列表。 - -```bash -$ java -XX:ArchiveClassesAtExit=my_app_cds.jsa -cp my_app.jar -$ java -XX:SharedArchiveFile=my_app_cds.jsa -cp my_app.jar -``` - -### 预览新特性 - -#### 文本块 - -解决 Java 定义多行字符串时只能通过换行转义或者换行连接符来变通支持的问题,引入**三重双引号**来定义多行文本。 - -Java 13 支持两个 `"""` 符号中间的任何内容都会被解释为字符串的一部分,包括换行符。 - -未支持文本块之前的 HTML 写法: - -```java -String json ="{\n" + - " \"name\":\"mkyong\",\n" + - " \"age\":38\n" + - "}\n"; -``` - -支持文本块之后的 HTML 写法: - -```java - String json = """ - { - "name":"mkyong", - "age":38 - } - """; -``` - -未支持文本块之前的 SQL 写法: - -```sql -String query = "SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n" + - "WHERE `CITY` = 'INDIANAPOLIS'\n" + - "ORDER BY `EMP_ID`, `LAST_NAME`;\n"; -``` - -支持文本块之后的 SQL 写法: - -```sql -String query = """ - SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB` - WHERE `CITY` = 'INDIANAPOLIS' - ORDER BY `EMP_ID`, `LAST_NAME`; - """; -``` - -另外,`String` 类新增加了 3 个新的方法来操作文本块: - -- `formatted(Object... args)` :它类似于 `String` 的`format()`方法。添加它是为了支持文本块的格式设置。 -- `stripIndent()` :用于去除文本块中每一行开头和结尾的空格。 -- `translateEscapes()` :转义序列如 _“\\\t”_ 转换为 _“\t”_ - -由于文本块是一项预览功能,可以在未来版本中删除,因此这些新方法被标记为弃用。 - -```java -@Deprecated(forRemoval=true, since="13") -public String stripIndent() { -} -@Deprecated(forRemoval=true, since="13") -public String formatted(Object... args) { - -} -@Deprecated(forRemoval=true, since="13") -public String translateEscapes() { -} -``` - -#### 增强 Switch(引入 yield 关键字到 Switch 中) - -`Switch` 表达式中就多了一个关键字用于跳出 `Switch` 块的关键字 `yield`,主要用于返回一个值 - -`yield`和 `return` 的区别在于:`return` 会直接跳出当前循环或者方法,而 `yield` 只会跳出当前 `Switch` 块,同时在使用 `yield` 时,需要有 `default` 条件 - -```java - private static String descLanguage(String name) { - return switch (name) { - case "Java": yield "object-oriented, platform independent and secured"; - case "Ruby": yield "a programmer's best friend"; - default: yield name +" is a good language"; - }; - } -``` - -## Java14 - -### 空指针异常精准提示 - -通过 JVM 参数中添加`-XX:+ShowCodeDetailsInExceptionMessages`,可以在空指针异常中获取更为详细的调用信息,更快的定位和解决问题。 - -```java -a.b.c.i = 99; // 假设这段代码会发生空指针 -``` - -Java 14 之前: - -```java -Exception in thread "main" java.lang.NullPointerException - at NullPointerExample.main(NullPointerExample.java:5) -``` - -Java 14 之后: - -```java - // 增加参数后提示的异常中很明确的告知了哪里为空导致 -Exception in thread "main" java.lang.NullPointerException: - Cannot read field 'c' because 'a.b' is null. - at Prog.main(Prog.java:5) -``` - -### switch 的增强(转正) - -Java12 引入的 switch(预览特性)在 Java14 变为正式版本,不需要增加参数来启用,直接在 JDK14 中就能使用。 - -Java12 为 switch 表达式引入了类似 lambda 语法条件匹配成功后的执行块,不需要多写 break ,Java13 提供了 `yield` 来在 block 中返回值。 - -```java -String result = switch (day) { - case "M", "W", "F" -> "MWF"; - case "T", "TH", "S" -> "TTS"; - default -> { - if(day.isEmpty()) - yield "Please insert a valid day."; - else - yield "Looks like a Sunday."; - } - - }; -System.out.println(result); -``` - -### 预览新特性 - -#### record 关键字 - -`record` 关键字可以简化 **数据类**(一个 Java 类一旦实例化就不能再修改)的定义方式,使用 `record` 代替 `class` 定义的类,只需要声明属性,就可以在获得属性的访问方法,以及 `toString()`,`hashCode()`, `equals()`方法 - -类似于使用 `class` 定义类,同时使用了 lombok 插件,并打上了`@Getter,@ToString,@EqualsAndHashCode`注解 - -```java -/** - * 这个类具有两个特征 - * 1. 所有成员属性都是final - * 2. 全部方法由构造方法,和两个成员属性访问器组成(共三个) - * 那么这种类就很适合使用record来声明 - */ -final class Rectangle implements Shape { - final double length; - final double width; - - public Rectangle(double length, double width) { - this.length = length; - this.width = width; - } - - double length() { return length; } - double width() { return width; } -} -/** - * 1. 使用record声明的类会自动拥有上面类中的三个方法 - * 2. 在这基础上还附赠了equals(),hashCode()方法以及toString()方法 - * 3. toString方法中包括所有成员属性的字符串表示形式及其名称 - */ -record Rectangle(float length, float width) { } -``` - -#### 文本块 - -Java14 中,文本块依然是预览特性,不过,其引入了两个新的转义字符: - -- `\` : 表示行尾,不引入换行符 -- `\s` :表示单个空格 - -```java -String str = "凡心所向,素履所往,生如逆旅,一苇以航。"; - -String str2 = """ - 凡心所向,素履所往, \ - 生如逆旅,一苇以航。"""; -System.out.println(str2);// 凡心所向,素履所往, 生如逆旅,一苇以航。 -String text = """ - java - c++\sphp - """; -System.out.println(text); -//输出: -java -c++ php -``` - -#### instanceof 增强 - -依然是**预览特性** ,Java 12 新特性中介绍过。 - -### Java14 其他特性 - -- 从 Java11 引入的 ZGC 作为继 G1 过后的下一代 GC 算法,从支持 Linux 平台到 Java14 开始支持 MacOS 和 Window(个人感觉是终于可以在日常开发工具中先体验下 ZGC 的效果了,虽然其实 G1 也够用) -- 移除了 CMS(Concurrent Mark Sweep) 垃圾收集器(功成而退) -- 新增了 jpackage 工具,标配将应用打成 jar 包外,还支持不同平台的特性包,比如 linux 下的`deb`和`rpm`,window 平台下的`msi`和`exe` - -## Java15 - -### CharSequence - -`CharSequence` 接口添加了一个默认方法 `isEmpty()` 来判断字符序列为空,如果是则返回 true。 - -```java -public interface CharSequence { - default boolean isEmpty() { - return this.length() == 0; - } -} -``` - -### TreeMap - -`TreeMap` 新引入了下面这些方法: - -- `putIfAbsent()` -- `computeIfAbsent()` -- `computeIfPresent()` -- `compute()` -- `merge()` - -### ZGC(转正) - -Java11 的时候 ,ZGC 还在试验阶段。 - -当时,ZGC 的出现让众多 Java 开发者看到了垃圾回收器的另外一种可能,因此备受关注。 - -经过多个版本的迭代,不断的完善和修复问题,ZGC 在 Java 15 已经可以正式使用了! - -不过,默认的垃圾回收器依然是 G1。你可以通过下面的参数启动 ZGC: - -```bash -$ java -XX:+UseZGC className -``` - -### EdDSA(数字签名算法) - -新加入了一个安全性和性能都更强的基于 Edwards-Curve Digital Signature Algorithm (EdDSA)实现的数字签名算法。 - -虽然其性能优于现有的 ECDSA 实现,不过,它并不会完全取代 JDK 中现有的椭圆曲线数字签名算法( ECDSA)。 - -```java -KeyPairGenerator kpg = KeyPairGenerator.getInstance("Ed25519"); -KeyPair kp = kpg.generateKeyPair(); - -byte[] msg = "test_string".getBytes(StandardCharsets.UTF_8); - -Signature sig = Signature.getInstance("Ed25519"); -sig.initSign(kp.getPrivate()); -sig.update(msg); -byte[] s = sig.sign(); - -String encodedString = Base64.getEncoder().encodeToString(s); -System.out.println(encodedString); -``` - -输出: - -``` -0Hc0lxxASZNvS52WsvnncJOH/mlFhnA8Tc6D/k5DtAX5BSsNVjtPF4R4+yMWXVjrvB2mxVXmChIbki6goFBgAg== -``` - -### 文本块(转正) - -在 Java 15 ,文本块是正式的功能特性了。 - -### 隐藏类(Hidden Classes) - -隐藏类是为框架(frameworks)所设计的,隐藏类不能直接被其他类的字节码使用,只能在运行时生成类并通过反射间接使用它们。 - -### 预览新特性 - -#### 密封类 - -Java 15 对 Java 14 中引入的预览新特性进行了增强,主要是引入了一个新的概念 **密封类(Sealed Classes)。** - -密封类可以对继承或者实现它们的类进行限制。 - -比如抽象类 `Person` 只允许 `Employee` 和 `Manager` 继承。 - -```java -public abstract sealed class Person - permits Employee, Manager { - - //... -} -``` - -另外,任何扩展密封类的类本身都必须声明为 `sealed`、`non-sealed` 或 `final`。 - -```java -public final class Employee extends Person { -} - -public non-sealed class Manager extends Person { -} -``` - -![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/javaguide/image-20210820153955587.png) - -如果允许扩展的子类和封闭类在同一个源代码文件里,封闭类可以不使用 permits 语句,Java 编译器将检索源文件,在编译期为封闭类添加上许可的子类。 - -#### instanceof 模式匹配 - -Java 15 并没有对此特性进行调整,继续预览特性,主要用于接受更多的使用反馈。 - -在未来的 Java 版本中,Java 的目标是继续完善 `instanceof` 模式匹配新特性。 - -### Java15 其他新特性 - -- **Nashorn JavaScript 引擎彻底移除** :Nashorn 从 Java8 开始引入的 JavaScript 引擎,Java9 对 Nashorn 做了些增强,实现了一些 ES6 的新特性。在 Java 11 中就已经被弃用,到了 Java 15 就彻底被删除了。 -- **DatagramSocket API 重构** -- **禁用和废弃偏向锁(Biased Locking)** : 偏向锁的引入增加了 JVM 的复杂性大于其带来的性能提升。不过,你仍然可以使用 `-XX:+UseBiasedLocking` 启用偏向锁定,但它会提示 这是一个已弃用的 API。 -- ...... - -## 总结 - -### 关于预览特性 - -先贴一段 oracle 官网原文:`This is a preview feature, which is a feature whose design, specification, and implementation are complete, but is not permanent, which means that the feature may exist in a different form or not at all in future JDK releases. To compile and run code that contains preview features, you must specify additional command-line options.` - -这是一个预览功能,该功能的设计,规格和实现是完整的,但不是永久性的,这意味着该功能可能以其他形式存在或在将来的 JDK 版本中根本不存在。 要编译和运行包含预览功能的代码,必须指定其他命令行选项。 - -就以`switch`的增强为例子,从 Java12 中推出,到 Java13 中将继续增强,直到 Java14 才正式转正进入 JDK 可以放心使用,不用考虑后续 JDK 版本对其的改动或修改 - -一方面可以看出 JDK 作为标准平台在增加新特性的严谨态度,另一方面个人认为是对于预览特性应该采取审慎使用的态度。特性的设计和实现容易,但是其实际价值依然需要在使用中去验证 - -### JVM 虚拟机优化 - -每次 Java 版本的发布都伴随着对 JVM 虚拟机的优化,包括对现有垃圾回收算法的改进,引入新的垃圾回收算法,移除老旧的不再适用于今天的垃圾回收算法等 - -整体优化的方向是**高效,低时延的垃圾回收表现** - -对于日常的应用开发者可能比较关注新的语法特性,但是从一个公司角度来说,在考虑是否升级 Java 平台时更加考虑的是**JVM 运行时的提升** - -## 参考资料 - -- JDK Project Overview : -- IBM Developer Java9 -- Guide to Java10 -- Java 10 新特性介绍 -- IBM Devloper Java11 -- Java 11 – Features and Comparison: -- Oracle Java12 ReleaseNote -- Oracle Java13 ReleaseNote -- New Features in Java 12 -- New Java13 Features -- Java13 新特性概述 -- Oracle Java14 record -- java14-features -- Java 14 Features : -- What is new in Java 15: https://mkyong.com/java/what-is-new-in-java-15/ From b7780513c5005a95d4735037826c40bf7839f6b3 Mon Sep 17 00:00:00 2001 From: guide Date: Wed, 2 Mar 2022 15:11:04 +0800 Subject: [PATCH 60/66] =?UTF-8?q?[docs=20update]=20java=20=E6=96=B0?= =?UTF-8?q?=E7=89=B9=E6=80=A7=E9=83=A8=E5=88=86=E5=86=85=E5=AE=B9=E5=AE=8C?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/java/new-features/java12-13.md | 4 ++-- docs/java/new-features/java9.md | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/java/new-features/java12-13.md b/docs/java/new-features/java12-13.md index 179acd7f..c4f70582 100644 --- a/docs/java/new-features/java12-13.md +++ b/docs/java/new-features/java12-13.md @@ -269,8 +269,8 @@ public String translateEscapes() { ## 参考 - JDK Project Overview : -- Oracle Java12 ReleaseNote +- Oracle Java12 ReleaseNote :https://www.oracle.com/java/technologies/javase/12all-relnotes.htm +- What is new in Java 12:https://mkyong.com/java/what-is-new-in-java-12/ - Oracle Java13 ReleaseNote -- New Features in Java 12 - New Java13 Features - Java13 新特性概述 diff --git a/docs/java/new-features/java9.md b/docs/java/new-features/java9.md index 27d35a4d..d2409c20 100644 --- a/docs/java/new-features/java9.md +++ b/docs/java/new-features/java9.md @@ -238,8 +238,7 @@ System.out.println(currentProcess.info()); ## 参考 +- Release Notes for JDK 9 and JDK 9 Update Releases : https://www.oracle.com/java/technologies/javase/9-all-relnotes.html - 《深入剖析 Java 新特性》-极客时间 - JShell:怎么快速验证简单的小问题? - - New Features in Java 9:https://www.baeldung.com/new-java-9 - - Java – Try with Resources:https://www.baeldung.com/java-try-with-resources \ No newline at end of file From 02ebf68da120a01c6604394bc9a491f27ac5a6bd Mon Sep 17 00:00:00 2001 From: Gale <1372363493@qq.com> Date: Wed, 2 Mar 2022 16:09:54 +0800 Subject: [PATCH 61/66] =?UTF-8?q?=E6=96=87=E5=AD=97=E4=BF=AE=E5=A4=8D,?= =?UTF-8?q?=E5=A4=9A=E4=BA=86=E4=B8=80=E4=B8=AA=E2=80=9C=E4=BC=9A=E2=80=9D?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/java/jvm/class-file-structure.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/java/jvm/class-file-structure.md b/docs/java/jvm/class-file-structure.md index b5a26113..edbfdf53 100644 --- a/docs/java/jvm/class-file-structure.md +++ b/docs/java/jvm/class-file-structure.md @@ -35,7 +35,7 @@ ClassFile { u2 interfaces_count;//接口 u2 interfaces[interfaces_count];//一个类可以实现多个接口 u2 fields_count;//Class 文件的字段属性 - field_info fields[fields_count];//一个类会可以有多个字段 + field_info fields[fields_count];//一个类可以有多个字段 u2 methods_count;//Class 文件的方法数量 method_info methods[methods_count];//一个类可以有个多个方法 u2 attributes_count;//此类的属性表中的属性数 @@ -208,4 +208,4 @@ Class 文件存储格式中对方法的描述与对字段的描述几乎采用 - - - -- 《实战 Java 虚拟机》 \ No newline at end of file +- 《实战 Java 虚拟机》 From 5a5f8ccb3bfb8d6ba8ac41295f1a1e4555395260 Mon Sep 17 00:00:00 2001 From: guide Date: Thu, 3 Mar 2022 09:14:56 +0800 Subject: [PATCH 62/66] =?UTF-8?q?=E2=9C=A8[docs=20feat]vuepress=E4=B8=BB?= =?UTF-8?q?=E9=A2=98=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 11 +- README.en.md | 10 +- README.md | 49 +- docs/.vuepress/config.js | 429 ---------------- docs/.vuepress/config.ts | 55 ++ docs/.vuepress/navbar.ts | 28 ++ docs/.vuepress/sidebar.ts | 472 ++++++++++++++++++ docs/.vuepress/styles/index.scss | 0 docs/.vuepress/styles/index.styl | 2 - docs/.vuepress/styles/palette.scss | 4 + docs/.vuepress/themeConfig.ts | 98 ++++ ....md => linkedlist-algorithm-problems.md} | 0 ...法题.md => string-algorithm-problems.md} | 0 ...程题.md => the-sword-refers-to-offer.md} | 0 .../data-structure/{图.md => graph.md} | 38 +- .../data-structure/{堆.md => heap.md} | 44 +- ...据结构.md => linear-data-structure.md} | 0 .../data-structure/pictures/图/图.png | Bin 6235 -> 0 bytes .../{红黑树.md => red-black-tree.md} | 0 .../data-structure/{树.md => tree.md} | 0 ...师的《计算机网络》内容总结.md | 2 +- .../cs-basics/operating-system/linux-intro.md | 22 +- ...=> operating-system-basic-questions-01.md} | 2 - .../{数据库基础知识.md => basis.md} | 0 .../{字符集.md => character-set.md} | 0 ...试题总结.md => mysql-questions-01.md} | 0 .../images/redis-all/cache-process.png} | Bin .../images/redis-all/缓存穿透情况.png | Bin 6524 -> 0 bytes docs/database/redis/redis-questions-01.md | 17 +- .../zookeeper/zookeeper-in-action.md | 4 +- .../zookeeper/zookeeper-intro.md | 8 +- .../{集群.md => cluster.md} | 0 ....md => disaster-recovery&remote-live.md} | 2 +- ...&熔断.md => fallback&circuit-breaker.md} | 0 ....md => high-availability-system-design.md} | 0 .../{性能测试.md => performance-test.md} | 0 ...重试机制.md => timeout-and-retry.md} | 5 +- .../{负载均衡.md => load-balancing.md} | 0 ...试题总结.md => kafka-questions-01.md} | 0 .../message-queue/rocketmq-intro.md | 2 +- ...-write-separation-and-library-subtable.md} | 0 docs/home.md | 2 +- .../idea-tutorial/idea-plugins/rest-devlop.md | 4 +- ...=> java-collection-precautions-for-use.md} | 0 .../java-collection-questions-02.md | 4 +- .../java-concurrent-questions-02.md | 6 +- .../concurrent/java-thread-pool-summary.md | 20 +- docs/java/tips/jad.md | 371 -------------- .../0605fbf554814a23b80f6351408598be-1.png | Bin 34826 -> 0 bytes .../1fb751b0d78b4a3b8d0f528598ae885d-1.png | Bin 11026 -> 0 bytes .../392e4090c0094657ae29af030d3646e3-1.png | Bin 17374 -> 0 bytes .../3be5a280b0f5499a80c706c8e5da2a4f-1.png | Bin 15992 -> 0 bytes .../3d8d5ffd3ada43fb86ef54b05408c656-1.png | Bin 18975 -> 0 bytes .../53fd3ee9a1a0448ca1878e865f4e5f96-1.png | Bin 23636 -> 0 bytes .../ba07b0fee1754ffc943e546a18a3907e-1.png | Bin 32335 -> 0 bytes .../e9bf831860f442a3a992eef64ebb6a50-1.png | Bin 12094 -> 0 bytes ...手教你定位常见Java性能问题.md | 402 --------------- docs/system-design/basis/naming.md | 4 +- .../spring/spring-common-annotations.md | 2 +- .../framework/spring/spring-transaction.md | 10 +- .../{定时任务.md => schedule-task.md} | 0 docs/tools/git/git-intro.md | 21 +- package.json | 33 +- 63 files changed, 823 insertions(+), 1360 deletions(-) delete mode 100644 docs/.vuepress/config.js create mode 100644 docs/.vuepress/config.ts create mode 100644 docs/.vuepress/navbar.ts create mode 100644 docs/.vuepress/sidebar.ts create mode 100644 docs/.vuepress/styles/index.scss delete mode 100644 docs/.vuepress/styles/index.styl create mode 100644 docs/.vuepress/styles/palette.scss create mode 100644 docs/.vuepress/themeConfig.ts rename docs/cs-basics/algorithms/{几道常见的链表算法题.md => linkedlist-algorithm-problems.md} (100%) rename docs/cs-basics/algorithms/{几道常见的字符串算法题.md => string-algorithm-problems.md} (100%) rename docs/cs-basics/algorithms/{剑指offer部分编程题.md => the-sword-refers-to-offer.md} (100%) rename docs/cs-basics/data-structure/{图.md => graph.md} (80%) rename docs/cs-basics/data-structure/{堆.md => heap.md} (88%) rename docs/cs-basics/data-structure/{线性数据结构.md => linear-data-structure.md} (100%) delete mode 100644 docs/cs-basics/data-structure/pictures/图/图.png rename docs/cs-basics/data-structure/{红黑树.md => red-black-tree.md} (100%) rename docs/cs-basics/data-structure/{树.md => tree.md} (100%) rename docs/cs-basics/operating-system/{操作系统常见面试题&知识点总结.md => operating-system-basic-questions-01.md} (99%) rename docs/database/{数据库基础知识.md => basis.md} (100%) rename docs/database/{字符集.md => character-set.md} (100%) rename docs/database/mysql/{mysql知识点&面试题总结.md => mysql-questions-01.md} (100%) rename docs/database/{Redis/images/redis-all/缓存穿透情况.png => redis/images/redis-all/cache-process.png} (100%) delete mode 100644 docs/database/redis/images/redis-all/缓存穿透情况.png rename docs/high-availability/{集群.md => cluster.md} (100%) rename docs/high-availability/{灾备设计和异地多活.md => disaster-recovery&remote-live.md} (95%) rename docs/high-availability/{降级&熔断.md => fallback&circuit-breaker.md} (100%) rename docs/high-availability/{高可用系统设计.md => high-availability-system-design.md} (100%) rename docs/high-availability/{性能测试.md => performance-test.md} (100%) rename docs/high-availability/{超时和重试机制.md => timeout-and-retry.md} (79%) rename docs/high-performance/{负载均衡.md => load-balancing.md} (100%) rename docs/high-performance/message-queue/{kafka知识点&面试题总结.md => kafka-questions-01.md} (100%) rename docs/high-performance/{读写分离&分库分表.md => read-and-write-separation-and-library-subtable.md} (100%) rename docs/java/collection/{java集合使用注意事项.md => java-collection-precautions-for-use.md} (100%) delete mode 100644 docs/java/tips/jad.md delete mode 100644 docs/java/tips/locate-performance-problems/images/0605fbf554814a23b80f6351408598be-1.png delete mode 100644 docs/java/tips/locate-performance-problems/images/1fb751b0d78b4a3b8d0f528598ae885d-1.png delete mode 100644 docs/java/tips/locate-performance-problems/images/392e4090c0094657ae29af030d3646e3-1.png delete mode 100644 docs/java/tips/locate-performance-problems/images/3be5a280b0f5499a80c706c8e5da2a4f-1.png delete mode 100644 docs/java/tips/locate-performance-problems/images/3d8d5ffd3ada43fb86ef54b05408c656-1.png delete mode 100644 docs/java/tips/locate-performance-problems/images/53fd3ee9a1a0448ca1878e865f4e5f96-1.png delete mode 100644 docs/java/tips/locate-performance-problems/images/ba07b0fee1754ffc943e546a18a3907e-1.png delete mode 100644 docs/java/tips/locate-performance-problems/images/e9bf831860f442a3a992eef64ebb6a50-1.png delete mode 100644 docs/java/tips/locate-performance-problems/手把手教你定位常见Java性能问题.md rename docs/system-design/{定时任务.md => schedule-task.md} (100%) diff --git a/.gitignore b/.gitignore index 2dc9c784..49a42094 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,13 @@ /node_modules /package-lock.json -/dist .DS_Store +# VS Code Config file +.vscode/ +# Vuepress Cache +.cache/ +# Vuepress Temp +.temp/ +# Vuepress Output +dist/ +# Build files +packages/*/lib/ diff --git a/README.en.md b/README.en.md index 4a68d64d..91db0a4f 100644 --- a/README.en.md +++ b/README.en.md @@ -16,22 +16,22 @@ Read in other languages: [Mandarin](https://github.com/Snailclimb/JavaGuide/blob > 6. **Interview Special Edition** : For those who are preparing for the interview, you can consider the interview special edition: [Java Interview Advanced Guide].(https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7) (Very high quality, built specifically for interviews, free for planet users) > 7. **Reprint Instructions**: All the following articles are my (Guide) original if not stated at the beginning of the text, reproduced at the beginning of the text to indicate the source, if found malicious plagiarism / transport, will use legal weapons to defend their rights. Let's maintain a good technical creation environment together! ⛽️ -

+

-

+

阅读 stars forks issues

-

Recommended

+

Recommended

- @@ -163,7 +163,7 @@ In addition,[GeeksforGeeks]( https://www.geeksforgeeks.org/fundamentals-of-alg **Important knowledge points:** -1.
+1.

diff --git a/README.md b/README.md index fc9f667e..3436385e 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ > [JavaGuide 官方知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)来啦!!!如果你需要专属面试小册/一对一交流/简历修改/专属求职指南/学习打卡,不妨花 3 分钟左右看看星球的详细介绍: [JavaGuide 知识星球详细介绍](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc) (一定要确定自己真的需要再加入,一定要看完详细介绍之后再加我)。 -

+

@@ -100,13 +100,12 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle ### 新特性 -1. **Java 8** :[Java 8 新特性总结(翻译)](docs/java/new-features/java8-tutorial-translate.md)、[Java8常用新特性总结](docs/java/new-features/java8-common-new-features.md) -2. **Java9~Java15** : [一文带你看遍 JDK9~15 的重要新特性!](./docs/java/new-features/java新特性总结.md) - -### 小技巧 - -1. [JAD 反编译](docs/java/tips/jad.md) -2. [手把手教你定位常见 Java 性能问题](./docs/java/tips/locate-performance-problems/手把手教你定位常见Java性能问题.md) +1. **Java 8** :[Java 8 新特性总结(翻译)](docs/java/new-features/java8-tutorial-translate.md)、[Java8常用新特性总结](./docs/java/new-features/java8-common-new-features.md) +2. [Java 9 新特性概览](./docs/java/new-features/java9.md) +3. [Java 10 新特性概览](./docs/java/new-features/java10.md) +4. [Java 11 新特性概览](./docs/java/new-features/java11.md) +5. [Java 12~13 新特性概览](./docs/java/new-features/java12-13.md) +6. [Java 14~15 新特性概览](./docs/java/new-features/java14-15.md) ## 计算机基础 @@ -114,7 +113,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle ### 操作系统 -1. [操作系统常见问题总结!](docs/cs-basics/operating-system/操作系统常见面试题&知识点总结.md) +1. [操作系统常见问题总结!](docs/cs-basics/operating-system/operating-system-basic-questions-01.md) 2. [后端程序员必备的 Linux 基础知识总结](docs/cs-basics/operating-system/linux-intro.md) 3. [Shell 编程入门](docs/cs-basics/operating-system/shell-intro.md) @@ -130,10 +129,10 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle **图解数据结构:** -1. [线性数据结构 :数组、链表、栈、队列](docs/cs-basics/data-structure/线性数据结构.md) -2. [图](docs/cs-basics/data-structure/图.md) -3. [堆](docs/cs-basics/data-structure/堆.md) -4. [树](docs/cs-basics/data-structure/树.md) :重点关注[红黑树](docs/cs-basics/data-structure/红黑树.md)、B-,B+,B*树、LSM树 +1. [线性数据结构 :数组、链表、栈、队列](docs/cs-basics/data-structure/linear-data-structure.md) +2. [图](docs/cs-basics/data-structure/graph.md) +3. [堆](docs/cs-basics/data-structure/heap.md) +4. [树](docs/cs-basics/data-structure/tree.md) :重点关注[红黑树](docs/cs-basics/data-structure/red-black-tree.md)、B-,B+,B*树、LSM树 其他常用数据结构 : @@ -148,9 +147,9 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle **常见算法问题总结** : -- [几道常见的字符串算法题总结 ](docs/cs-basics/algorithms/几道常见的字符串算法题.md) -- [几道常见的链表算法题总结 ](docs/cs-basics/algorithms/几道常见的链表算法题.md) -- [剑指 offer 部分编程题](docs/cs-basics/algorithms/剑指offer部分编程题.md) +- [几道常见的字符串算法题总结 ](docs/cs-basics/algorithms/string-algorithm-problems.md) +- [几道常见的链表算法题总结 ](docs/cs-basics/algorithms/linkedlist-algorithm-problems.md) +- [剑指 offer 部分编程题](docs/cs-basics/algorithms/the-sword-refers-to-offer.md) 另外,[GeeksforGeeks]( https://www.geeksforgeeks.org/fundamentals-of-algorithms/) 这个网站总结了常见的算法 ,比较全面系统。 @@ -160,8 +159,8 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle **总结:** -1. [数据库基础知识总结](docs/database/数据库基础知识.md) -2. **[MySQL知识点总结](docs/database/mysql/mysql知识点&面试题总结.md)** (必看 :+1:) +1. [数据库基础知识总结](docs/database/basis.md) +2. **[MySQL知识点总结](docs/database/mysql/mysql-questions-01.md)** (必看 :+1:) 4. [一千行 MySQL 学习笔记](docs/database/mysql/a-thousand-lines-of-mysql-study-notes.md) 5. [MySQL 高性能优化规范建议](docs/database/mysql/mysql-high-performance-optimization-specification-recommendations.md) @@ -172,7 +171,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle 3. [MySQL三大日志(binlog、redo log和undo log)详解](docs/database/mysql/mysql-logs.md) 4. [InnoDB存储引擎对MVCC的实现](docs/database/mysql/innodb-implementation-of-mvcc.md) 5. [一条 SQL 语句在 MySQL 中如何被执行的?](docs/database/mysql/how-sql-executed-in-mysql.md) -6. [字符集详解:为什么不建议在MySQL中使用 utf8 ?](docs/database/字符集.md) +6. [字符集详解:为什么不建议在MySQL中使用 utf8 ?](docs/database/character-set.md) 7. [关于数据库中如何存储时间的一点思考](docs/database/mysql/some-thoughts-on-database-storage-time.md) ### Redis @@ -224,7 +223,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle #### Spring Cloud -[ 大白话入门 Spring Cloud](docs/system-design/framework/springcloud/springcloud-intro.md) +[大白话入门 Spring Cloud](docs/system-design/framework/springcloud/springcloud-intro.md) ### 安全 @@ -246,11 +245,11 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle 系统需要对用户输入的文本进行敏感词过滤如色情、政治、暴力相关的词汇。 -相关阅读:[《Java定时任务大揭秘》](./docs/system-design/security/sentive-words-filter.md) +相关阅读:[《敏感词过滤》](./docs/system-design/security/sentive-words-filter.md) ### 定时任务 -最近有朋友问到定时任务相关的问题。于是,我简单写了一篇文章总结一下定时任务的一些概念以及一些常见的定时任务技术选型:[《Java定时任务大揭秘》](./docs/system-design/定时任务.md) +最近有朋友问到定时任务相关的问题。于是,我简单写了一篇文章总结一下定时任务的一些概念以及一些常见的定时任务技术选型:[《Java定时任务大揭秘》](./docs/system-design/schedule-task.md) ## 分布式 @@ -317,7 +316,7 @@ Dubbo 是一款国产的 RPC 框架,由阿里开源。相关阅读: 1. **RabbitMQ** : [RabbitMQ 入门](docs/high-performance/message-queue/rabbitmq-intro.md) 2. **RocketMQ** : [RocketMQ 入门](docs/high-performance/message-queue/rocketmq-intro)、[RocketMQ 的几个简单问题与答案](docs/high-performance/message-queue/rocketmq-questions.md) -3. **Kafka** :[Kafka 常见问题总结](docs/high-performance/message-queue/kafka知识点&面试题总结.md) +3. **Kafka** :[Kafka 常见问题总结](docs/high-performance/message-queue/kafka-questions-01.md) ### 读写分离&分库分表 @@ -329,7 +328,7 @@ Dubbo 是一款国产的 RPC 框架,由阿里开源。相关阅读: 常见的分库分表工具有:`sharding-jdbc`(当当)、`TSharding`(蘑菇街)、`MyCAT`(基于 Cobar)、`Cobar`(阿里巴巴)...。 推荐使用 `sharding-jdbc`。 因为,`sharding-jdbc` 是一款轻量级 `Java` 框架,以 `jar` 包形式提供服务,不要我们做额外的运维工作,并且兼容性也很好。 -相关阅读: [读写分离&分库分表常见问题总结](docs/high-performance/读写分离&分库分表.md) +相关阅读: [读写分离&分库分表常见问题总结](docs/high-performance/read-and-write-separation-and-library-subtable.md) ### 负载均衡 @@ -345,7 +344,7 @@ Dubbo 是一款国产的 RPC 框架,由阿里开源。相关阅读: 高可用描述的是一个系统在大部分时间都是可用的,可以为我们提供服务的。高可用代表系统即使在发生硬件故障或者系统升级的时候,服务仍然是可用的 。 -相关阅读: **《[如何设计一个高可用系统?要考虑哪些地方?](docs/high-availability/高可用系统设计.md)》** 。 +相关阅读: **《[如何设计一个高可用系统?要考虑哪些地方?](docs/high-availability/high-availability-system-design.md)》** 。 ### 限流 diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js deleted file mode 100644 index d023d9f9..00000000 --- a/docs/.vuepress/config.js +++ /dev/null @@ -1,429 +0,0 @@ -const { config } = require("vuepress-theme-hope"); -const CompressionPlugin = require("compression-webpack-plugin"); - -module.exports = config({ - port: "8080", - title: "JavaGuide", - description: "Java学习&&面试指南", - //指定 vuepress build 的输出目录 - dest: "./dist", - // 是否开启默认预加载js - shouldPrefetch: (file, type) => false, - // webpack 配置 https://vuepress.vuejs.org/zh/config/#chainwebpack - // chainWebpack: config => { - // if (process.env.NODE_ENV === 'production') { - // const dateTime = new Date().getTime(); - - // // 清除js版本号 - // config.output.filename('assets/js/jg-[name].js?v=' + dateTime).end(); - // config.output.chunkFilename('assets/js/jg-[name].js?v=' + dateTime).end(); - - // // 清除css版本号 - // config.plugin('mini-css-extract-plugin').use(require('mini-css-extract-plugin'), [{ - // filename: 'assets/css/[name].css?v=' + dateTime, - // chunkFilename: 'assets/css/[name].css?v=' + dateTime - // }]).end(); - - // } - // }, - configureWebpack: { - //vuepress 编译压缩 - plugins: [new CompressionPlugin({ - filename: "[path].gz", //编译后的文件名 - algorithm: "gzip", - test: /\.js$|\.css$|\.html$/,//需要编译的文件 - threshold: 10240,//需要编译的文件大小 - minRatio: 0.8,//压缩比 - deleteOriginalAssets: false,//编译时是否删除源文件 - })], - }, - - head: [ - // 百度站点验证 - ["meta", { name: "baidu-site-verification", content: "code-IZvTs9l2OK" }], - [ - "script", - { src: "https://cdn.jsdelivr.net/npm/react/umd/react.production.min.js" }, - ], - [ - "script", - { - src: "https://cdn.jsdelivr.net/npm/react-dom/umd/react-dom.production.min.js", - }, - ], - ["script", { src: "https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js" }], - [ - "script", - { src: "https://cdn.jsdelivr.net/npm/@babel/standalone/babel.min.js" }, - ], - // 添加百度统计 - [ - "script", {}, - `var _hmt = _hmt || []; - (function() { - var hm = document.createElement("script"); - hm.src = "https://hm.baidu.com/hm.js?5dd2e8c97962d57b7b8fea1737c01743"; - var s = document.getElementsByTagName("script")[0]; - s.parentNode.insertBefore(hm, s); - })();` - ] - ], - locales: { - "/": { - lang: "zh-CN" - } - }, - themeConfig: { - logo: "/logo.png", hostname: "https://javaguide.cn/", author: "Guide哥", repo: "https://github.com/Snailclimb/JavaGuide", - editLinks: true, docsDir: 'docs', seo: true, - nav: [ - { text: "Java面试指南", icon: "java", link: "/home", }, - { text: "Java面试指北", icon: "recommend", link: "https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7" }, - { text: "官方知识星球", icon: "recommend", link: "https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc" }, - { - text: "开发工具", icon: "Tools", link: "/tools/", - items: [ - { text: "Java", icon: "java", link: "/tools/java/jadx/" }, - { text: "Database", icon: "database", link: "/tools/database/chiner/" }, - { text: "Git", icon: "git", link: "/tools/git/git-intro/" }, - { text: "Docker", icon: "docker1", link: "/tools/docker/docker-intro/" }, - { text: "IntelliJ IDEA", icon: "intellijidea", link: "/idea-tutorial/" }, - ] - }, - { text: "关于作者", icon: "zuozhe", link: "/about-the-author/" }, - ], - sidebar: { - // 应该把更精确的路径放置在前边 - "/javaguide/": [ - "intro", "contribution-guideline", "faq", "todo" - ], - "/about-the-author/": [ - { - title: "个人经历", icon: "zuozhe", collapsable: false, - children: ["internet-addiction-teenager", "javaguide-100k-star", "feelings-after-one-month-of-induction-training", "feelings-of-half-a-year-from-graduation-to-entry",] - }, - { - title: "杂谈", icon: "chat", collapsable: false, - children: ["my-article-was-stolen-and-made-into-video-and-it-became-popular", "dog-that-copies-other-people-essay",] - }, - ], - '/tools/': [ - { - title: "Java", icon: "java", prefix: "java/", collapsable: false, - children: ["jadx"] - }, - { - title: "Database", icon: "database", prefix: "database/", collapsable: false, - children: ["chiner", "dbeaver", "screw", "datagrip"] - }, - { - title: "Git", icon: "git", prefix: "git/", collapsable: false, - children: ["git-intro", "github-tips"] - }, - { - title: "Docker", icon: "docker1", prefix: "docker/", collapsable: false, - children: ["docker-intro", "docker-in-action"] - }, - ], - '/high-quality-technical-articles/': [ - { - title: "练级攻略", icon: "lujing", prefix: "advanced-programmer/", collapsable: false, - children: ["seven-tips-for-becoming-an-advanced-programmer"] - }, - { - title: "个人经历", icon: "zuozhe", prefix: "personal-experience/", collapsable: false, - children: ["two-years-of-back-end-develop--experience-in-didi&toutiao", "8-years-programmer-work-summary"] - }, - { - title: "面试", icon: "mianshixinxi-02", prefix: "interview/", collapsable: false, - children: ["the-experience-and-thinking-of-an-interview-experienced-by-an-older-programmer", "technical-preliminary-preparation", "screen-candidates-for-packaging"], - }, - { - title: "工作", icon: "work0", prefix: "work/", collapsable: false, - children: ["get-into-work-mode-quickly-when-you-join-a-company"] - } - ], - '/idea-tutorial/': - [ - { - title: "IDEA小技巧", icon: "tips", prefix: "idea-tips/", collapsable: false, - children: [ - "idea-refractor-intro", - "idea-plug-in-development-intro", - "idea-source-code-reading-skills", - ] - }, - { - title: "IDEA插件推荐", icon: "chajian1", collapsable: false, prefix: "idea-plugins/", - children: [ - "shortcut-key", "idea-themes", "improve-code", "interface-beautification", - "camel-case", "code-glance", "code-statistic", - "git-commit-template", "gson-format", "idea-features-trainer", "jclasslib", - "maven-helper", "rest-devlop", "save-actions", "sequence-diagram", "translation", - "others" - ] - }, - ], - // 必须放在最后面 - '/': [{ - title: "Java", icon: "java", prefix: "java/", - children: [ - { - title: "基础", prefix: "basis/", - children: [ - "java-basic-questions-01", "java-basic-questions-02", "java-basic-questions-03", - { - title: "重要知识点", - children: [ - "why-there-only-value-passing-in-java", "reflection", "proxy", "io", - "bigdecimal", "generics" - ], - },], - }, - { - title: "容器", prefix: "collection/", - children: [ - "java-collection-questions-01", "java-collection-questions-02", "java集合使用注意事项", - { - title: "源码分析", - children: ["arraylist-source-code", "hashmap-source-code", "concurrent-hash-map-source-code"], - },], - }, - { - title: "并发编程", prefix: "concurrent/", - children: [ - "java-concurrent-questions-01", "java-concurrent-questions-02", - { - title: "重要知识点", - children: ["java-thread-pool-summary", "java-thread-pool-best-practices", "java-concurrent-collections", "aqs", "reentrantlock", - "atomic-classes", "threadlocal", "completablefuture-intro"], - }, - ], - }, - { - title: "JVM", prefix: "jvm/", - children: ["memory-area", "jvm-garbage-collection", "class-file-structure", "class-loading-process", "classloader", "jvm-parameters-intro", "jvm-intro", "jdk-monitoring-and-troubleshooting-tools"], - }, - { - title: "新特性", prefix: "new-features/", - children: ["java8-common-new-features", "java8-tutorial-translate", "java9", "java10", "java11", "java12-13", "java14-15"], - }, - { - title: "小技巧", prefix: "tips/", - children: ["locate-performance-problems/手把手教你定位常见Java性能问题", "jad"], - }, - ], - }, - { - title: "计算机基础", icon: "computer", prefix: "cs-basics/", - children: [ - { - title: "网络", prefix: "network/", icon: "network", - children: [ - "osi&tcp-ip-model", "http&https", "http1.0&http1.1", - "other-network-questions" - ], - }, - { - title: "操作系统", prefix: "operating-system/", icon: "caozuoxitong", - children: [ - "操作系统常见面试题&知识点总结", "linux-intro", "shell-intro" - ], - }, - { - title: "数据结构", prefix: "data-structure/", icon: "people-network-full", - children: [ - "线性数据结构", "图", "堆", "树", "红黑树", "bloom-filter" - ], - }, - { - title: "算法", prefix: "algorithms/", icon: "suanfaku", - children: [ - "几道常见的字符串算法题", "几道常见的链表算法题", "剑指offer部分编程题" - ], - }, - ], - - }, - { - title: "数据库", icon: "database", prefix: "database/", - children: [ - "数据库基础知识", - "字符集", - { - title: "MySQL", prefix: "mysql/", icon: "mysql", - children: [ - "mysql知识点&面试题总结", - "a-thousand-lines-of-mysql-study-notes", - "mysql-high-performance-optimization-specification-recommendations", - "mysql-index", "mysql-logs", "transaction-isolation-level", - "innodb-implementation-of-mvcc", "how-sql-executed-in-mysql", - "some-thoughts-on-database-storage-time" - ], - }, - { - title: "Redis", prefix: "redis/", icon: "redis", - children: ["redis-questions-01", "3-commonly-used-cache-read-and-write-strategies"], - }, - ], - }, - { - title: "系统设计", icon: "xitongsheji", prefix: "system-design/", - children: [ - "system-design-questions", - { - title: "基础", prefix: "basis/", icon: "jibendebasic", - children: [ - "RESTfulAPI", - "naming", - ], - }, - { - title: "常用框架", prefix: "framework/", icon: "framework", - children: [{ - title: "Spring", prefix: "spring/", - children: [ - "spring-knowledge-and-questions-summary", "spring-common-annotations", "spring-transaction", "spring-design-patterns-summary", "spring-boot-auto-assembly-principles" - ] - }, - "mybatis/mybatis-interview", "netty", - { - title: "SpringCloud", prefix: "springcloud/", - children: ["springcloud-intro"] - }, - ], - }, - { - title: "安全", prefix: "security/", icon: "security-fill", - children: ["basis-of-authority-certification", "advantages&disadvantages-of-jwt", "sso-intro", "sentive-words-filter", "data-desensitization"] - }, - "定时任务" - ], - }, - { - title: "分布式", icon: "distributed-network", prefix: "distributed-system/", - children: [ - { - title: "理论&算法&协议", prefix: "theorem&algorithm&protocol/", - children: ["cap&base-theorem", "paxos-algorithm", "raft-algorithm"], - }, - "api-gateway", "distributed-id", - { - title: "RPC", prefix: "rpc/", - children: ["dubbo", "why-use-rpc"] - }, - "distributed-transaction", - { - title: "分布式协调", prefix: "distributed-process-coordination/", - children: ["zookeeper/zookeeper-intro", "zookeeper/zookeeper-plus", "zookeeper/zookeeper-in-action"] - }, - ], - }, { - title: "高性能", icon: "gaojixiaozuzhibeifen", prefix: "high-performance/", - children: [ - "读写分离&分库分表", "负载均衡", - { - title: "消息队列", prefix: "message-queue/", icon: "MQ", - children: ["message-queue", "kafka知识点&面试题总结", "rocketmq-intro", "rocketmq-questions", "rabbitmq-intro"], - }, - ], - }, { - title: "高可用", icon: "CalendarAvailability-1", prefix: "high-availability/", - children: [ - "高可用系统设计", "limit-request", "降级&熔断", "超时和重试机制", "集群", "灾备设计和异地多活", "性能测试" - ], - }], - }, - blog: { - intro: "/about-the-author/", - sidebarDisplay: "mobile", - links: { - Zhihu: "https://www.zhihu.com/people/javaguide", - Github: "https://github.com/Snailclimb", - Gitee: "https://gitee.com/SnailClimb", - }, - }, - footer: { - display: true, - content: '鄂ICP备2020015769号-1', - }, - - copyright: { - status: "global", - }, - - git: { - timezone: "Asia/Shanghai", - }, - - mdEnhance: { - enableAll: false, - presentation: { - plugins: [ - "highlight", "math", "search", "notes", "zoom", "anything", "audio", "chalkboard", - ], - }, - }, - - pwa: { - favicon: "/favicon.ico", - cachePic: false, - cacheHTML: false, - apple: { - icon: "/assets/icon/apple-icon-152.png", - statusBarColor: "black", - }, - msTile: { - image: "/assets/icon/ms-icon-144.png", - color: "#ffffff", - }, - manifest: { - icons: [ - { - src: "/assets/icon/chrome-mask-512.png", - sizes: "512x512", - purpose: "maskable", - type: "image/png", - }, - { - src: "/assets/icon/chrome-mask-192.png", - sizes: "192x192", - purpose: "maskable", - type: "image/png", - }, - { - src: "/assets/icon/chrome-512.png", - sizes: "512x512", - type: "image/png", - }, - { - src: "/assets/icon/chrome-192.png", - sizes: "192x192", - type: "image/png", - }, - ], - shortcuts: [ - { - name: "Guide", - short_name: "Guide", - url: "/guide/", - icons: [ - { - src: "/assets/icon/guide-maskable.png", - sizes: "192x192", - purpose: "maskable", - type: "image/png", - }, - { - src: "/assets/icon/guide-monochrome.png", - sizes: "192x192", - purpose: "monochrome", - type: "image/png", - }, - ], - }, - ], - }, - }, - }, -}); diff --git a/docs/.vuepress/config.ts b/docs/.vuepress/config.ts new file mode 100644 index 00000000..a182c8f6 --- /dev/null +++ b/docs/.vuepress/config.ts @@ -0,0 +1,55 @@ +const { defineHopeConfig } = require("vuepress-theme-hope"); +import themeConfig from "./themeConfig"; + +module.exports = defineHopeConfig({ + port: "8080", + title: "JavaGuide", + description: "Java学习&&面试指南", + //指定 vuepress build 的输出目录 + dest: "./dist", + // 是否开启默认预加载 js + shouldPrefetch: (file, type) => false, + head: [ + // 百度站点验证 + ["meta", { name: "baidu-site-verification", content: "code-IZvTs9l2OK" }], + [ + "script", + { src: "https://cdn.jsdelivr.net/npm/react/umd/react.production.min.js" }, + ], + [ + "script", + { + src: "https://cdn.jsdelivr.net/npm/react-dom/umd/react-dom.production.min.js", + }, + ], + ["script", { src: "https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js" }], + [ + "script", + { src: "https://cdn.jsdelivr.net/npm/@babel/standalone/babel.min.js" }, + ], + // 添加百度统计 + [ + "script", {}, + `var _hmt = _hmt || []; + (function() { + var hm = document.createElement("script"); + hm.src = "https://hm.baidu.com/hm.js?5dd2e8c97962d57b7b8fea1737c01743"; + var s = document.getElementsByTagName("script")[0]; + s.parentNode.insertBefore(hm, s); + })();` + ], + [ + "link", + { + rel: "stylesheet", + href: "//at.alicdn.com/t/font_2922463_zpzjti5jsah.css", + }, + ], + ], + locales: { + "/": { + lang: "zh-CN" + } + }, + themeConfig, +}); diff --git a/docs/.vuepress/navbar.ts b/docs/.vuepress/navbar.ts new file mode 100644 index 00000000..fd160b5d --- /dev/null +++ b/docs/.vuepress/navbar.ts @@ -0,0 +1,28 @@ +import { defineNavbarConfig } from "vuepress-theme-hope"; + +export const navbarConfig = defineNavbarConfig([ + { text: "Java面试指南", icon: "java", link: "/home" }, + { + text: "Java面试指北", + icon: "recommend", + link: "https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7", + }, + { + text: "官方知识星球", + icon: "recommend", + link: "https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc", + }, + { + text: "开发工具", + icon: "Tools", + link: "/tools/", + children: [ + { text: "Java", icon: "java", link: "/tools/java/jadx/" }, + { text: "Database", icon: "database", link: "/tools/database/chiner/" }, + { text: "Git", icon: "git", link: "/tools/git/git-intro/" }, + { text: "Docker", icon: "docker1", link: "/tools/docker/docker-intro/" }, + { text: "IntelliJ IDEA", icon: "intellijidea", link: "/idea-tutorial/" }, + ], + }, + { text: "关于作者", icon: "zuozhe", link: "/about-the-author/" }, +]); diff --git a/docs/.vuepress/sidebar.ts b/docs/.vuepress/sidebar.ts new file mode 100644 index 00000000..0e68ed0f --- /dev/null +++ b/docs/.vuepress/sidebar.ts @@ -0,0 +1,472 @@ +import { defineSidebarConfig } from "vuepress-theme-hope"; + +export const sidebarConfig = defineSidebarConfig({ + // 应该把更精确的路径放置在前边 + "/javaguide/": ["intro", "contribution-guideline", "faq", "todo"], + "/about-the-author/": [ + { + text: "个人经历", + icon: "zuozhe", + collapsable: false, + children: [ + "internet-addiction-teenager", + "javaguide-100k-star", + "feelings-after-one-month-of-induction-training", + "feelings-of-half-a-year-from-graduation-to-entry", + ], + }, + { + text: "杂谈", + icon: "chat", + collapsable: false, + children: [ + "my-article-was-stolen-and-made-into-video-and-it-became-popular", + "dog-that-copies-other-people-essay", + ], + }, + ], + "/tools/": [ + { + text: "Java", + icon: "java", + prefix: "java/", + collapsable: false, + children: ["jadx"], + }, + { + text: "Database", + icon: "database", + prefix: "database/", + collapsable: false, + children: ["chiner", "dbeaver", "screw", "datagrip"], + }, + { + text: "Git", + icon: "git", + prefix: "git/", + collapsable: false, + children: ["git-intro", "github-tips"], + }, + { + text: "Docker", + icon: "docker1", + prefix: "docker/", + collapsable: false, + children: ["docker-intro", "docker-in-action"], + }, + ], + "/high-quality-technical-articles/": [ + { + text: "练级攻略", + icon: "et-performance", + prefix: "advanced-programmer/", + collapsable: false, + children: ["seven-tips-for-becoming-an-advanced-programmer"], + }, + { + text: "个人经历", + icon: "zuozhe", + prefix: "personal-experience/", + collapsable: false, + children: [ + "two-years-of-back-end-develop--experience-in-didi&toutiao", + "8-years-programmer-work-summary", + ], + }, + { + text: "面试", + icon: "mianshixinxi-02", + prefix: "interview/", + collapsable: false, + children: [ + "the-experience-and-thinking-of-an-interview-experienced-by-an-older-programmer", + "technical-preliminary-preparation", + "screen-candidates-for-packaging", + ], + }, + { + text: "工作", + icon: "work0", + prefix: "work/", + collapsable: false, + children: ["get-into-work-mode-quickly-when-you-join-a-company"], + }, + ], + "/idea-tutorial/": [ + { + text: "IDEA小技巧", + icon: "tips", + prefix: "idea-tips/", + collapsable: false, + children: [ + "idea-refractor-intro", + "idea-plug-in-development-intro", + "idea-source-code-reading-skills", + ], + }, + { + text: "IDEA插件推荐", + icon: "chajian1", + collapsable: false, + prefix: "idea-plugins/", + children: [ + "shortcut-key", + "idea-themes", + "improve-code", + "interface-beautification", + "camel-case", + "code-glance", + "code-statistic", + "git-commit-template", + "gson-format", + "idea-features-trainer", + "jclasslib", + "maven-helper", + "rest-devlop", + "save-actions", + "sequence-diagram", + "translation", + "others", + ], + }, + ], + // 必须放在最后面 + "/": [ + { + text: "Java", + icon: "java", + prefix: "java/", + collapsable: true, + children: [ + { + text: "基础", + prefix: "basis/", + icon: "basic", + collapsable: true, + children: [ + "java-basic-questions-01", + "java-basic-questions-02", + "java-basic-questions-03", + { + text: "重要知识点", + icon: "important", + collapsable: true, + children: [ + "why-there-only-value-passing-in-java", + "reflection", + "proxy", + "io", + "bigdecimal", + "generics", + ], + }, + ], + }, + { + text: "容器", + prefix: "collection/", + icon: "container", + collapsable: true, + children: [ + "java-collection-questions-01", + "java-collection-questions-02", + "java-collection-precautions-for-use", + { + text: "源码分析", + collapsable: true, + children: [ + "arraylist-source-code", + "hashmap-source-code", + "concurrent-hash-map-source-code", + ], + }, + ], + }, + { + text: "并发编程", + prefix: "concurrent/", + icon: "et-performance", + collapsable: true, + children: [ + "java-concurrent-questions-01", + "java-concurrent-questions-02", + { + text: "重要知识点", + icon: "important", + collapsable: true, + children: [ + "java-thread-pool-summary", + "java-thread-pool-best-practices", + "java-concurrent-collections", + "aqs", + "reentrantlock", + "atomic-classes", + "threadlocal", + "completablefuture-intro", + ], + }, + ], + }, + { + text: "JVM", + prefix: "jvm/", + icon: "virtual_machine", + collapsable: true, + children: [ + "memory-area", + "jvm-garbage-collection", + "class-file-structure", + "class-loading-process", + "classloader", + "jvm-parameters-intro", + "jvm-intro", + "jdk-monitoring-and-troubleshooting-tools", + ], + }, + { + text: "新特性", + prefix: "new-features/", + icon: "features", + collapsable: true, + children: [ + "java8-common-new-features", + "java8-tutorial-translate", + "java9", + "java10", + "java11", + "java12-13", + "java14-15", + ], + }, + ], + }, + { + text: "计算机基础", + icon: "computer", + prefix: "cs-basics/", + collapsable: true, + children: [ + { + text: "网络", + prefix: "network/", + icon: "network", + collapsable: true, + children: [ + "osi&tcp-ip-model", + "http&https", + "http1.0&http1.1", + "other-network-questions", + ], + }, + { + text: "操作系统", + prefix: "operating-system/", + icon: "caozuoxitong", + collapsable: true, + children: [ + "operating-system-basic-questions-01", + "linux-intro", + "shell-intro", + ], + }, + { + text: "数据结构", + prefix: "data-structure/", + icon: "people-network-full", + collapsable: true, + children: [ + "linear-data-structure", + "graph", + "heap", + "tree", + "red-black-tree", + "bloom-filter", + ], + }, + { + text: "算法", + prefix: "algorithms/", + icon: "suanfaku", + collapsable: true, + children: [ + "string-algorithm-problems", + "linkedlist-algorithm-problems", + "the-sword-refers-to-offer", + ], + }, + ], + }, + { + text: "数据库", + icon: "database", + prefix: "database/", + collapsable: true, + children: [ + "basis", + "character-set", + { + text: "MySQL", + prefix: "mysql/", + icon: "mysql", + collapsable: true, + children: [ + "mysql-questions-01", + "a-thousand-lines-of-mysql-study-notes", + "mysql-high-performance-optimization-specification-recommendations", + { + text: "重要知识点", + icon: "important", + collapsable: true, + children: [ + "mysql-index", + "mysql-logs", + "transaction-isolation-level", + "innodb-implementation-of-mvcc", + "how-sql-executed-in-mysql", + "some-thoughts-on-database-storage-time", + ], + }, + ], + }, + { + text: "Redis", + prefix: "redis/", + icon: "redis", + collapsable: true, + children: [ + "redis-questions-01", + "3-commonly-used-cache-read-and-write-strategies", + ], + }, + ], + }, + { + text: "系统设计", + icon: "xitongsheji", + prefix: "system-design/", + collapsable: true, + children: [ + "system-design-questions", + { + text: "基础", + prefix: "basis/", + icon: "basic", + collapsable: true, + children: ["RESTfulAPI", "naming"], + }, + { + text: "常用框架", + prefix: "framework/", + icon: "framework", + collapsable: true, + children: [ + { + text: "Spring", + prefix: "spring/", + collapsable: true, + children: [ + "spring-knowledge-and-questions-summary", + "spring-common-annotations", + "spring-transaction", + "spring-design-patterns-summary", + "spring-boot-auto-assembly-principles", + ], + }, + "mybatis/mybatis-interview", + "netty", + { + text: "SpringCloud", + prefix: "springcloud/", + children: ["springcloud-intro"], + }, + ], + }, + { + text: "安全", + prefix: "security/", + icon: "security-fill", + collapsable: true, + children: [ + "basis-of-authority-certification", + "advantages&disadvantages-of-jwt", + "sso-intro", + "sentive-words-filter", + "data-desensitization", + ], + }, + "schedule-task", + ], + }, + { + text: "分布式", + icon: "distributed-network", + prefix: "distributed-system/", + collapsable: true, + children: [ + { + text: "理论&算法&协议", + prefix: "theorem&algorithm&protocol/", + collapsable: true, + children: ["cap&base-theorem", "paxos-algorithm", "raft-algorithm"], + }, + "api-gateway", + "distributed-id", + { + text: "RPC", + prefix: "rpc/", + collapsable: true, + children: ["dubbo", "why-use-rpc"], + }, + "distributed-transaction", + { + text: "分布式协调", + prefix: "distributed-process-coordination/", + collapsable: true, + children: [ + "zookeeper/zookeeper-intro", + "zookeeper/zookeeper-plus", + "zookeeper/zookeeper-in-action", + ], + }, + ], + }, + { + text: "高性能", + icon: "et-performance", + prefix: "high-performance/", + collapsable: true, + children: [ + "read-and-write-separation-and-library-subtable", + "load-balancing", + { + text: "消息队列", + prefix: "message-queue/", + icon: "MQ", + collapsable: true, + children: [ + "message-queue", + "kafka-questions-01", + "rocketmq-intro", + "rocketmq-questions", + "rabbitmq-intro", + ], + }, + ], + }, + { + text: "高可用", + icon: "CalendarAvailability-1", + prefix: "high-availability/", + collapsable: true, + children: [ + "high-availability-system-design", + "limit-request", + "fallback&circuit-breaker", + "timeout-and-retry", + "cluster", + "disaster-recovery&remote-live", + "performance-test", + ], + }, + ], +}); diff --git a/docs/.vuepress/styles/index.scss b/docs/.vuepress/styles/index.scss new file mode 100644 index 00000000..e69de29b diff --git a/docs/.vuepress/styles/index.styl b/docs/.vuepress/styles/index.styl deleted file mode 100644 index 8943c5b9..00000000 --- a/docs/.vuepress/styles/index.styl +++ /dev/null @@ -1,2 +0,0 @@ -// import icon -@import '//at.alicdn.com/t/font_2922463_j457c9usui.css' \ No newline at end of file diff --git a/docs/.vuepress/styles/palette.scss b/docs/.vuepress/styles/palette.scss new file mode 100644 index 00000000..1e6004d0 --- /dev/null +++ b/docs/.vuepress/styles/palette.scss @@ -0,0 +1,4 @@ +// colors +$themeColor: #2980B9; +$sidebarWidth: 20rem; +$sidebarMobileWidth: 16rem; diff --git a/docs/.vuepress/themeConfig.ts b/docs/.vuepress/themeConfig.ts new file mode 100644 index 00000000..4d6ffa96 --- /dev/null +++ b/docs/.vuepress/themeConfig.ts @@ -0,0 +1,98 @@ +import { defineThemeConfig } from "vuepress-theme-hope"; +import { navbarConfig } from "./navbar"; +import { sidebarConfig } from "./sidebar"; + +export default defineThemeConfig({ + logo: "/logo.png", + hostname: "https://javaguide.cn/", + author: "Guide哥", + repo: "https://github.com/Snailclimb/JavaGuide", + docsDir: "docs", + iconPrefix: "iconfont icon-", + pure: true, + navbar: navbarConfig, + sidebar: sidebarConfig, + blog: { + intro: "/about-the-author/", + sidebarDisplay: "mobile", + medias: { + Zhihu: "https://www.zhihu.com/people/javaguide", + Github: "https://github.com/Snailclimb", + Gitee: "https://gitee.com/SnailClimb", + }, + }, + footer: + '鄂ICP备2020015769号-1', + displayFooter: true, + plugins: { + blog: { + autoExcerpt: true, + }, + mdEnhance: { + enableAll: false, + presentation: { + plugins: ["highlight", "math", "search", "notes", "zoom"], + }, + }, + pwa: { + favicon: "/favicon.ico", + cachePic: false, + cacheHTML: false, + apple: { + icon: "/assets/icon/apple-icon-152.png", + statusBarColor: "black", + }, + msTile: { + image: "/assets/icon/ms-icon-144.png", + color: "#ffffff", + }, + manifest: { + icons: [ + { + src: "/assets/icon/chrome-mask-512.png", + sizes: "512x512", + purpose: "maskable", + type: "image/png", + }, + { + src: "/assets/icon/chrome-mask-192.png", + sizes: "192x192", + purpose: "maskable", + type: "image/png", + }, + { + src: "/assets/icon/chrome-512.png", + sizes: "512x512", + type: "image/png", + }, + { + src: "/assets/icon/chrome-192.png", + sizes: "192x192", + type: "image/png", + }, + ], + shortcuts: [ + { + name: "Guide", + short_name: "Guide", + url: "/guide/", + icons: [ + { + src: "/assets/icon/guide-maskable.png", + sizes: "192x192", + purpose: "maskable", + type: "image/png", + }, + { + src: "/assets/icon/guide-monochrome.png", + sizes: "192x192", + purpose: "monochrome", + type: "image/png", + }, + ], + }, + ], + }, + }, + }, +}); diff --git a/docs/cs-basics/algorithms/几道常见的链表算法题.md b/docs/cs-basics/algorithms/linkedlist-algorithm-problems.md similarity index 100% rename from docs/cs-basics/algorithms/几道常见的链表算法题.md rename to docs/cs-basics/algorithms/linkedlist-algorithm-problems.md diff --git a/docs/cs-basics/algorithms/几道常见的字符串算法题.md b/docs/cs-basics/algorithms/string-algorithm-problems.md similarity index 100% rename from docs/cs-basics/algorithms/几道常见的字符串算法题.md rename to docs/cs-basics/algorithms/string-algorithm-problems.md diff --git a/docs/cs-basics/algorithms/剑指offer部分编程题.md b/docs/cs-basics/algorithms/the-sword-refers-to-offer.md similarity index 100% rename from docs/cs-basics/algorithms/剑指offer部分编程题.md rename to docs/cs-basics/algorithms/the-sword-refers-to-offer.md diff --git a/docs/cs-basics/data-structure/图.md b/docs/cs-basics/data-structure/graph.md similarity index 80% rename from docs/cs-basics/data-structure/图.md rename to docs/cs-basics/data-structure/graph.md index ee266166..0e1b4381 100644 --- a/docs/cs-basics/data-structure/图.md +++ b/docs/cs-basics/data-structure/graph.md @@ -23,7 +23,7 @@ tag: 下图所展示的就是图这种数据结构,并且还是一张有向图。 -![图](pictures/图/图.png) +![](https://img-blog.csdnimg.cn/7f232c9660c54ee1ac182b7c0bf267a3.png) 图在我们日常生活中的例子很多!比如我们在社交软件上好友关系就可以用图来表示。 @@ -67,11 +67,11 @@ tag: 在无向图中,我们只关心关系的有无,所以当顶点i和顶点j有关系时,`A[i][j]`=1,当顶点i和顶点j没有关系时,`A[i][j]`=0。如下图所示: -![无向图的邻接矩阵存储](pictures/图/无向图的邻接矩阵存储.png) +![无向图的邻接矩阵存储](./pictures/图/无向图的邻接矩阵存储.png) 值得注意的是:**无向图的邻接矩阵是一个对称矩阵,因为在无向图中,顶点i和顶点j有关系,则顶点j和顶点i必有关系。** -![有向图的邻接矩阵存储](pictures/图/有向图的邻接矩阵存储.png) +![有向图的邻接矩阵存储](./pictures/图/有向图的邻接矩阵存储.png) 邻接矩阵存储的方式优点是简单直接(直接使用一个二维数组即可),并且,在获取两个定点之间的关系的时候也非常高效(直接获取指定位置的数组元素的值即可)。但是,这种存储方式的缺点也比较明显,那就是比较浪费空间, @@ -83,11 +83,11 @@ tag: -![无向图的邻接表存储](pictures/图/无向图的邻接表存储.png) +![无向图的邻接表存储](./pictures/图/无向图的邻接表存储.png) -![有向图的邻接表存储](pictures/图/有向图的邻接表存储.png) +![有向图的邻接表存储](./pictures/图/有向图的邻接表存储.png) 大家可以数一数邻接表中所存储的元素的个数以及图中边的条数,你会发现: @@ -98,64 +98,64 @@ tag: ### 广度优先搜索 广度优先搜索就像水面上的波纹一样一层一层向外扩展,如下图所示: -![广度优先搜索图示](pictures/图/广度优先搜索图示.png) +![广度优先搜索图示](./pictures/图/广度优先搜索图示.png) **广度优先搜索的具体实现方式用到了之前所学过的线性数据结构——队列** 。具体过程如下图所示: **第1步:** -![广度优先搜索1](pictures/图/广度优先搜索1.png) +![广度优先搜索1](./pictures/图/广度优先搜索1.png) **第2步:** -![广度优先搜索2](pictures/图/广度优先搜索2.png) +![广度优先搜索2](./pictures/图/广度优先搜索2.png) **第3步:** -![广度优先搜索3](pictures/图/广度优先搜索3.png) +![广度优先搜索3](./pictures/图/广度优先搜索3.png) **第4步:** -![广度优先搜索4](pictures/图/广度优先搜索4.png) +![广度优先搜索4](./pictures/图/广度优先搜索4.png) **第5步:** -![广度优先搜索5](pictures/图/广度优先搜索5.png) +![广度优先搜索5](./pictures/图/广度优先搜索5.png) **第6步:** -![广度优先搜索6](pictures/图/广度优先搜索6.png) +![广度优先搜索6](./pictures/图/广度优先搜索6.png) ### 深度优先搜索 深度优先搜索就是“一条路走到黑”,从源顶点开始,一直走到没有后继节点,才回溯到上一顶点,然后继续“一条路走到黑”,如下图所示: -![深度优先搜索图示](pictures/图/深度优先搜索图示.png) +![深度优先搜索图示](./pictures/图/深度优先搜索图示.png) **和广度优先搜索类似,深度优先搜索的具体实现用到了另一种线性数据结构——栈** 。具体过程如下图所示: **第1步:** -![深度优先搜索1](pictures/图/深度优先搜索1.png) +![深度优先搜索1](./pictures/图/深度优先搜索1.png) **第2步:** -![深度优先搜索1](pictures/图/深度优先搜索2.png) +![深度优先搜索1](./pictures/图/深度优先搜索2.png) **第3步:** -![深度优先搜索1](pictures/图/深度优先搜索3.png) +![深度优先搜索1](./pictures/图/深度优先搜索3.png) **第4步:** -![深度优先搜索1](pictures/图/深度优先搜索4.png) +![深度优先搜索1](./pictures/图/深度优先搜索4.png) **第5步:** -![深度优先搜索1](pictures/图/深度优先搜索5.png) +![深度优先搜索1](./pictures/图/深度优先搜索5.png) **第6步:** -![深度优先搜索1](pictures/图/深度优先搜索6.png) +![深度优先搜索1](./pictures/图/深度优先搜索6.png) diff --git a/docs/cs-basics/data-structure/堆.md b/docs/cs-basics/data-structure/heap.md similarity index 88% rename from docs/cs-basics/data-structure/堆.md rename to docs/cs-basics/data-structure/heap.md index f86308fa..cd615dee 100644 --- a/docs/cs-basics/data-structure/堆.md +++ b/docs/cs-basics/data-structure/heap.md @@ -21,7 +21,7 @@ tag: 大家可以尝试判断下面给出的图是否是堆? -![](pictures/堆/堆1.png) +![](./pictures/堆/堆1.png) 第1个和第2个是堆。第1个是最大堆,每个节点都比子树中所有节点大。第2个是最小堆,每个节点都比子树中所有节点小。 @@ -42,7 +42,7 @@ tag: 如下图所示,图1是最大堆,图2是最小堆 -![](pictures/堆/堆2.png) +![](./pictures/堆/堆2.png) ## 堆的存储 @@ -50,7 +50,7 @@ tag: 为了方便存储和索引,(二叉)堆可以用完全二叉树的形式进行存储。存储的方式如下图所示: -![堆的存储](pictures/堆/堆的存储.png) +![堆的存储](./pictures/堆/堆的存储.png) ## 堆的操作 堆的更新操作主要包括两种 : **插入元素** 和 **删除堆顶元素**。操作过程需要着重掌握和理解。 @@ -60,15 +60,15 @@ tag: **1.将要插入的元素放到最后** -![堆-插入元素-1](pictures/堆/堆-插入元素1.png) +![堆-插入元素-1](./pictures/堆/堆-插入元素1.png) > 有能力的人会逐渐升职加薪,是金子总会发光的!!! **2.从底向上,如果父结点比该元素大,则该节点和父结点交换,直到无法交换** -![堆-插入元素2](pictures/堆/堆-插入元素2.png) +![堆-插入元素2](./pictures/堆/堆-插入元素2.png) -![堆-插入元素3](pictures/堆/堆-插入元素3.png) +![堆-插入元素3](./pictures/堆/堆-插入元素3.png) ### 删除堆顶元素 @@ -87,34 +87,34 @@ tag: -![删除堆顶元素1](pictures/堆/删除堆顶元素1.png) +![删除堆顶元素1](./pictures/堆/删除堆顶元素1.png) > 那么他的位置由谁来接替呢,当然是他的直接下属了,谁能力强就让谁上呗 比较根结点的左子节点和右子节点,也就是下标为2,3的数组元素,将较大的元素填充到根结点(下标为1)的位置。 -![删除堆顶元素2](pictures/堆/删除堆顶元素2.png) +![删除堆顶元素2](./pictures/堆/删除堆顶元素2.png) > 这个时候又空出一个位置了,老规矩,谁有能力谁上 一直循环比较空出位置的左右子节点,并将较大者移至空位,直到堆的最底部 -![删除堆顶元素3](pictures/堆/删除堆顶元素3.png) +![删除堆顶元素3](./pictures/堆/删除堆顶元素3.png) 这个时候已经完成了自底向上的堆化,没有元素可以填补空缺了,但是,我们可以看到数组中出现了“气泡”,这会导致存储空间的浪费。接下来我们试试自顶向下堆化。 #### 自顶向下堆化 自顶向下的堆化用一个词形容就是“石沉大海”,那么第一件事情,就是把石头抬起来,从海面扔下去。这个石头就是堆的最后一个元素,我们将最后一个元素移动到堆顶。 -![删除堆顶元素4](pictures/堆/删除堆顶元素4.png) +![删除堆顶元素4](./pictures/堆/删除堆顶元素4.png) 然后开始将这个石头沉入海底,不停与左右子节点的值进行比较,和较大的子节点交换位置,直到无法交换位置。 -![删除堆顶元素5](pictures/堆/删除堆顶元素5.png) +![删除堆顶元素5](./pictures/堆/删除堆顶元素5.png) -![删除堆顶元素6](pictures/堆/删除堆顶元素6.png) +![删除堆顶元素6](./pictures/堆/删除堆顶元素6.png) @@ -139,20 +139,20 @@ tag: 具体过程如下图: -![建堆1](pictures/堆/建堆1.png) +![建堆1](./pictures/堆/建堆1.png) 将初始的无序数组抽象为一棵树,图中的节点个数为6,所以4,5,6节点为叶节点,1,2,3节点为非叶节点,所以要对1-3号节点进行自顶向下(沉底)堆化,注意,顺序是从后往前堆化,从3号节点开始,一直到1号节点。 3号节点堆化结果: -![建堆1](pictures/堆/建堆2.png) +![建堆1](./pictures/堆/建堆2.png) 2号节点堆化结果: -![建堆1](pictures/堆/建堆3.png) +![建堆1](./pictures/堆/建堆3.png) 1号节点堆化结果: -![建堆1](pictures/堆/建堆4.png) +![建堆1](./pictures/堆/建堆4.png) 至此,数组所对应的树已经成为了一个最大堆,建堆完成! @@ -173,26 +173,26 @@ tag: 取出第一个元素并堆化: -![堆排序1](pictures/堆/堆排序1.png) +![堆排序1](./pictures/堆/堆排序1.png) 取出第二个元素并堆化: -![堆排序2](pictures/堆/堆排序2.png) +![堆排序2](./pictures/堆/堆排序2.png) 取出第三个元素并堆化: -![堆排序3](pictures/堆/堆排序3.png) +![堆排序3](./pictures/堆/堆排序3.png) 取出第四个元素并堆化: -![堆排序4](pictures/堆/堆排序4.png) +![堆排序4](./pictures/堆/堆排序4.png) 取出第五个元素并堆化: -![堆排序5](pictures/堆/堆排序5.png) +![堆排序5](./pictures/堆/堆排序5.png) 取出第六个元素并堆化: -![堆排序6](pictures/堆/堆排序6.png) +![堆排序6](./pictures/堆/堆排序6.png) 堆排序完成! diff --git a/docs/cs-basics/data-structure/线性数据结构.md b/docs/cs-basics/data-structure/linear-data-structure.md similarity index 100% rename from docs/cs-basics/data-structure/线性数据结构.md rename to docs/cs-basics/data-structure/linear-data-structure.md diff --git a/docs/cs-basics/data-structure/pictures/图/图.png b/docs/cs-basics/data-structure/pictures/图/图.png deleted file mode 100644 index edbffd0528a7049988d30847f197bd2c24524c7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6235 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://www.campaignmonitor.com/resources/knowledge-base/what-is-the-code-that-makes-bcc-or-cc-operate-in-an-email/

+

https://www.campaignmonitor.com/resources/knowledge-base/what-is-the-code-that-makes-bcc-or-cc-operate-in-an-email/

11. **搜索引擎** :搜索引擎(Search Engine)是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。搜索引擎包括全文索引、目录索引、元搜索引擎、垂直搜索引擎、集合式搜索引擎、门户搜索引擎与免费链接列表等。 diff --git a/docs/cs-basics/operating-system/linux-intro.md b/docs/cs-basics/operating-system/linux-intro.md index 723cd9b7..0a4f5aba 100644 --- a/docs/cs-basics/operating-system/linux-intro.md +++ b/docs/cs-basics/operating-system/linux-intro.md @@ -37,7 +37,7 @@ _如果文章有任何需要改善和完善的地方,欢迎在评论区指出 _玩玩电脑游戏还是必须要有 Windows 的,所以我现在是一台 Windows 用于玩游戏,一台 Mac 用于平时日常开发和学习使用。_ -![windows](images/windows.png) +![windows](./images/windows.png) #### 1.2.2. Unix @@ -45,7 +45,7 @@ _玩玩电脑游戏还是必须要有 Windows 的,所以我现在是一台 Win 目前这款操作系统已经逐渐逐渐退出操作系统的舞台。 -![unix](images/unix.png) +![unix](./images/unix.png) #### 1.2.3. Linux @@ -55,13 +55,13 @@ _玩玩电脑游戏还是必须要有 Windows 的,所以我现在是一台 Win > > **很多人更倾向使用 “GNU/Linux” 一词来表达人们通常所说的 “Linux”。** -![linux](images/linux.png) +![linux](./images/linux.png) #### 1.2.4. Mac OS 苹果自家的操作系统,编程体验和 Linux 相当,但是界面、软件生态以及用户体验各方面都要比 Linux 操作系统更好。 -![macos](images/macos.png) +![macos](./images/macos.png) ### 1.3. 操作系统的内核(Kernel) @@ -132,7 +132,7 @@ _玩玩电脑游戏还是必须要有 Windows 的,所以我现在是一台 Win - **Linux 本质是指 Linux 内核** : 严格来讲,Linux 这个词本身只表示 Linux 内核,单独的 Linux 内核并不能成为一个可以正常工作的操作系统。所以,就有了各种 Linux 发行版。 - **Linux 之父(林纳斯·本纳第克特·托瓦兹 Linus Benedict Torvalds)** : 一个编程领域的传奇式人物,真大佬!我辈崇拜敬仰之楷模。他是 **Linux 内核** 的最早作者,随后发起了这个开源项目,担任 Linux 内核的首要架构师。他还发起了 Git 这个开源项目,并为主要的开发者。 -![Linux](images/Linux之父.png) +![Linux](./images/Linux之父.png) ### 2.2. Linux 诞生 @@ -142,7 +142,7 @@ _玩玩电脑游戏还是必须要有 Windows 的,所以我现在是一台 Win 1991 年,Linus Torvalds 开源了 Linux 内核。Linux 以一只可爱的企鹅作为标志,象征着敢作敢为、热爱生活。 -![OPINION: Make the switch to a Linux operating system | Opinion ...](images/Linux-Logo.png) +![OPINION: Make the switch to a Linux operating system | Opinion ...](./images/Linux-Logo.png) ### 2.3. 常见 Linux 发行版本有哪些? @@ -182,7 +182,7 @@ Linux 的发行版本可以大体分为两类: - **inode** :记录文件的属性信息,可以使用 stat 命令查看 inode 信息。 - **block** :实际文件的内容,如果一个文件大于一个块时候,那么将占用多个 block,但是一个块只能存放一个文件。(因为数据是由 inode 指向的,如果有两个文件的数据存放在同一个块中,就会乱套了) -![文件inode信息](images/文件inode信息.png) +![文件inode信息](./images/文件inode信息.png) ### 3.3. Linux 文件类型 @@ -203,7 +203,7 @@ Linux 支持很多文件类型,其中非常重要的文件类型有: **普通 **Linux 的目录结构如下:** Linux 文件系统的结构层次鲜明,就像一棵倒立的树,最顶层是其根目录: -![Linux的目录结构](images/Linux目录树.png) +![Linux的目录结构](./images/Linux目录树.png) **常见目录说明:** @@ -287,11 +287,11 @@ Linux 中的打包文件一般是以.tar 结尾的,压缩的命令一般是以 示例:在随意某个目录下`ls -l` -![](images/Linux权限命令.png) +![](./images/Linux权限命令.png) 第一列的内容的信息解释如下: -![](images/Linux权限解读.png) +![](./images/Linux权限解读.png) > 下面将详细讲解文件的类型、Linux 中权限以及文件有所有者、所在组、其它组具体是什么? @@ -343,7 +343,7 @@ Linux 中的打包文件一般是以.tar 结尾的,压缩的命令一般是以 **`chmod u=rwx,g=rw,o=r aaa.txt`** 或者 **`chmod 764 aaa.txt`** -![](images/修改文件权限.png) +![](./images/修改文件权限.png) **补充一个比较常用的东西:** diff --git a/docs/cs-basics/operating-system/操作系统常见面试题&知识点总结.md b/docs/cs-basics/operating-system/operating-system-basic-questions-01.md similarity index 99% rename from docs/cs-basics/operating-system/操作系统常见面试题&知识点总结.md rename to docs/cs-basics/operating-system/operating-system-basic-questions-01.md index 98aaadf7..0945e300 100644 --- a/docs/cs-basics/operating-system/操作系统常见面试题&知识点总结.md +++ b/docs/cs-basics/operating-system/operating-system-basic-questions-01.md @@ -26,8 +26,6 @@ tag: 面试官顶着蓬松的假发向我走来,只见他一手拿着厚重的 Thinkpad ,一手提着他那淡黄的长裙。 - - ### 1.1 什么是操作系统? 👨‍💻**面试官** : 先来个简单问题吧!**什么是操作系统?** diff --git a/docs/database/数据库基础知识.md b/docs/database/basis.md similarity index 100% rename from docs/database/数据库基础知识.md rename to docs/database/basis.md diff --git a/docs/database/字符集.md b/docs/database/character-set.md similarity index 100% rename from docs/database/字符集.md rename to docs/database/character-set.md diff --git a/docs/database/mysql/mysql知识点&面试题总结.md b/docs/database/mysql/mysql-questions-01.md similarity index 100% rename from docs/database/mysql/mysql知识点&面试题总结.md rename to docs/database/mysql/mysql-questions-01.md diff --git a/docs/database/Redis/images/redis-all/缓存穿透情况.png b/docs/database/redis/images/redis-all/cache-process.png similarity index 100% rename from docs/database/Redis/images/redis-all/缓存穿透情况.png rename to docs/database/redis/images/redis-all/cache-process.png diff --git a/docs/database/redis/images/redis-all/缓存穿透情况.png b/docs/database/redis/images/redis-all/缓存穿透情况.png deleted file mode 100644 index 8c695fb3aa3906afb031476de4d0c1d13d1e6237..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6524 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《Redis设计与实现:12章》

@@ -428,7 +428,7 @@ Redis 通过**IO 多路复用程序** 来监听来自客户端的大量连接( 虽然说 Redis 是单线程模型,但是,实际上,**Redis 在 4.0 之后的版本中就已经加入了对多线程的支持。** -![redis4.0 more thread](images/redis-all/redis4.0-more-thread.png) +![redis4.0 more thread](./images/redis-all/redis4.0-more-thread.png) 不过,Redis 4.0 增加的多线程主要是针对一些大键值对的删除操作的命令,使用这些命令就会使用主处理之外的其他线程来“异步处理”。 @@ -494,7 +494,7 @@ OK Redis 通过一个叫做过期字典(可以看作是 hash 表)来保存数据过期的时间。过期字典的键指向 Redis 数据库中的某个 key(键),过期字典的值是一个 long long 类型的整数,这个整数保存了 key 所指向的数据库键的过期时间(毫秒精度的 UNIX 时间戳)。 -![redis过期字典](images/redis-all/redis过期时间.png) +![redis过期字典](./images/redis-all/redis过期时间.png) 过期字典是存储在 redisDb 这个结构里的: @@ -712,7 +712,7 @@ ERR EXEC without MULTI Redis 官网相关介绍 [https://redis.io/topics/transactions](https://redis.io/topics/transactions) 如下: -![redis事务](images/redis-all/redis事务.png) +![redis事务](./images/redis-all/redis事务.png) 但是,Redis 的事务和我们平时理解的关系型数据库的事务不同。我们知道事务具有四大特性: **1. 原子性**,**2. 隔离性**,**3. 持久性**,**4. 一致性**。 @@ -725,7 +725,7 @@ Redis 官网相关介绍 [https://redis.io/topics/transactions](https://redis.io Redis 官网也解释了自己为啥不支持回滚。简单来说就是 Redis 开发者们觉得没必要支持回滚,这样更简单便捷并且性能更好。Redis 开发者觉得即使命令执行错误也应该在开发过程中就被发现而不是生产过程中。 -![redis roll back](images/redis-all/redis-rollBack.png) +![redis roll back](./images/redis-all/redis-rollBack.png) 你可以将 Redis 中的事务就理解为 :**Redis 事务提供了一种将多个命令请求打包的功能。然后,再按顺序执行打包的所有命令,并且不会被中途打断。** @@ -758,7 +758,8 @@ Redis 5.0 新增加的一个数据结构 `Stream` 可以用来做消息队列, 如下图所示,用户的请求最终都要跑到数据库中查询一遍。 -![缓存穿透情况](./images/redis-all/缓存穿透情况.png) +![缓存穿透情况](https://img-blog.csdnimg.cn/6358650a9bf742838441d636430c90b9.png) + #### 有哪些解决办法? @@ -801,7 +802,7 @@ public Object getObjectInclNullById(Integer id) { 加入布隆过滤器之后的缓存处理流程图如下。 -![image](images/redis-all/加入布隆过滤器后的缓存处理流程.png) +![](./images/redis-all/加入布隆过滤器后的缓存处理流程.png) 但是,需要注意的是布隆过滤器可能会存在误判的情况。总结来说就是: **布隆过滤器说某个元素存在,小概率会误判。布隆过滤器说某个元素不在,那么这个元素一定不在。** diff --git a/docs/distributed-system/distributed-process-coordination/zookeeper/zookeeper-in-action.md b/docs/distributed-system/distributed-process-coordination/zookeeper/zookeeper-in-action.md index 71dad09a..bd150e11 100644 --- a/docs/distributed-system/distributed-process-coordination/zookeeper/zookeeper-in-action.md +++ b/docs/distributed-system/distributed-process-coordination/zookeeper/zookeeper-in-action.md @@ -36,7 +36,7 @@ root@eaf70fc620cb:/apache-zookeeper-3.5.8-bin# cd bin 如果你看到控制台成功打印出如下信息的话,说明你已经成功连接 ZooKeeper 服务。 -![](images/连接ZooKeeper服务.png) +![](./images/连接ZooKeeper服务.png) ### 2.3. 常用命令演示 @@ -162,7 +162,7 @@ numChildren = 1 Curator 是Netflix公司开源的一套 ZooKeeper Java客户端框架,相比于 Zookeeper 自带的客户端 zookeeper 来说,Curator 的封装更加完善,各种 API 都可以比较方便地使用。 -![](images/curator.png) +![](./images/curator.png) 下面我们就来简单地演示一下 Curator 的使用吧! diff --git a/docs/distributed-system/distributed-process-coordination/zookeeper/zookeeper-intro.md b/docs/distributed-system/distributed-process-coordination/zookeeper/zookeeper-intro.md index 31c96f0f..3a5e92cb 100644 --- a/docs/distributed-system/distributed-process-coordination/zookeeper/zookeeper-intro.md +++ b/docs/distributed-system/distributed-process-coordination/zookeeper/zookeeper-intro.md @@ -79,7 +79,7 @@ ZooKeeper 数据模型采用层次化的多叉树形结构,每个节点上都 从下图可以更直观地看出:ZooKeeper 节点路径标识方式和 Unix 文件系统路径非常相似,都是由一系列使用斜杠"/"进行分割的路径表示,开发人员可以向这个节点中写入数据,也可以在节点下面创建子节点。这些操作我们后面都会介绍到。 -![ZooKeeper 数据模型](images/znode-structure.png) +![ZooKeeper 数据模型](./images/znode-structure.png) ### 3.2. znode(数据节点) @@ -172,7 +172,7 @@ ZooKeeper 采用 ACL(AccessControlLists)策略来进行权限控制,类似 Watcher(事件监听器),是 ZooKeeper 中的一个很重要的特性。ZooKeeper 允许用户在指定节点上注册一些 Watcher,并且在一些特定事件触发的时候,ZooKeeper 服务端会将事件通知到感兴趣的客户端上去,该机制是 ZooKeeper 实现分布式协调服务的重要特性。 -![watcher机制](images/watche机制.png) +![watcher机制](./images/watche机制.png) _破音:非常有用的一个特性,都拿出小本本记好了,后面用到 ZooKeeper 基本离不开 Watcher(事件监听器)机制。_ @@ -188,7 +188,7 @@ Session 有一个属性叫做:`sessionTimeout` ,`sessionTimeout` 代表会 为了保证高可用,最好是以集群形态来部署 ZooKeeper,这样只要集群中大部分机器是可用的(能够容忍一定的机器故障),那么 ZooKeeper 本身仍然是可用的。通常 3 台服务器就可以构成一个 ZooKeeper 集群了。ZooKeeper 官方提供的架构图就是一个 ZooKeeper 集群整体对外提供服务。 -![](images/zookeeper集群.png) +![](./images/zookeeper集群.png) 上图中每一个 Server 代表一个安装 ZooKeeper 服务的服务器。组成 ZooKeeper 服务的服务器都会在内存中维护当前的服务器状态,并且每台服务器之间都互相保持着通信。集群间通过 ZAB 协议(ZooKeeper Atomic Broadcast)来保持数据的一致性。 @@ -198,7 +198,7 @@ Session 有一个属性叫做:`sessionTimeout` ,`sessionTimeout` 代表会 但是,在 ZooKeeper 中没有选择传统的 Master/Slave 概念,而是引入了 Leader、Follower 和 Observer 三种角色。如下图所示 -![](images/zookeeper集群中的角色.png) +![](./images/zookeeper集群中的角色.png) ZooKeeper 集群中的所有机器通过一个 **Leader 选举过程** 来选定一台称为 “**Leader**” 的机器,Leader 既可以为客户端提供写服务又能提供读服务。除了 Leader 外,**Follower** 和 **Observer** 都只能提供读服务。Follower 和 Observer 唯一的区别在于 Observer 机器不参与 Leader 的选举过程,也不参与写操作的“过半写成功”策略,因此 Observer 机器可以在不影响写性能的情况下提升集群的读性能。 diff --git a/docs/high-availability/集群.md b/docs/high-availability/cluster.md similarity index 100% rename from docs/high-availability/集群.md rename to docs/high-availability/cluster.md diff --git a/docs/high-availability/灾备设计和异地多活.md b/docs/high-availability/disaster-recovery&remote-live.md similarity index 95% rename from docs/high-availability/灾备设计和异地多活.md rename to docs/high-availability/disaster-recovery&remote-live.md index f8dfc12f..0b8f87af 100644 --- a/docs/high-availability/灾备设计和异地多活.md +++ b/docs/high-availability/disaster-recovery&remote-live.md @@ -11,4 +11,4 @@ - [搞懂异地多活,看这篇就够了](https://mp.weixin.qq.com/s/T6mMDdtTfBuIiEowCpqu6Q) - [四步构建异地多活](https://mp.weixin.qq.com/s/hMD-IS__4JE5_nQhYPYSTg) -- [《从零开始学架构》— 28 | 业务高可用的保障:异地多活架构](http://gk.link/a/10pKZ) \ No newline at end of file +- [《从零开始学架构》— 28 | 业务高可用的保障:异地多活架构](http://gk.link/a/10pKZ) diff --git a/docs/high-availability/降级&熔断.md b/docs/high-availability/fallback&circuit-breaker.md similarity index 100% rename from docs/high-availability/降级&熔断.md rename to docs/high-availability/fallback&circuit-breaker.md diff --git a/docs/high-availability/高可用系统设计.md b/docs/high-availability/high-availability-system-design.md similarity index 100% rename from docs/high-availability/高可用系统设计.md rename to docs/high-availability/high-availability-system-design.md diff --git a/docs/high-availability/性能测试.md b/docs/high-availability/performance-test.md similarity index 100% rename from docs/high-availability/性能测试.md rename to docs/high-availability/performance-test.md diff --git a/docs/high-availability/超时和重试机制.md b/docs/high-availability/timeout-and-retry.md similarity index 79% rename from docs/high-availability/超时和重试机制.md rename to docs/high-availability/timeout-and-retry.md index 64f03f75..9bddb0d1 100644 --- a/docs/high-availability/超时和重试机制.md +++ b/docs/high-availability/timeout-and-retry.md @@ -1,4 +1,7 @@ -# 超时&重试机制 +--- +title: 超时&重试机制 +category: 高可用 +--- **一旦用户的请求超过某个时间得不到响应就结束此次请求并抛出异常。** 如果不进行超时设置可能会导致请求响应速度慢,甚至导致请求堆积进而让系统无法在处理请求。 diff --git a/docs/high-performance/负载均衡.md b/docs/high-performance/load-balancing.md similarity index 100% rename from docs/high-performance/负载均衡.md rename to docs/high-performance/load-balancing.md diff --git a/docs/high-performance/message-queue/kafka知识点&面试题总结.md b/docs/high-performance/message-queue/kafka-questions-01.md similarity index 100% rename from docs/high-performance/message-queue/kafka知识点&面试题总结.md rename to docs/high-performance/message-queue/kafka-questions-01.md diff --git a/docs/high-performance/message-queue/rocketmq-intro.md b/docs/high-performance/message-queue/rocketmq-intro.md index 4f0fb3a6..d4eafba4 100644 --- a/docs/high-performance/message-queue/rocketmq-intro.md +++ b/docs/high-performance/message-queue/rocketmq-intro.md @@ -427,7 +427,7 @@ emmm,是不是有一点复杂🤣,看英文图片和英文文档的时候就 首先,在最上面的那一块就是我刚刚讲的你现在可以直接 **把 `ConsumerQueue` 理解为 `Queue`**。 -在图中最左边说明了 红色方块 代表被写入的消息,虚线方块代表等待被写入的。左边的生产者发送消息会指定 `Topic` 、`QueueId` 和具体消息内容,而在 `Broker` 中管你是哪门子消息,他直接 **全部顺序存储到了 CommitLog**。而根据生产者指定的 `Topic` 和 `QueueId` 将这条消息本身在 `CommitLog` 的偏移(offset),消息本身大小,和tag的hash值存入对应的 `ConsumeQueue` 索引文件中。而在每个队列中都保存了 `ConsumeOffset` 即每个消费者组的消费位置(我在架构那里提到了,忘了的同学可以回去看一下),而消费者拉取消息进行消费的时候只需要根据 `ConsumeOffset` 获取下一个未被消费的消息就行了。 +在图中最左边说明了红色方块代表被写入的消息,虚线方块代表等待被写入的。左边的生产者发送消息会指定 `Topic` 、`QueueId` 和具体消息内容,而在 `Broker` 中管你是哪门子消息,他直接 **全部顺序存储到了 CommitLog**。而根据生产者指定的 `Topic` 和 `QueueId` 将这条消息本身在 `CommitLog` 的偏移(offset),消息本身大小,和tag的hash值存入对应的 `ConsumeQueue` 索引文件中。而在每个队列中都保存了 `ConsumeOffset` 即每个消费者组的消费位置(我在架构那里提到了,忘了的同学可以回去看一下),而消费者拉取消息进行消费的时候只需要根据 `ConsumeOffset` 获取下一个未被消费的消息就行了。 上述就是我对于整个消息存储架构的大概理解(这里不涉及到一些细节讨论,比如稀疏索引等等问题),希望对你有帮助。 diff --git a/docs/high-performance/读写分离&分库分表.md b/docs/high-performance/read-and-write-separation-and-library-subtable.md similarity index 100% rename from docs/high-performance/读写分离&分库分表.md rename to docs/high-performance/read-and-write-separation-and-library-subtable.md diff --git a/docs/home.md b/docs/home.md index d9cd1ae8..08b16375 100644 --- a/docs/home.md +++ b/docs/home.md @@ -3,7 +3,7 @@ icon: creative title: JavaGuide(Java学习&&面试指南) --- -
+

diff --git a/docs/idea-tutorial/idea-plugins/rest-devlop.md b/docs/idea-tutorial/idea-plugins/rest-devlop.md index 329552b3..8eb64a22 100644 --- a/docs/idea-tutorial/idea-plugins/rest-devlop.md +++ b/docs/idea-tutorial/idea-plugins/rest-devlop.md @@ -67,7 +67,7 @@ REST 即 **REpresentational State Transfer** 的缩写。这个词组的翻译 举个例子。我们选中 `Controller` 中的某个请求对应的方法右击,你会发现多了几个可选项。当你选择`Generate & Copy Full URL`的话,就可以把整个请求的路径直接复制下来。eg:`http://localhost:9333/api/users?pageNum=1&pageSize=1` 。 -![](pictures/RestfulToolkit3.png) +![](./pictures/RestfulToolkit3.png) #### 将 Java 类转换为对应的 JSON 格式 @@ -75,7 +75,7 @@ REST 即 **REpresentational State Transfer** 的缩写。这个词组的翻译 我们选中的某个类对应的方法然后右击,你会发现多了几个可选项。 -![](pictures/RestfulToolkit4.png) +![](./pictures/RestfulToolkit4.png) 当我们选择`Convert to JSON`的话,你会得到如下 json 类型的数据: diff --git a/docs/java/collection/java集合使用注意事项.md b/docs/java/collection/java-collection-precautions-for-use.md similarity index 100% rename from docs/java/collection/java集合使用注意事项.md rename to docs/java/collection/java-collection-precautions-for-use.md diff --git a/docs/java/collection/java-collection-questions-02.md b/docs/java/collection/java-collection-questions-02.md index cbff98a6..08fcc1a9 100644 --- a/docs/java/collection/java-collection-questions-02.md +++ b/docs/java/collection/java-collection-questions-02.md @@ -213,13 +213,13 @@ static int hash(int h) { 所谓 **“拉链法”** 就是:将链表和数组相结合。也就是说创建一个链表数组,数组中每一格就是一个链表。若遇到哈希冲突,则将冲突的值加到链表中即可。 -![jdk1.8之前的内部结构-HashMap](images/jdk1.8之前的内部结构-HashMap.png) +![jdk1.8之前的内部结构-HashMap](./images/jdk1.8之前的内部结构-HashMap.png) #### JDK1.8 之后 相比于之前的版本, JDK1.8 之后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)(将链表转换成红黑树前会判断,如果当前数组的长度小于 64,那么会选择先进行数组扩容,而不是转换为红黑树)时,将链表转化为红黑树,以减少搜索时间。 -![jdk1.8之后的内部结构-HashMap](images/jdk1.8之后的内部结构-HashMap.png) +![jdk1.8之后的内部结构-HashMap](./images/jdk1.8之后的内部结构-HashMap.png) > TreeMap、TreeSet 以及 JDK1.8 之后的 HashMap 底层都用到了红黑树。红黑树就是为了解决二叉查找树的缺陷,因为二叉查找树在某些情况下会退化成一个线性结构。 diff --git a/docs/java/concurrent/java-concurrent-questions-02.md b/docs/java/concurrent/java-concurrent-questions-02.md index 8691bf61..ebfdbc5e 100644 --- a/docs/java/concurrent/java-concurrent-questions-02.md +++ b/docs/java/concurrent/java-concurrent-questions-02.md @@ -393,11 +393,11 @@ ThreadLocalMap(ThreadLocal firstKey, Object firstValue) { 比如我们在同一个线程中声明了两个 `ThreadLocal` 对象的话, `Thread`内部都是使用仅有的那个`ThreadLocalMap` 存放数据的,`ThreadLocalMap`的 key 就是 `ThreadLocal`对象,value 就是 `ThreadLocal` 对象调用`set`方法设置的值。 -![ThreadLocal数据结构](images/threadlocal数据结构.png) +![ThreadLocal数据结构](./images/threadlocal数据结构.png) `ThreadLocalMap`是`ThreadLocal`的静态内部类。 -![ThreadLocal内部类](images/ThreadLocal内部类.png) +![ThreadLocal内部类](./images/ThreadLocal内部类.png) ### 3.4. ThreadLocal 内存泄露问题 @@ -761,7 +761,7 @@ public void execute(Runnable command) { 通过下图可以更好的对上面这 3 步做一个展示,下图是我为了省事直接从网上找到,原地址不明。 -![图解线程池实现原理](images/java-thread-pool-summary/图解线程池实现原理.png) +![图解线程池实现原理](./images/java-thread-pool-summary/图解线程池实现原理.png) 现在,让我们在回到 4.6 节我们写的 Demo, 现在是不是很容易就可以搞懂它的原理了呢? diff --git a/docs/java/concurrent/java-thread-pool-summary.md b/docs/java/concurrent/java-thread-pool-summary.md index 98cf63f9..7ec85fe6 100644 --- a/docs/java/concurrent/java-thread-pool-summary.md +++ b/docs/java/concurrent/java-thread-pool-summary.md @@ -59,7 +59,7 @@ public class ScheduledThreadPoolExecutor implements ScheduledExecutorService ``` -![任务的执行相关接口](images/java-thread-pool-summary/任务的执行相关接口.png) +![任务的执行相关接口](./images/java-thread-pool-summary/任务的执行相关接口.png) #### 3) 异步计算的结果(`Future`) @@ -69,7 +69,7 @@ public class ScheduledThreadPoolExecutor ### 2.3 Executor 框架的使用示意图 -![Executor 框架的使用示意图](images/java-thread-pool-summary/Executor框架的使用示意图.png) +![Executor 框架的使用示意图](./images/java-thread-pool-summary/Executor框架的使用示意图.png) 1. **主线程首先要创建实现 `Runnable` 或者 `Callable` 接口的任务对象。** 2. **把创建完成的实现 `Runnable`/`Callable`接口的 对象直接交给 `ExecutorService` 执行**: `ExecutorService.execute(Runnable command)`)或者也可以把 `Runnable` 对象或`Callable` 对象提交给 `ExecutorService` 执行(`ExecutorService.submit(Runnable task)`或 `ExecutorService.submit(Callable task)`)。 @@ -129,7 +129,7 @@ public class ScheduledThreadPoolExecutor 下面这张图可以加深你对线程池中各个参数的相互关系的理解(图片来源:《Java 性能调优实战》): -![线程池各个参数的关系](images/java-thread-pool-summary/线程池各个参数之间的关系.png) +![线程池各个参数的关系](./images/java-thread-pool-summary/线程池各个参数之间的关系.png) **`ThreadPoolExecutor` 饱和策略定义:** @@ -160,7 +160,7 @@ public class ScheduledThreadPoolExecutor > - **`CachedThreadPool` 和 `ScheduledThreadPool`** : 允许创建的线程数量为 `Integer.MAX_VALUE` ,可能会创建大量线程,从而导致 OOM。 **方式一:通过`ThreadPoolExecutor`构造函数实现(推荐)** -![通过构造方法实现](images/java-thread-pool-summary/threadpoolexecutor构造函数.png) +![通过构造方法实现](./images/java-thread-pool-summary/threadpoolexecutor构造函数.png) **方式二:通过 `Executor` 框架的工具类 `Executors` 来实现** 我们可以创建三种类型的 `ThreadPoolExecutor`: @@ -171,7 +171,7 @@ public class ScheduledThreadPoolExecutor 对应 Executors 工具类中的方法如图所示: -![通过Executor 框架的工具类Executors来实现](images/java-thread-pool-summary/Executors工具类.png) +![通过Executor 框架的工具类Executors来实现](./images/java-thread-pool-summary/Executors工具类.png) ## 四 ThreadPoolExecutor 使用+原理分析 @@ -693,7 +693,7 @@ Wed Nov 13 13:40:43 CST 2019::pool-1-thread-5 `FixedThreadPool` 的 `execute()` 方法运行示意图(该图片来源:《Java 并发编程的艺术》): -![FixedThreadPool的execute()方法运行示意图](images/java-thread-pool-summary/FixedThreadPool.png) +![FixedThreadPool的execute()方法运行示意图](./images/java-thread-pool-summary/FixedThreadPool.png) **上图说明:** @@ -743,7 +743,7 @@ Wed Nov 13 13:40:43 CST 2019::pool-1-thread-5 #### 5.2.2 执行任务过程介绍 `SingleThreadExecutor` 的运行示意图(该图片来源:《Java 并发编程的艺术》): -![SingleThreadExecutor的运行示意图](images/java-thread-pool-summary/SingleThreadExecutor.png) +![SingleThreadExecutor的运行示意图](./images/java-thread-pool-summary/SingleThreadExecutor.png) **上图说明** : @@ -787,7 +787,7 @@ Wed Nov 13 13:40:43 CST 2019::pool-1-thread-5 #### 5.3.2 执行任务过程介绍 `CachedThreadPool` 的 `execute()` 方法的执行示意图(该图片来源:《Java 并发编程的艺术》): -![CachedThreadPool的execute()方法的执行示意图](images/java-thread-pool-summary/CachedThreadPool-execute.png) +![CachedThreadPool的execute()方法的执行示意图](./images/java-thread-pool-summary/CachedThreadPool-execute.png) **上图说明:** @@ -818,7 +818,7 @@ Wed Nov 13 13:40:43 CST 2019::pool-1-thread-5 ### 6.2 运行机制 -![ScheduledThreadPoolExecutor运行机制](images/java-thread-pool-summary/ScheduledThreadPoolExecutor机制.png) +![ScheduledThreadPoolExecutor运行机制](./images/java-thread-pool-summary/ScheduledThreadPoolExecutor机制.png) **`ScheduledThreadPoolExecutor` 的执行主要分为两大部分:** @@ -833,7 +833,7 @@ Wed Nov 13 13:40:43 CST 2019::pool-1-thread-5 ### 6.3 ScheduledThreadPoolExecutor 执行周期任务的步骤 -![ScheduledThreadPoolExecutor执行周期任务的步骤](images/java-thread-pool-summary/ScheduledThreadPoolExecutor执行周期任务步骤.png) +![ScheduledThreadPoolExecutor执行周期任务的步骤](./images/java-thread-pool-summary/ScheduledThreadPoolExecutor执行周期任务步骤.png) 1. 线程 1 从 `DelayQueue` 中获取已到期的 `ScheduledFutureTask(DelayQueue.take())`。到期任务是指 `ScheduledFutureTask`的 time 大于等于当前系统的时间; 2. 线程 1 执行这个 `ScheduledFutureTask`; diff --git a/docs/java/tips/jad.md b/docs/java/tips/jad.md deleted file mode 100644 index 47d25a4e..00000000 --- a/docs/java/tips/jad.md +++ /dev/null @@ -1,371 +0,0 @@ -# JAD 反编译 - -[jad](https://varaneckas.com/jad/)反编译工具,已经不再更新,且只支持 JDK1.4,但并不影响其强大的功能。 - -基本用法:`jad xxx.class`,会生成直接可读的 `xxx.jad` 文件。 - -## 自动拆装箱 - -对于基本类型和包装类型之间的转换,通过 xxxValue()和 valueOf()两个方法完成自动拆装箱,使用 jad 进行反编译可以看到该过程: - -```java -public class Demo { - public static void main(String[] args) { - int x = new Integer(10); // 自动拆箱 - Integer y = x; // 自动装箱 - } -} -``` - -反编译后结果: - -```java -public class Demo -{ - public Demo(){} - - public static void main(String args[]) - { - int i = (new Integer(10)).intValue(); // intValue()拆箱 - Integer integer = Integer.valueOf(i); // valueOf()装箱 - } -} -``` - -## foreach 语法糖 - -在遍历迭代时可以 foreach 语法糖,对于数组类型直接转换成 for 循环: - -```java -// 原始代码 -int[] arr = {1, 2, 3, 4, 5}; - for(int item: arr) { - System.out.println(item); - } -} - -// 反编译后代码 -int ai[] = { - 1, 2, 3, 4, 5 -}; -int ai1[] = ai; -int i = ai1.length; -// 转换成for循环 -for(int j = 0; j < i; j++) -{ - int k = ai1[j]; - System.out.println(k); -} -``` - -对于容器类的遍历会使用 iterator 进行迭代: - -```java -import java.io.PrintStream; -import java.util.*; - -public class Demo -{ - public Demo() {} - public static void main(String args[]) - { - ArrayList arraylist = new ArrayList(); - arraylist.add(Integer.valueOf(1)); - arraylist.add(Integer.valueOf(2)); - arraylist.add(Integer.valueOf(3)); - Integer integer; - // 使用的for循环+Iterator,类似于链表迭代: - // for (ListNode cur = head; cur != null; System.out.println(cur.val)){ - // cur = cur.next; - // } - for(Iterator iterator = arraylist.iterator(); iterator.hasNext(); System.out.println(integer)) - integer = (Integer)iterator.next(); - } -} -``` - -## Arrays.asList(T...) - -熟悉 Arrays.asList(T...)用法的小伙伴都应该知道,asList()方法传入的参数不能是基本类型的数组,必须包装成包装类型再使用,否则对应生成的列表的大小永远是 1: - -```java -import java.util.*; -public class Demo { - public static void main(String[] args) { - int[] arr1 = {1, 2, 3}; - Integer[] arr2 = {1, 2, 3}; - List lists1 = Arrays.asList(arr1); - List lists2 = Arrays.asList(arr2); - System.out.println(lists1.size()); // 1 - System.out.println(lists2.size()); // 3 - } -} -``` - -从反编译结果来解释,为什么传入基本类型的数组后,返回的 List 大小是 1: - -```java -// 反编译后文件 -import java.io.PrintStream; -import java.util.Arrays; -import java.util.List; - -public class Demo -{ - public Demo() {} - - public static void main(String args[]) - { - int ai[] = { - 1, 2, 3 - }; - // 使用包装类型,全部元素由int包装为Integer - Integer ainteger[] = { - Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(3) - }; - - // 注意这里被反编译成二维数组,而且是一个1行三列的二维数组 - // list.size()当然返回1 - List list = Arrays.asList(new int[][] { ai }); - List list1 = Arrays.asList(ainteger); - System.out.println(list.size()); - System.out.println(list1.size()); - } -} -``` - -从上面结果可以看到,传入基本类型的数组后,会被转换成一个二维数组,而且是**new int\[1]\[arr.length]**这样的数组,调用 list.size()当然返回 1。 - -## 注解 - -Java 中的类、接口、枚举、注解都可以看做是类类型。使用 jad 来看一下@interface 被转换成什么: - -```java -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -@Retention(RetentionPolicy.RUNTIME) -public @interface Foo{ - String[] value(); - boolean bar(); -} -``` - -查看反编译代码可以看出: - -- 自定义的注解类 Foo 被转换成接口 Foo,并且继承 Annotation 接口 -- 原来自定义接口中的 value()和 bar()被转换成抽象方法 - -```java -import java.lang.annotation.Annotation; - -public interface Foo - extends Annotation -{ - public abstract String[] value(); - - public abstract boolean bar(); -} -``` - -注解通常和反射配合使用,而且既然自定义的注解最终被转换成接口,注解中的属性被转换成接口中的抽象方法,那么通过反射之后拿到接口实例,在通过接口实例自然能够调用对应的抽象方法: - -```java -import java.util.Arrays; - -@Foo(value={"sherman", "decompiler"}, bar=true) -public class Demo{ - public static void main(String[] args) { - Foo foo = Demo.class.getAnnotation(Foo.class); - System.out.println(Arrays.toString(foo.value())); // [sherman, decompiler] - System.out.println(foo.bar()); // true - } -} -``` - -## 枚举 - -通过 jad 反编译可以很好地理解枚举类。 - -### 空枚举 - -先定义一个空的枚举类: - -```java -public enum DummyEnum { -} -``` - -使用 jad 反编译查看结果: - -- 自定义枚举类被转换成 final 类,并且继承 Enum -- 提供了两个参数(name,odinal)的私有构造器,并且调用了父类的构造器。注意即使没有提供任何参数,也会有该构造器,其中 name 就是枚举实例的名称,odinal 是枚举实例的索引号 -- 初始化了一个 private static final 自定义类型的空数组 **\$VALUES** -- 提供了两个 public static 方法: - - values()方法通过 clone()方法返回内部\$VALUES 的浅拷贝。这个方法结合私有构造器可以完美实现单例模式,想一想 values()方法是不是和单例模式中 getInstance()方法功能类似 - - valueOf(String s):调用父类 Enum 的 valueOf 方法并强转返回 - -```java -public final class DummyEnum extends Enum -{ - // 功能和单例模式的getInstance()方法相同 - public static DummyEnum[] values() - { - return (DummyEnum[])$VALUES.clone(); - } - // 调用父类的valueOf方法,并强转返回 - public static DummyEnum valueOf(String s) - { - return (DummyEnum)Enum.valueOf(DummyEnum, s); - } - // 默认提供一个私有的两个参数的构造器,并调用父类Enum的构造器 - private DummyEnum(String s, int i) - { - super(s, i); - } - // 初始化一个private static final的本类空数组 - private static final DummyEnum $VALUES[] = new DummyEnum[0]; - -} - -``` - -### 包含抽象方法的枚举 - -枚举类中也可以包含抽象方法,但是必须定义枚举实例并且立即重写抽象方法,就像下面这样: - -```java -public enum DummyEnum { - DUMMY1 { - public void dummyMethod() { - System.out.println("[1]: implements abstract method in enum class"); - } - }, - - DUMMY2 { - public void dummyMethod() { - System.out.println("[2]: implements abstract method in enum class"); - } - }; - - abstract void dummyMethod(); - -} -``` - -再来反编译看看有哪些变化: - -- 原来 final class 变成了 abstract class:这很好理解,有抽象方法的类自然是抽象类 -- 多了两个 public static final 的成员 DUMMY1、DUMMY2,这两个实例的初始化过程被放到了 static 代码块中,并且实例过程中直接重写了抽象方法,类似于匿名内部类的形式。 -- 数组 **\$VALUES[]** 初始化时放入枚举实例 - -还有其它变化么? - -在反编译后的 DummyEnum 类中,是存在抽象方法的,而枚举实例在静态代码块中初始化过程中重写了抽象方法。在 Java 中,抽象方法和抽象方法重写同时放在一个类中,只能通过内部类形式完成。因此上面第二点应该说成就是以内部类形式初始化。 - -可以看一下 DummyEnum.class 存放的位置,应该多了两个文件: - -- DummyEnum\$1.class -- DummyEnum\$2.class - -Java 中.class 文件出现 $ 符号表示有内部类存在,就像OutClass$InnerClass,这两个文件出现也应证了上面的匿名内部类初始化的说法。 - -```java -import java.io.PrintStream; - -public abstract class DummyEnum extends Enum -{ - public static DummyEnum[] values() - { - return (DummyEnum[])$VALUES.clone(); - } - - public static DummyEnum valueOf(String s) - { - return (DummyEnum)Enum.valueOf(DummyEnum, s); - } - - private DummyEnum(String s, int i) - { - super(s, i); - } - - // 抽象方法 - abstract void dummyMethod(); - - // 两个pubic static final实例 - public static final DummyEnum DUMMY1; - public static final DummyEnum DUMMY2; - private static final DummyEnum $VALUES[]; - - // static代码块进行初始化 - static - { - DUMMY1 = new DummyEnum("DUMMY1", 0) { - public void dummyMethod() - { - System.out.println("[1]: implements abstract method in enum class"); - } - } -; - DUMMY2 = new DummyEnum("DUMMY2", 1) { - public void dummyMethod() - { - System.out.println("[2]: implements abstract method in enum class"); - } - } -; - // 对本类数组进行初始化 - $VALUES = (new DummyEnum[] { - DUMMY1, DUMMY2 - }); - } -} -``` - -### 正常的枚举类 - -实际开发中,枚举类通常的形式是有两个参数(int code,Sring msg)的构造器,可以作为状态码进行返回。Enum 类实际上也是提供了包含两个参数且是 protected 的构造器,这里为了避免歧义,将枚举类的构造器设置为三个,使用 jad 反编译: - -最大的变化是:现在的 private 构造器从 2 个参数变成 5 个,而且在内部仍然将前两个参数通过 super 传递给父类,剩余的三个参数才是真正自己提供的参数。可以想象,如果自定义的枚举类只提供了一个参数,最终生成底层代码中 private 构造器应该有三个参数,前两个依然通过 super 传递给父类。 - -```java -public final class CustomEnum extends Enum -{ - public static CustomEnum[] values() - { - return (CustomEnum[])$VALUES.clone(); - } - - public static CustomEnum valueOf(String s) - { - return (CustomEnum)Enum.valueOf(CustomEnum, s); - } - - private CustomEnum(String s, int i, int j, String s1, Object obj) - { - super(s, i); - code = j; - msg = s1; - data = obj; - } - - public static final CustomEnum FIRST; - public static final CustomEnum SECOND; - public static final CustomEnum THIRD; - private int code; - private String msg; - private Object data; - private static final CustomEnum $VALUES[]; - - static - { - FIRST = new CustomEnum("FIRST", 0, 10010, "first", Long.valueOf(100L)); - SECOND = new CustomEnum("SECOND", 1, 10020, "second", "Foo"); - THIRD = new CustomEnum("THIRD", 2, 10030, "third", new Object()); - $VALUES = (new CustomEnum[] { - FIRST, SECOND, THIRD - }); - } -} -``` diff --git a/docs/java/tips/locate-performance-problems/images/0605fbf554814a23b80f6351408598be-1.png b/docs/java/tips/locate-performance-problems/images/0605fbf554814a23b80f6351408598be-1.png deleted file mode 100644 index 53744d01b73f5e41cd3d6ea0093cebb494ab23e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34826 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%0A-F|G=o< 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 ajRrH_DIAjUnE%@4{xkUoc%S}r<^KTXjK@0w diff --git a/docs/java/tips/locate-performance-problems/images/1fb751b0d78b4a3b8d0f528598ae885d-1.png b/docs/java/tips/locate-performance-problems/images/1fb751b0d78b4a3b8d0f528598ae885d-1.png deleted file mode 100644 index f93e965cc3ba68383fdb056d75b6f6ec39579698..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11026 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 diff --git a/docs/java/tips/locate-performance-problems/images/392e4090c0094657ae29af030d3646e3-1.png b/docs/java/tips/locate-performance-problems/images/392e4090c0094657ae29af030d3646e3-1.png deleted file mode 100644 index d7e8c2094b683c172fe868a3d69e9b0479d866aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17374 zcmc(`WpG@*(l9t?W{zWKrkI(TnVH#+nVFfHam>ti%xuTZF*C#%Cx+}K_dfT&wfog> z?S4PDN7ZUlOVdXhX-cPmul?Qypvp){O8~&Y001!12k?6n5DI|*3kZma2q>t?s3_Q& z7#Nt?q_`hIA5u1A3Sv-UW8kExq32{!7UJR(QZ`VOQ8aKiH+N2mOz7@@0sG%|@Ouz| z1`DX>u=Uzb1WgWQs zU2YBhV+DZl7W~HN`^LZVFNx;^005I9e4Ou94{x91O_gU@A^NSLp17UdAn@O9Ao3ko zx%;J$aejUCsdMSJn8xCGL|~Bax+wkm!=?QnEAS%W^nsX$(a)zgVpj^@C@z#gb(&V} zSQ>iacmM4ORG|f^2>pk_+d@ zxX@`tDd4f&I5qa5{~I9mk4@=v>!q^chvaU#$Ex3eNE+?P(^tHAp7Pbge=IzQG64Y4 zH~qf?Oqj{UZFINQP;0~mQ{jK~xOCXpG>t&jg0wRKs48trzyD|eXolVfQm=`P`kvGnzCQ}moIL{ht`zflWW5~b4EWRl;M2Mkhui^(eTjK zElv7+;QmSL?A&-+#m(+tb1ypsZb~e9Xp;RTx5*kTG{MaRP(ySSHs?HGmw75@{E*261 zRI!}^szb4R9%T=F=IsD2*JNJzBWO~^!gsqfsgK=S<%e_}u)UaDg6hZoVgSI09afZZl+^}YHXi~~Mw5`zMK z0*&JAYx4Z_egJ??R0x2Cp>dDfsC%c0M*6D#EputBUV6gzXA&B(P6uev(U73k(S`yt zL!okyyAIH5()aRDhM&`2&u_ZVs2i4olE}Poo zJvSXGa@tUR%5rY2oM9ILK=Kp;iZrM`|1^D`jOiwNjrUL;0019bKAOMaV zM8(Db%%7XPNGA;WnNeaMo+dgYdhLb;Y7ammc@zS09)ZSIhIP0zA}Hy;C$*fr7`JKq zyweHN0|>=W10mMszX|`XF?#vr}DoG;I9N`wk{k6Vmt4uUg$6X2SH2=oQ=*} z{Q4^ZJE@2Gvpm7#DMhVuNN`v*w&Py1M`E_QX9_`LB9=QI?bgqICx48=if)e#a}0km zz~iW>d_}b{EN~8}yzJI;_F#wRgU*ssO zaOjlwv>?OjDSNlo4*Zq>PXqzl3-Lg^9cU~3pJFg@2uP^E8zDF9xN54hLIS|_0lL>0!sl6lA}dTqcu!Ld3W#I= zN)ajW1OJCQ02CW`Q~)?QI4B%25D<{y5FjlCBp4JpGyn|~9YY8P6$_h~#E6+iiIrWL zl#f@G02Ay`RlexbL*%uJmKll_&zpjCo$)on809P6i<+%5-T)E&r0^ z)!1wp1XVvb3iAH{LXDl9`2Sm-|F0Z0b~YROcIu+I>UG6zBx*_W4BvUXj$q8pnOSOU zlY!UHzSlzEA1zO+(a6S)wVYIZ94D|eMIO`7(emjU`+1_3@GZ}Ts-n9_k^_I&*4pT{ znjy?hqog=1@|A4E<2OJ%-iPPK`rLIx|DaMts`~5#3%#PE$4%DHAZki-T^4_&2_XikgO1 z4%b?p8Qo;x>pJhM%V%b=3&!3``D3+i)AQ3OiX_6uQe=-xjw!L0O_QVAa|U~A^yRA| zU59!-v6=JFh%}NoXT|%-d9gPSL5QC^2Lz#a&hp!e!<1`9H{3)rEAwV60-97xhl&MT zdNjkxY?hu7WF}qZX9#b-qq&G|SFY*ZX1pjIS~#0(%Wb+6pUi6@wXfAVucDx72*x(- ztG!lR!lT6=b!E=#cQx2_UC$^>`qI-|yI&ZMYxNZibQikY5fd!GnPHt46$w33 z0�)H;|j?ziR97UUbo!x52mg6FSGYDI8#ziB+3EqA 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 diff --git a/docs/java/tips/locate-performance-problems/images/3be5a280b0f5499a80c706c8e5da2a4f-1.png b/docs/java/tips/locate-performance-problems/images/3be5a280b0f5499a80c706c8e5da2a4f-1.png deleted file mode 100644 index f7875a5f817f48649882330675207ec925e94077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15992 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 D(HN1= diff --git a/docs/java/tips/locate-performance-problems/images/3d8d5ffd3ada43fb86ef54b05408c656-1.png b/docs/java/tips/locate-performance-problems/images/3d8d5ffd3ada43fb86ef54b05408c656-1.png deleted file mode 100644 index 1919156c9fca410f3f2836c5b8a1fb8acc893007..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18975 zcmbq)RahKL+wGvi-7UDgLvVN3!QDMTfZ*=#!QFMx5G1(UV8KFgcMarB_WpjmKHYuM zU9YY6Rz20-C4W}_Yy&V9WaMQ4P*4B>6yyZ_`2h$6ApLV7qo5$8W1wN6CN$IQUY$D%IA&o8EKtg4`D>}F-k6YKckxF5mAE>L9Y{Xqzm|N(=2!z(7BLgvZlZwFH3XPxp{u47>==Ru%wu zok9iGRDawi0cStwewk4YM)Syj zzE+)dsXH%)QQUSAe0{voqvH&EX|Dh%tD6(e#uYe;HKkKoA@7Kmn{#7gkblIk zw&jvRB?AD@(#G?G>+}sa74Yu!m6)mVKEjKlS~)863)5Z} zaP=Z7CP#lTw|?-{Vy#Z2(JSRh`y#)pzAj)RAAoZHxXUs+xI$ypVG32%V8Tv(bI?_D z{SmioJ*sH#Xr~EoWnboFL75S*&s$3>ciR(dZ$XLCxnj|znBe3uac4i}agKWm-!oGH zj3C~y=R(Ha1IxJ{!0`#C5F8P(UZV7Rv%X>n%Hup?N4|aiVjp3>Pi-)#|FwYoOogYE zSPNfS&xkp1-0HNk4=NsUn&&CGWY43Utqd z@TYZ40?{5-HVu27q86<9NnPmnGnRO_gk@f`__WhVfszd#K*g8P`tRCC;{X_Z{as3W zC?{h8y5wSikxqRaodJfy@GDbvfSptO3&N-R1UKGUe*t}8bSCwa>gUNM+nDEU(@y~G ztMpG-b|IOUQF%51D#2qEFa398sj?2Xcftm%Cd?@h zpVQ1>LGEMSMwL@lbLMFg;WP`S%rnczWIwV1sArEGIuxNzgc7G>fcd3{T-46(+es^1 z2G5mi$)Z5Y3w)bg!a#}ekJ|mmPm;10na7umi-GBfoT+F<@85gJ9Ktp8(tnG+>Vr9U zkbg$jQy~)r(3y#u5M|xhP@D?KIdx^r4m5uGO0%cLs&9U(jcg@uWjbV)sva|b+8BNm z^bXSX5J0+}|J(BbprB!3|LJ$2F(BR1K~-&ioTk!5IkB}pjm!d*JKxsKCIBhClM%qo zOqJ3Pq34G{1;Zr4@^{0>wDNMEN5bRlZ8D+)1J=rM9`5MLKCQCoRT$ z5l{bLAyT?r6-y8nC@Ex-yh;lqfMU`|z}H^@XsjD};4-)Kut-&kLJ$)Ei|~JSj?e%o z7+AP}Aj15GD5)4!|2uv9@F^BF>@UEwP{aRY?s~eLjO=}2GB{o5JKl=%z9NHF`Gnd= zzVBBPhp@@}&ax>a_4>jY#;V)`v8nm5rN1V$Q6-h>*QO2Z+L8xi#}?5(PH1~5=I0HO zcA=zK@Mbkx=az}huxL-Q`g-Fy9dhc#+C>SVdSWL`Y4ISOmN*E+EI3gG|46O07EDJq zoGZ&VLNkc^A-B)Go+p)=y zv)&UV=ul$#Z9n?WmB;S@pR4$d-!{YE6C(xxBZb_$ED(Ko+=?yWJ4%^35Xlt&C+PIg zPyayTf+*N5eCU3hi97!Tc#kh)Gk?%KGL$_Nn;$s++qCm4Z)$!0+4SLYrfeoK@&AzF zJ92;j7aGKjaPzb2Q?HV9pulZ^=HFZlCFb6aq5sD8XP3+_y9(WZW!L}x+Ypkr_{aXY zK$4kq^uWY8d=cj9_Y1hz2a&_92g5A;ubW)yc}aN-0fL_Cq;ZFUU@CIUjo5u%n71(# z26-#W{WZ-te&L>&Ay3c+#qC4WAHa{dw~^Ubd9rRChj{+Yh7pI_)O++-O~aNNN~C$4tc#CZPiHhLeNNme(JgMGEp3+%Nxs2<0FI}l zlrq*4yW7$76gFqR!RS>P7FndZNdD`Kigm|Ao=YhmfGS1zH?OB}W?w}{SC?lMa~qNg zN?@4{7~K$lKfjI$Hawk_9XMof=h3doF7f&cl_;oLGZA{ebe~X;ujQu+3+TP?990~F z>(NU61o~p=e&9UWH_qh%S1UA9MJgZW@upaR>R!|*BG1V3fmD3D`h%!+XWW)E`6XRv znB8*QBXDW#m}&!f_QAmpCZmMgC*+dsg&!<)@y;Ne$RI}$aw^oU|~f_50nFDh&APV zb&24#E3@g_NRod4>*)r~ry)V%htkY1GfkvkobvFbCmbcOT9bcVIviwqOnv@5?Ojcx zR3%L`M}R|?$iYO6lzfB6$@|rx_GbgXRPof579xp|WK^AE%)MqPS#S1McZIq%1MS6gfGpDE9B zH+tthfb8XMGKZg|=1a{s6XoDexp1zuL2jvP`VogkG;_l2CD}6`q7E$jG9|PY9BlJa z2`iY%@9&4-AW2da_;D<%&t}q?AT`4Sb>@4#Th}7FB)3||OD?zvit;`}-ds&Nur8&- zkNJIpxv(K2{#{hlNu(m?`G>yxROI4H7hcL)S6<}j<-M=hn?5c=?fC{XEC(6aq@l9# zamSd?HM9o~&^9^t$$MXaUkJ75Y1vmWc)VmmV~f{J_^@dd2hV&a)tZ$0*1<|>BH`eo z(hJ6Bd=WShL!-&lNCxxlV@P2t-NgF7&fwqAhw0?#Dco#bVeDMIFr+yxJs zJOqS4Mr!Z%WSR)MBt5id$X|0wl%25THy2F!?0rpDub=T)Qxwt(=}#IsG?DP#^~}IZ z9)oH4erx=#>V37kfLBwo=lJ6O1$sqTZVTG^{<%kOGMkZV;j<@aha1m#3aMku-xt&; z#kZ7eOezzK$<2<>R}aFa5)-K`F+ zS&vc2a*b?5WlF>zsgVcu7vsM5_A`x_Rt)Cze#es!9PY4a~=b{wO743 za>u3LT&a>Ws!H|qO>d?(d%4x24g8q#piNUkeN6fr&$*-{{7Ju!c$a?{E51>1{LI}> zE3a#FyiV!{A=|5Q4t34Q0op};@`M+K(O#s_gMnpt8^slBc9*HnouqzRLaSl3t8^w) z$B49AX0gIcB|kMr{8SgYJV~Z0lJb83wNzpA6y6&KS4C427+qARl1ZUNfOs5&xU_$& zEVaCF?9C=WL)lp{L;OQ&TtUNhI~(oex&7J}@&(>9fUf!U9l1Hm9IFHxS$VV8(H&cW zro}oZjf)q|2c5Cj8GE~LE<*`Bm`t=qaVPKm*_h95m35nBbZmScAa)R|H;lTvEu1mq~M_AIWQ$sQ9r4^@W@gK9#Z<4c6%Y2k3F)e_0^Pu zl<6+}yQ~^c+z$<31`qBgVVP0wON*m1Cg;h7l%$1`w`eALWdlJx0(cSQY^0?t*E=N@ zZkyb)Lf9ayW2B6k5xPpr;13#tQFnU#l8Y=dK7T|0g@xTigMwR~emmcbwJf{9AhWI| zESUj|Jv0B6yOH)dCbb}~qAc^f>hht$Y1e0COuvNC{9i|JFoLvML7Hr;l&=yHe!Ew9 zJn-zOJs6l!biN9NvD#+y!|R$xbV^~*aepb>bpg|q@e0H;FkJr0L}10!$*bsC`Oz^d zhuy86SzQck{3#r3c9$JM&k9`&ap|IA)?ND}=;_e$RYg11z4T+VDd7twPtO(lN^$DG ze*lo|9txb?lKf3BByoQs{U?umq-miPQ+ThTFE&iG-dZ85iAO1|sI+Mf)$bmm_i8u% zYx6IiH%rspm%jOxq}GO|u?jrj&6a4)*_aM3EsPa4mH|Lm%1bqbaDy~ob?dTw%K5?tq7trl*}>ReU$Bz$1yysOQazbFcu?U-iN0An;f;=B);u6A(J`!=`+A=TE7cFp2vDBS=@&8y|-@Y`v z?+K1Z^iNwNABuIcaQG@L>&5$3h={c8L@$V`8AK`Zwd-qOLz=d!9{&?pT`Geq6WEvYP?jjlE!AWSw)mJUz>;g zz>jxuQ?}e(_gWTjmc49t=qa9L$Er79i4rN$;lb7rp|tMu+&)exYj+G zJ*h0Mr*4E0EZ)0J=fx|8==gdg5apWl@}A9#3y8xT#bl)xYISjgyb<$8|V;*45V0EQkNP=MX@H1uwt;o`hWE<%%6|D_%gMIJgA3(cCQt>U+ z3jZ5u_f3LOC^^GR0oFuez{Z?7vM0(4e^BTYs+5O9=!C2=YI$PmPG>G~tASLDtJOKj z>?~S(c{21&nBx=%d=mHNz=~8L!=u3;nG?>7wzHdr)th+tXy%Nbxu{(i#i3HwGfyr2 zqw=>&I4nXi7^zec=3!bhR+P=Z#U9#H|07P&cBB~v?6;r(jafR?f!b5GKR`>NdG1rg zi_9sOmUmMvC}11gcal?WI^|XL(jaA%pV=?lZSor1mhHt%!j`(`!0_qBUK20bli(kE z>e0X!Z$3WEjg_VV9@1iWAFxzjj?UVby;UJ_-Jy+XIvqBdH!e;ZO{y;JW~w`DKO&Mp z5D|7}9JdA!t+g&*vy(H@wSjOd)gVgSXS(Zmq9Kj8UBEPyQIc91Gh-JL9!!DdaZ_l0 z+h{d))?O0@8==IZaPdCf zQGlmMZN!vUORXg6i}n=Pc2sHz1b;ZE??zDMrS-l8y(U!f1-f!j2kUsJsh z39c0sX1y)W^J|&|zHiV@%q|kC;dwrxO*Df!t*e}}w)>gOa~8B2sZN)zmjVe*%ptlF4C*6xvcZoRDH>9z0C5+d9uZt62@l_cp+) z3M;&PXUu1F=;jyBsE|$dEFLwIq&`lX%_WUWM)j>>ZR8y+Wmc;0AHoMxER)hTDs*D( ztNiuwxs!&d$RslB=NETgzBx|8kL~>*7%A;S^w^bK^`Bbm5DnPa;<4gNlM;}`pZL~1 ztK$2euFHV{7^?Wgq83?ZTrBk=M!+?ZM>SM)Dd(6*tEz;Llg96Ngh$&(XZn&J#EE=FBu?I9UIrb>aI<;j#fBP!UD61t6I zL$CfG?{Wh_S6Xa@bl*kd9G6!m=#62I4)0LjxA4H{fceadloty9WJ6DcOz2(y0C1tN z#M?Z_6{4&Cz3aT+u&F)p9qV|{#9y8(mnN;~2oJqfiTz|UWI%iu^B_GQ>KE&a3QCkf z!p44FyQf5yi8!T{FAkNn_a$w3TEA|op*l_?qF!JQ4Dsk}9LSSd`4-xLy^f{M z*LgsF+Hm!p)-JrumlYEms;z14(q$V4akWr##5kQ=iQ3?kQjAg11~zNg+Xme?C-a(5 zj+7&5TDs$0Tg)vDi$=`4*@c5syDcbl90O^_#n>IUMh*f=j`Oh%BRFpc74;l;G>Y<* zlSAIVsq30=7q1Z^stW|ce6ptxiT6Vve-PkcX#AEEtef(?;%rK(v$WwW^Ig}hhOOzs zMt~-^gzh{#}0nZ<%(}Jxl@! z!#OzLw)qmq+$+r(TX2^R;a+AV<|ly#s9cA>btfzmcX6sl7RzxO6xAslYD4OxHse&q zChv9cLCo@pTn{sF+GsiM3Z8F~3<=TPZd*S4p0e9Hv>z*ux?|GM4S)zIr)2@f$*9~% z&$2Yg0pwK?Rj~4_EW{#n!QeG;tjs5-%8!e?O(-;tc#a%^Koi6M{k{_??&pF0wsC-7 zQAo3oYC=jFx5h_Vr7nW~yNoj5?=LJ$Zrd!^-@JB!=WT=VO|i%4_Tj;zMn)9ng)t>Q zo<(KLA!pbxX>TNXS7*B0~Kt|1T* z=J$y76h*&Yg7uQA`<5)>LAgp|3=vhXo3zrspW6* z&~`OF-ir&0VIyyWy*Oz+H3Vs{G{Af3OqH-y8vfwwW(ZM;7k|iHKx>vQFqIJA&$ugy z@cz*8s^U2<^S(Uy2o-UC&MeXpiM2W2#!dX!uB+D{K%Qmp*QD?s|2|in3J(5N?vhnr z$NO(E%ac5?=OHCCTf!*W`Ndl+8o!OPyB)}A;#BQ`0D$_+e2DYD7j8U_ECc8c0qSz| zyGCk@iBx|fls|=dFGC&J)~D-Ww#gvy^F};pWm<2bih3F<@3&eMn@#%-ilge7JpG^T z(M45wQL3w8cJqON;i{%AIDewc0QD7hIa31R!VGFjP@MxN;tQj-ew|ChB*XqZ0ZuzNF<*I*?e4qnmJi)s%#vI*bj+LAf}$2t`)qQZMGjyKnN z+h{J@ZEbPne1XeL;c=fFfr@w2bBZt$C|w+593&b{(~LC#rD___Ph0t0G4`ZlOj8*t zn5fPpvWlYY*r7-PgmU1*9qqI8Suvkx2J0Z&W3Y3_@QPJh5;v>tMZZ_GLbff5Q|iNi zgw+MtT_)4V+H5}rjA_PxDHN3wqts|nUvsW76(O%+ov$(-n8zrKeLB)eXe)DLT#~0( zrdo>!zjG|BUV_dng{Ntyo~XB|l#-h=Jb>b|GyI(A;L(kgzBVJMB70!V2o?hug<38- ze1(7+8^u}Yz3+q4h(bWz@J9>O+cK)oD)WI6hGn(u)vmKYn>(sD62;m>w538){R_M{ zml1>{cwq3n)bSNLNvUjxHvMLIX}0i7u<~~oGyb+CDF3iJKoP?gt7joG<{OJ ze>pdZp`;cth3l`K{=#8mol(Oyd(W6*pfz{a=XOMX#i|rc z&%}|yJr{nAuVMa-{cQx^XMNmv&T#nlF;nP&<N0Sa{}13; z6jI8*{|Aue+I#aeFw3oXEAWu*B@yPOfbdoEp6-$L{VjS^ptZ*zz@$&_S^pn^`F5a+ z%jG89>$}jmFQTU=j(-4D5c{8fe*nrmfp3?80EMo90M$hg*h$Q{&xKKYv2w2tl;2_%>!H8A3!nWZ!b6C?ClSrMRX$m?PVx10RQdt)~Tpf zpwTbU%U`0&FYj(`F#iBDkzYG|!Jl28E?&_g69&8(e`gDz;h^B*Ak)KtCqy7qH2_R3 zSPEVP_Jg5ZjH`_y5O;xAwsMDn;)_1Qt|8&9CAY!pygTA`ijcfv=Wzi!eXOqZ}XD#d99k6CI=$WG>w3 zw{R;_`dh~w*o~?w`%X&7IeI7(NEQ)ta~k*MZs(e4HMXMmS(W>FZy%!LL&&XBh)V#i z00sj5Q7d;RKcpz@nyWkNr5x2EH)mSt@7BlQ^}zYw5gkU7O`({~ABU(=DY7=qOHPUQ zu(TPL(xSY|e*pbJsLIw*_dWyrxDdBUs29chMVGj9;mYrI7Z&QQc2#LiUQLxc6VM%y z*^bUx8XnCq?CW%gf{r@=f@{kMMCjId0NW+`bZ92)%eKVId%3~*kx#=0;o7CBBtWx} zd|eCa=!FRZ)twI*Of+n{g6<~2nL{zwUwuodNV6Ae)(VSD)a4$6cs0V(Rp$g z&Aw4t+;Yn&Fu>#UHJVMVm@+J1sPwvNgbtfJ{lEk^5qaXl@9H$VQ6=%GVlEtMURn7W zt*wU(zMdE)}L{8_+iL zp#qc1)u2!D`ZOCLwmT5>U*`;IAqWSvi$AmDuSLy(m#fKHL*B?5@cJ8Bubg$t_v!_6 z%8+pUFEO4k3k~ZK!!nrgjE(E6f%+nV)jsF@uHMRbVk`+rOeTZTdc6FV)D7YX4@)g!v;a9~;&lEY9H?G=2I(rKWsIuIi@-9}w755|ziI0DCsThj2gyssxNIQfa>yVY72Jl* zeU((Hq>4>U-0Fg-lcV;=|Dwi zET_vX%_3)WUj^(h7X7B`pXijolRU{r{$UJVvF2O1|h}T2k){Reb^zKqDGLyKDE+R zyMs=yIwIfOg}O`(!n&jWnO;zWT80DkKvFdJPG=)@BfOYGn+4W83l$VEV@UiGsX1f5iLhjcG(W9xgjeSLs{KMn?zdq(=RtymsQn?u zZo_P`$mzip$8Z_<6V~?6DQp?*R4qA;3afIuca*m?15MvZ4nd_-ZL&35MCG39Pg^aF zw8i;4`fkHqij?G(<9`4c#kM&-Bo|yg^%Z6wN`?n9^P{+|q-qxuayOYMB%5(xKNX`G zza3f3$0J()OoDaGn>v=oY&APo?b#yIH)q~cawoknwkO!tNwl7{%&3UhA~xD0&Vk`i zIV5iT!Qrt`1BK8+h<^w$gQlQzq)g$Vz|m zCs=BtLql_Cqv^5FgnU)UUmL7j=O{`4zrbe$$ZF#uF$ zByLL3ac-|pl-ix2-k_}cHKDBFYBW(66u!Smj2G$@5>BiZpE4O$=q077hi}+Ap37A&(H!LJ)C-`< zaC|43rUlhdD#J6N?MCoa4oJbkKGi%IAN8f|AyUTA_nCB(4cF7(IU~S5^y##0>_FR? zGyuVSXj0ko8#M;lBiK+R46{0Ad_m!1pY_{)7hPAe4n-`0X$#YnNTXZyM;bLy@U#Yw zmQOW0IoX3@`#m_%sBx49DmnSI`(}Y&Wjf)-T3)2_g5Of$)^Dj7pUw3`iKJNCTi!TM zDui6y*s`>F>xjEPnAfKm$=5OQtHx0m#VjQ+b4t9+#9BJ@05VWv<_h?50Pfe9BD9mm z>FCx5T2G%or|bdczt+g}rQ04{*O9zwmlTY*azy}~^6Y4@>!>%iOLNCtQ+;$&To~t- z|4~&LZ3k@{Iy;Dq;=i8AQ&Ih9ZAi)akL<6Ty$7ufYd?D25=i?hGd>po>!c_*5~CXn zT;ho$CpK@cm$1xJ_Gy5aBSo!yDa3=yfLLVsHU30prYB0?ow60%H9hE?XGOn}yJ0z! zgUV=8op&0`l&uX~4`&_qvN@o8DZNxo%z~uTT-A?gPQD9Ii&KA9R*g*!_yT7aWIs2S z=GRRqJo_QlcUEa~8)xX8fM|9cC1hvDcfMtt^*ANMigXnIKb&Um31^gQWLYg?TGsVz zl;&aEJ}D5?{Q-mmHB(u@{NJg5BQIqq!86&Uv5eNijvpfW^@Id3<}Rhk$iBmu=hU?S zOWeG)T%1UaY-{M`FaQ1PI-I?%Ab|Z`H@&00Jm*k1G0|TwK5cUeD_WW;NL3JiXJ~?} zk*u^4hS5ndj0tU7*U3%`LX@P3K!j-ONTJ4W8al``kl*Nb{I5EQ2fGjArxLfDK|FvL zlf><3r>BSe;OnTG@t9KN)3ZME@)W09qG?8ZBl#x#&duxr1#mTYyi##-Uqu2a_Abtx zAA0PlEd!KNEJ2WJP0^0wCfgTR{9kno!T*1%T??N54}h4XQ>0psI9Z(_$sU1WhL$Re zwtev!YbZcU_^rH%vm2$vRj!Xq^Buc`(fa2z2NtRN1GyT?d|flOD4>iLJ)1?MiL}`H z{Kj~QBP!z+ZQl1b^6Om?)&W_bk;XF8B-|n6^sty7{X@{&tqh(7Jk{R&!XffRpZAbj zICi-Hex#4}ile7tL9mD$<*iNf8aW6^*tpX4ki$q%3O~(ko&(tzva_azKRo9n;XW;HO0#O4MClZuO#1&kDi<@TbhwtuoA$lyLPF2(Cv1o?jlc=w11 ze$qRjn}q~aW@R$1{=j%jZ@5T{6~aZ)>3Fi~V-|-tMiiU#KD}aGwS9o$ECcPJo_u|_ zzm7tiSf9ayR=$XnI7x8ylLOZXX8k!CkF6Zv>s;c z2XDI1(rkN|Xl}nJ){;grY}6wCU$*Ao#cF7*OYbTq6h1$Y2hzylUP_I2{_sxA1yNuM zG`IT_%71lZv$5WYci$nR)*YZ+*lg`5qVdLB-~81>vmid7xO+9=c>4gxCM2!deSPoH2qBr*$OD3!Qm}j zrSfaey@ltmsbDX0ir}uTd`bu z_9(6Ez~b#IAIrG&;vXIE7Gp=9`KA@pxoI>erFtE^XyB9UX-$r@mOZYf!T4fV_h-nS!fbjVeZIi_f;$8 z22PN88qQ)BtV_`QSv3qDl;zgO;15v`coh_6t7!KXj9Usx*-&`Gb-)O#QwNP*OpD_o zeIHEC7W4khLur*Ebd|eG*BIt^_IYV|%wp&E);oEzTH&X>w~HdY?N#InGUe9Dqgr8u z1xWW**;=y?}B$^e3+xQ-l90_q?gus8cH~SBuu4*S* zFP~A~v23gCX&xcgepQh(#5|s_RIDKESEZZPyH4Cn`5oqQLS16AL0?6dU27;c^dB0E z-+dHhFpyV$a~CT@k=`+vxD%%fl_R>tI%P2_9N#O~LOYk-LhqhkhbYS=m#joVB+olmjKp$j8BMauFJ$hn_WNCY>k2_%mwERs+3S~vMEdi&)AUEn_N)*QeY?Ds-Ahen5 z5O93k#QR9rwt9PU{AaCXm1QL);MLZCnR>ZxGRGh`bqaE-1{Br@ysrB3?o{=vOd37e ziEPjxz_vzh=9uwL|D+$bdT~Z{G!nB2BVr$BdYn02L7|CWiXv+I15Pz!2yY{?VN3?Y zX;3jaTnSxOBOVSFk=|mqxOjpn5D7*=6oGb2!%ky>mj0fA3aVROo<5ckw%XgA`fU;=4pL%4Pr#3hq?MGn`%)*YuG1`2Kh+bM^i}u{<+sdOHsE zm3hQttn-}^fmAy?7j`=ruKcIiBqI4| zitxiLbEOr-&*IX0$L5|aRxp@!G?kQzs0xhRBKfH!7)}$yU0Rr+5)E-Y8FLXvZMfSe zjz$=FVd`Wf3&Ie1X3k0wtN8mhHL*AODq@=oD4={SZBO0wTfX%PKJC9ki-fg5$tlT z7~E1Oea*Fw7-W&9Ln+eHae65Aj5q9L6}Ps&hauQkGQhUR38xH~Q&V}#O>xMRn>Oae zx#z*|44$B6G4+kBrsJGc&O?paQ|}Z*@brSsotG=fp=RF2_N=h>VX;1CL{vI5hcb(h ztdpk5(0m=_B`4C=I^D%q&}Zv_2jc`y0<4qbgU;-u*FI6v=e`t-mC@>_0ycvAxCur$ z&3`Iq`Af@8RD|iV49o2AE^@&j?UXj|Djy@xQtIQdBMEEAd9O177O_HtaW*0jK`2H0 z5@FrY&^aNd@aO75Q`Lm-Ny#~lsEPJ5k`)<3go-HDe0p=SMpG*pw+j=)$c?N>(EdIp z#wD%`9d?AHLS0A;;pyl-bW`f1>+hyG9AK8F47i$TLkTWAjN+v!6)~jYvM?*o#N~-eB5T{3~sOh{6?|?xzT3p4h%-}QA6zavmYx53f(3A(G_G# zNF47@qGCgjyU%FZTkauIQ63?`;}@9XQKMbrLD)1M5N| zL4q9XiC0BCjWf9qmxbixv6zAnVDA3abF^MP(=U#9dZtXFB(9Os*~8tQbAaDAE=*2? zdb$j7QcDdr-(dFBQXVqc@WHfCnBGob*9%@*x{CE%CY3!DTD3B*e8;+*lNF`G$|T%A zuw477v1PLw*?8I{Rrtjx#S35@YsP5F^%yz(ETHhm4H1&$N9PHGnE^Cb2WVTKBg|K`yf82BVCgjhgc> z&vOJ^CP9Vpdg)GLtri;`>GN&#et)Z+z?HH!w&MLSoF)^87jCE9OM` z7UW5FCD2Qx-c7_}HmX5*Nc4+S*Cll(h z6#b8@Qq!9nQ*{^mgQ0vb6o#PX0&WG6~2EhLDIO zm3ZQ?-R&f|V^Q%E^8#3KSfcqx4i_rsYKXhjcUtL;2=Y_H$__`T}6;H zSXRM|2d_yWh}`5ZGtG~OUiP~&_aYp&UX{?KSX%?CnT+%J?RSgukW4`G7@Sl9?NG)o zGZmV^L8j_R6gQHS7{XOvYh#P_NHbt5k!icB6|BV%B93%fA^z-;-GKHZmAJD`#{O_z zxcFcTGmYUbbXX?nWn5}Iq~g{Ca)MU#ekUaunF^?7y0wr@*ZSa5K(kiN4fNyzOQ@WS z!@{5vN4hHswmX=bj{57o8xFS96aZwq(3MESh5`kxTzbZB5LsHTdA)(M&*fB*`S7&e8cF-TyS*F1 zB;&*nOozq(#g-EJEeeMPnoTXt;Wz?DSq<`q%j|no{arT)OwBOcaBzS}%v6k*Wj zQWfR~g_iY%V`tu!kYf$3+ZRLZltk6biq|R%pNB;eL>WLcT$8;5JcIN&&v27RwOHQpq6C z6(20I7uA|Ztw88Are)#U19Y)7+k|@hM5da57;7K4oO+#~uZ)5W>j6kY-^ZjAmyiNA zXBSyZiG~``<6U_L`y-2o@F$G<2AkRjfgy3Q`i6KDAB?X=efb~}zBM`2??oNOwe5&X zg0k4azRG6J2{&~z#v5RCSR7ntHeY27KE9egG!Amx_75Xgi+qB__Bw_?1^=&14nObq%1&y4Xiijhs>AwwIYpMU zfc@~OGUkyaoN%(fm3tmUt;P?@eq?R8QO%*|&TuT*%2D@}%aJh zZ_H;>S0MGBs#SDe`2rVr9Mel^RIIf-?ic>WEpp4>qpr`UQD{L z=RWi$@wc_fsVjOKYy5X`7a>Psy&SM*Mro`q=EU}u@i@LiL4MCLr_%;xiYy%08!5U{9H5X~2Q7GZyHlJN7txc9 ziMo0{*7E112D@(oYWx6Pm&x#3Gy;Ulb>-hqI@TEkbNG94$Sp)~lW?UjKYg@<3CFqG zEqm57Bg9-Y_HmWNvE;+sMgOLR14l}f$;0A!54hA(Z=;NBO}8CN>sO`b4dTEY^zR4% zXsj5(F~1fS57^R_BtStS2{;u%)-iN>Rb+abRJM;Pi#eZuiH*5sfW$v(e+uHbSGY+P2~P;vlp$>a*#X9D4KXh%O39& zJh5Z_zz!ITR4TzJ^fid5-;TnvDTXs+bR}^XbSks69V#tRVp&~{D_%l4s`mx&c2vRy zdYqu{1zU+Y%K2xX>2T@SI0Whh(_6|Wgs^mNwQ9s$kzMb>KoBmy9xrQAknlql8`U}o zIfi&KbI5o#bmbeMxXu({Uc!XlaEQ|%KWc@lR71XYT!_So%NA3KRQ%RY972HUDqf5l z1b{LH90G0~5b^Qe7&7`&+SL?N*Rq``x-E+ulxirE8MKk5wPCDc=+#s`>|NX?kkRkz z2`JpqgT@zi;T@x_P{qX?$qtdFEX#KqrKs@`ikzkS8#Rh*Igxx}WX4!p&YhH?$U_i1 z$ZyH#V9P>cQN&0AC4}k@`Z$>O9H60S`u4jKa^E0noGx}o34l0|9x_@$hJe$4W6zN; zZiN!#B+YKaEG{NJ#Tj8W7*vAw0T>gmxC7zXTO_vfD@%-Mvot~jL3D^Se1Z~JV%INM z)0ls1QInM%!ek|NQN0^Wp2som4iH1{G#Un2X!r*3LV{r@9W94uKwSZbS;CK621f}G z9mReiooO7`Wv(43fLYf}rFU!=J{rvwY9>9bR8!Q~qNl#&-Wh_%YaFdSROU%hx52Ab z=zvNOGIf&T4(<41-xm(54SFw6xR-~6JKXQ+qKCthgjQ7R7rU@2?m+w*M7JM;;NVpp zOPr*y4ILtTC{^zR*!ktVFxZlfem~NsVgH6meCc~-4ba^l2=je@F`G;pTA zAfMWM3EH{XAa*cq*k!RJo|`qo*(o!WahIpf=V$`uO1=GK%Vqs*88IeM;3ePlOn$7K zvq95PCt7uu9)eM@Qx>E7h|pAm95U@B?tH9$iD#H8=6E2~b?0?v*(3QY2ovJ}b{w@%yos1tCkMw|GtAuh^{P(LRf(Q(d}B=>t`EL- zmK{x!YsAB>vyQV3r3U5GnKv)7mcn>nZFMLvbHp&XLhmsdOIy|gC})wtpTHa)jXsN{ zsbG)B7<`!ZO;z8=v za>hzhc!vv3z02_#E-fJq)wVEKd4TLvZKh-2H-tf%q0o&w^*4QwIEf~OuC_F&#KII6 zMongd+>X}UVAaJGj$w!-Sj|lg@Y=8QES0%`)oB= zEw3F(BNw~ya`k;s`5T7@&d#V9L8=wWTE31JBY}{W2um=|KP}=flG}5K{rdgxoF`$w z0@XBK52MJ#d!CyDi;nt(g}wTLZ!W4|bSH&BEPEWS>$(}md*iMz+duUrrsm%C}5ZbwpBsZ+N1MPfzQ3)R82}3R-J2q#f7@l4P(}>o5=t zG~K=0eL2!AZOMJFyO8;vAyr4Ddv1K%vm}q?!bVVFX=K^Kr9S^@zJSaYmp6kBB^VdJPzj~naVaI)GN0gpPU?@tj{X9o&0-Kd#Li9i-=mg?7t0JroZZN*=GmOBZ0Z)~Xq^Db_RrlkTb)l}OZwNTJ6!j?SAMUI7Wt^; z=U?Ym#0{LYkCnWoXa$yBxP(V1uB`MVL~4B|egA=l6C8gkiCN9_WSrRTDLbDmXJ7CW zealI$=8Q#~ky})PNScw!KV{AU|J6by&Qs!6)c0wX$+~v7C*H4Aqqvs=$bi#5cl3tU zvTz1$Vj?Pzk$a@(PFAP|-#=<#DZTtS1mnsXfs9g^KDtQ|DS~jH9+?~~*0PlX!ySG7 z+a+`~C7WnJ*0d+Pp}K^E>bjLe+;#Jl`|EnIsvTiF`V zx}~MA^>pN$EkKgZ~Z>_!e+UtDZZb)yMBKMJdCyZaQ_($v! zi~D9DMKShvAzzQz5eeoWAz;go%Mo%lDd-(Y zcHDBp8>!&nOcP@`(@4e1Q3k%x!Ha`ur9aO~7v&}mu|LZ=gW*1Z zx5jK8whkZsk{z>tE8*pCaj~=J(%o+YpOBeSlB;B%W1LA@FbC9L;YuBl#X!*ALlI)# z_sV@q#lMoR_VF4W?+=zCx8I-QrUJ(BR}!-)JF?gzg$@p|);) zZ-wf5-G+?C1t%8!%_e!^fEaiV70!3j+$Wf~w=e?oCoC#V_vOKhf4~OjWiJ+PMesUC zrvvre>}P-5N*!zYO1Ud_N_@<~cJ9Fhvj42Fg*00bv0mj^uZE{9Z+houH_Z41K( zo5Q9m^&lVPvhcFg*?#FxUAQV<^?ifh5fb-oLJVWpuddkJ=jKZParhz2-m=s8G0C(6 zj2e@UJaII;OO@>^|RXn7nSqjl2$K25t|#S8ILj!d)ld~@u;l$}o6QO7~Z z2s-tHwDzMczh%cp`9AKnKcS^E{tW#E&EW*Q(6~3R zVAkq>F>Z75XUIDFnN#w(%1>N@#JChqE6U_& zN>pD?^VUyZ@mH#Qq|?frJ?tKqoRLBe*JhB-YC_G!BGAlb>E&2&4COGMTnsjn68 z9bVRA%O9rf(37?NKXx~yc&%=mqvg9&X^6uNm>o+^JKNyY3aT%}N#)dTPyQNtUB_j& z%iQ7B(>>VLtYpyJXaN=x2yEUkrGua(@>_AFV)F(!D&)e|jn0J>8(!8pOALK*>8j_= z|1Tt9WvwJ8=u_G_VW*a-vj!StLw{+Q*wrrr5Qey5;;@#{hpXhM*wrn^sY(h3fy^gE14;b61>S>u+mf zPeu0_;3wE+gX}`}`2!}9q07?(4|)aB3!39YGaKgzs#0b)$w+a#JxRw6CncMYMp-!v5Bh0Zcg$nq zOqv;-mD2MgYih$H^v@g{hw}OCF)Oc?e?I+uUwgYqO>Y;|nYi(F5w{2K(7ElqFx8r| zn*aNH$`amqG3W@Q9-bc5XLQ8#r24TwjM?x0Dmbkp=kCH;sUP=Xq|Mbm*q-EnPYdg4 diff --git a/docs/java/tips/locate-performance-problems/images/53fd3ee9a1a0448ca1878e865f4e5f96-1.png b/docs/java/tips/locate-performance-problems/images/53fd3ee9a1a0448ca1878e865f4e5f96-1.png deleted file mode 100644 index 291f7ced9af5b777ba401ac80e573025faaa827b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23636 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 Wt<~lFI<7gofmRAj!M_2&m;M*NCGPG3 diff --git a/docs/java/tips/locate-performance-problems/images/e9bf831860f442a3a992eef64ebb6a50-1.png b/docs/java/tips/locate-performance-problems/images/e9bf831860f442a3a992eef64ebb6a50-1.png deleted file mode 100644 index 5b908b33f1bcb11d0576df1f4bc1e975a9870146..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12094 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 本文来自木木匠投稿。 - -## 概述 - -性能优化一向是后端服务优化的重点,但是线上性能故障问题不是经常出现,或者受限于业务产品,根本就没办法出现性能问题,包括笔者自己遇到的性能问题也不多,所以为了提前储备知识,当出现问题的时候不会手忙脚乱,我们本篇文章来模拟下常见的几个 Java 性能故障,来学习怎么去分析和定位。 - -## 预备知识 - -既然是定位问题,肯定是需要借助工具,我们先了解下需要哪些工具可以帮忙定位问题。 - -**top 命令** - -`top`命令使我们最常用的 Linux 命令之一,它可以实时的显示当前正在执行的进程的 CPU 使用率,内存使用率等系统信息。`top -Hp pid` 可以查看线程的系统资源使用情况。 - -**vmstat 命令** - -vmstat 是一个指定周期和采集次数的虚拟内存检测工具,可以统计内存,CPU,swap 的使用情况,它还有一个重要的常用功能,用来观察进程的上下文切换。字段说明如下: - -- r: 运行队列中进程数量(当数量大于 CPU 核数表示有阻塞的线程) -- b: 等待 IO 的进程数量 -- swpd: 使用虚拟内存大小 -- free: 空闲物理内存大小 -- buff: 用作缓冲的内存大小(内存和硬盘的缓冲区) -- cache: 用作缓存的内存大小(CPU 和内存之间的缓冲区) -- si: 每秒从交换区写到内存的大小,由磁盘调入内存 -- so: 每秒写入交换区的内存大小,由内存调入磁盘 -- bi: 每秒读取的块数 -- bo: 每秒写入的块数 -- in: 每秒中断数,包括时钟中断。 -- cs: 每秒上下文切换数。 -- us: 用户进程执行时间百分比(user time) -- sy: 内核系统进程执行时间百分比(system time) -- wa: IO 等待时间百分比 -- id: 空闲时间百分比 - - **pidstat 命令** - -pidstat 是 Sysstat 中的一个组件,也是一款功能强大的性能监测工具,`top` 和 `vmstat` 两个命令都是监测进程的内存、CPU 以及 I/O 使用情况,而 pidstat 命令可以检测到线程级别的。`pidstat`命令线程切换字段说明如下: - -- UID :被监控任务的真实用户 ID。 - -- TGID :线程组 ID。 - -- TID:线程 ID。 - -- cswch/s:主动切换上下文次数,这里是因为资源阻塞而切换线程,比如锁等待等情况。 - -- nvcswch/s:被动切换上下文次数,这里指 CPU 调度切换了线程。 - - **jstack 命令** - -jstack 是 JDK 工具命令,它是一种线程堆栈分析工具,最常用的功能就是使用 `jstack pid` 命令查看线程的堆栈信息,也经常用来排除死锁情况。 - -**jstat 命令** - -它可以检测 Java 程序运行的实时情况,包括堆内存信息和垃圾回收信息,我们常常用来查看程序垃圾回收情况。常用的命令是`jstat -gc pid`。信息字段说明如下: - -- S0C:年轻代中 To Survivor 的容量(单位 KB); - -- S1C:年轻代中 From Survivor 的容量(单位 KB); - -- S0U:年轻代中 To Survivor 目前已使用空间(单位 KB); - -- S1U:年轻代中 From Survivor 目前已使用空间(单位 KB); - -- EC:年轻代中 Eden 的容量(单位 KB); - -- EU:年轻代中 Eden 目前已使用空间(单位 KB); - -- OC:老年代的容量(单位 KB); - -- OU:老年代目前已使用空间(单位 KB); - -- MC:元空间的容量(单位 KB); - -- MU:元空间目前已使用空间(单位 KB); - -- YGC:从应用程序启动到采样时年轻代中 gc 次数; - -- YGCT:从应用程序启动到采样时年轻代中 gc 所用时间 (s); - -- FGC:从应用程序启动到采样时 老年代(Full Gc)gc 次数; - -- FGCT:从应用程序启动到采样时 老年代代(Full Gc)gc 所用时间 (s); - -- GCT:从应用程序启动到采样时 gc 用的总时间 (s)。 - - **jmap 命令** - -jmap 也是 JDK 工具命令,他可以查看堆内存的初始化信息以及堆内存的使用情况,还可以生成 dump 文件来进行详细分析。查看堆内存情况命令`jmap -heap pid`。 - -**mat 内存工具** - -MAT(Memory Analyzer Tool)工具是 eclipse 的一个插件(MAT 也可以单独使用),它分析大内存的 dump 文件时,可以非常直观的看到各个对象在堆空间中所占用的内存大小、类实例数量、对象引用关系、利用 OQL 对象查询,以及可以很方便的找出对象 GC Roots 的相关信息。 - -**idea 中也有这么一个插件,就是 JProfiler**。 - -相关阅读:[《性能诊断利器 JProfiler 快速入门和最佳实践》](https://segmentfault.com/a/1190000017795841) - -## 模拟环境准备 - -基础环境 jdk1.8,采用 SpringBoot 框架来写几个接口来触发模拟场景,首先是模拟 CPU 占满情况 - -### CPU 占满 - -模拟 CPU 占满还是比较简单,直接写一个死循环计算消耗 CPU 即可。 - -```java - /** - * 模拟CPU占满 - */ - @GetMapping("/cpu/loop") - public void testCPULoop() throws InterruptedException { - System.out.println("请求cpu死循环"); - Thread.currentThread().setName("loop-thread-cpu"); - int num = 0; - while (true) { - num++; - if (num == Integer.MAX_VALUE) { - System.out.println("reset"); - } - num = 0; - } - - } -``` - -请求接口地址测试`curl localhost:8080/cpu/loop`,发现 CPU 立马飙升到 100% - -![](./images/3be5a280b0f5499a80c706c8e5da2a4f-1.png) - -通过执行`top -Hp 32805` 查看 Java 线程情况 - -![](./images/3d8d5ffd3ada43fb86ef54b05408c656-1.png) - -执行 `printf '%x' 32826` 获取 16 进制的线程 id,用于`dump`信息查询,结果为 `803a`。最后我们执行`jstack 32805 |grep -A 20 803a`来查看下详细的`dump`信息。 - -![](./images/1fb751b0d78b4a3b8d0f528598ae885d-1.png) - -这里`dump`信息直接定位出了问题方法以及代码行,这就定位出了 CPU 占满的问题。 - -### 内存泄露 - -模拟内存泄漏借助了 ThreadLocal 对象来完成,ThreadLocal 是一个线程私有变量,可以绑定到线程上,在整个线程的生命周期都会存在,但是由于 ThreadLocal 的特殊性,ThreadLocal 是基于 ThreadLocalMap 实现的,ThreadLocalMap 的 Entry 继承 WeakReference,而 Entry 的 Key 是 WeakReference 的封装,换句话说 Key 就是弱引用,弱引用在下次 GC 之后就会被回收,如果 ThreadLocal 在 set 之后不进行后续的操作,因为 GC 会把 Key 清除掉,但是 Value 由于线程还在存活,所以 Value 一直不会被回收,最后就会发生内存泄漏。 - -```Java -/** - * 模拟内存泄漏 - */ - @GetMapping(value = "/memory/leak") - public String leak() { - System.out.println("模拟内存泄漏"); - ThreadLocal localVariable = new ThreadLocal(); - localVariable.set(new Byte[4096 * 1024]);// 为线程添加变量 - return "ok"; - } -``` - -我们给启动加上堆内存大小限制,同时设置内存溢出的时候输出堆栈快照并输出日志。 - -```bash -java -jar -Xms500m -Xmx500m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:/tmp/heaplog.log analysis-demo-0.0.1-SNAPSHOT.jar -``` - -启动成功后我们循环执行 100 次,`for i in {1..500}; do curl localhost:8080/memory/leak;done`,还没执行完毕,系统已经返回 500 错误了。查看系统日志出现了如下异常: - -``` -java.lang.OutOfMemoryError: Java heap space -``` - -我们用`jstat -gc pid` 命令来看看程序的 GC 情况。 - -![](./images/e9bf831860f442a3a992eef64ebb6a50-1.png) - -很明显,内存溢出了,堆内存经过 45 次 Full Gc 之后都没释放出可用内存,这说明当前堆内存中的对象都是存活的,有 GC Roots 引用,无法回收。那是什么原因导致内存溢出呢?是不是我只要加大内存就行了呢?如果是普通的内存溢出也许扩大内存就行了,但是如果是内存泄漏的话,扩大的内存不一会就会被占满,所以我们还需要确定是不是内存泄漏。我们之前保存了堆 Dump 文件,这个时候借助我们的 MAT 工具来分析下。导入工具选择`Leak Suspects Report`,工具直接就会给你列出问题报告。 - -![](./images/392e4090c0094657ae29af030d3646e3-1.png) - -这里已经列出了可疑的 4 个内存泄漏问题,我们点击其中一个查看详情。 - -![](./images/53fd3ee9a1a0448ca1878e865f4e5f96-1.png) - -这里已经指出了内存被线程占用了接近 50M 的内存,占用的对象就是 ThreadLocal。如果想详细的通过手动去分析的话,可以点击`Histogram`,查看最大的对象占用是谁,然后再分析它的引用关系,即可确定是谁导致的内存溢出。 - -![](./images/ba07b0fee1754ffc943e546a18a3907e-1.png) - -上图发现占用内存最大的对象是一个 Byte 数组,我们看看它到底被那个 GC Root 引用导致没有被回收。按照上图红框操作指引,结果如下图: - -![](./images/0605fbf554814a23b80f6351408598be-1.png) - -我们发现 Byte 数组是被线程对象引用的,图中也标明,Byte 数组对像的 GC Root 是线程,所以它是不会被回收的,展开详细信息查看,我们发现最终的内存占用对象是被 ThreadLocal 对象占据了。这也和 MAT 工具自动帮我们分析的结果一致。 - -### 死锁 - -死锁会导致耗尽线程资源,占用内存,表现就是内存占用升高,CPU 不一定会飙升(看场景决定),如果是直接 new 线程,会导致 JVM 内存被耗尽,报无法创建线程的错误,这也是体现了使用线程池的好处。 - -```java - ExecutorService service = new ThreadPoolExecutor(4, 10, - 0, TimeUnit.SECONDS, new LinkedBlockingQueue(1024), - Executors.defaultThreadFactory(), - new ThreadPoolExecutor.AbortPolicy()); - /** - * 模拟死锁 - */ - @GetMapping("/cpu/test") - public String testCPU() throws InterruptedException { - System.out.println("请求cpu"); - Object lock1 = new Object(); - Object lock2 = new Object(); - service.submit(new DeadLockThread(lock1, lock2), "deadLookThread-" + new Random().nextInt()); - service.submit(new DeadLockThread(lock2, lock1), "deadLookThread-" + new Random().nextInt()); - return "ok"; - } - -public class DeadLockThread implements Runnable { - private Object lock1; - private Object lock2; - - public DeadLockThread1(Object lock1, Object lock2) { - this.lock1 = lock1; - this.lock2 = lock2; - } - - @Override - public void run() { - synchronized (lock2) { - System.out.println(Thread.currentThread().getName()+"get lock2 and wait lock1"); - try { - TimeUnit.MILLISECONDS.sleep(2000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - synchronized (lock1) { - System.out.println(Thread.currentThread().getName()+"get lock1 and lock2 "); - } - } - } -} -``` - -我们循环请求接口 2000 次,发现不一会系统就出现了日志错误,线程池和队列都满了,由于我选择的当队列满了就拒绝的策略,所以系统直接抛出异常。 - -``` -java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@2760298 rejected from java.util.concurrent.ThreadPoolExecutor@7ea7cd51[Running, pool size = 10, active threads = 10, queued tasks = 1024, completed tasks = 846] -``` - -通过`ps -ef|grep java`命令找出 Java 进程 pid,执行`jstack pid` 即可出现 java 线程堆栈信息,这里发现了 5 个死锁,我们只列出其中一个,很明显线程`pool-1-thread-2`锁住了`0x00000000f8387d88`等待`0x00000000f8387d98`锁,线程`pool-1-thread-1`锁住了`0x00000000f8387d98`等待锁`0x00000000f8387d88`,这就产生了死锁。 - -```JAVA -Java stack information for the threads listed above: -=================================================== -"pool-1-thread-2": - at top.luozhou.analysisdemo.controller.DeadLockThread2.run(DeadLockThread.java:30) - - waiting to lock <0x00000000f8387d98> (a java.lang.Object) - - locked <0x00000000f8387d88> (a java.lang.Object) - at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) - at java.util.concurrent.FutureTask.run(FutureTask.java:266) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) - at java.lang.Thread.run(Thread.java:748) -"pool-1-thread-1": - at top.luozhou.analysisdemo.controller.DeadLockThread1.run(DeadLockThread.java:30) - - waiting to lock <0x00000000f8387d88> (a java.lang.Object) - - locked <0x00000000f8387d98> (a java.lang.Object) - at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) - at java.util.concurrent.FutureTask.run(FutureTask.java:266) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) - at java.lang.Thread.run(Thread.java:748) - - Found 5 deadlocks. -``` - -### 线程频繁切换 - -上下文切换会导致将大量 CPU 时间浪费在寄存器、内核栈以及虚拟内存的保存和恢复上,导致系统整体性能下降。当你发现系统的性能出现明显的下降时候,需要考虑是否发生了大量的线程上下文切换。 - -```java - @GetMapping(value = "/thread/swap") - public String theadSwap(int num) { - System.out.println("模拟线程切换"); - for (int i = 0; i < num; i++) { - new Thread(new ThreadSwap1(new AtomicInteger(0)),"thread-swap"+i).start(); - } - return "ok"; - } -public class ThreadSwap1 implements Runnable { - private AtomicInteger integer; - - public ThreadSwap1(AtomicInteger integer) { - this.integer = integer; - } - - @Override - public void run() { - while (true) { - integer.addAndGet(1); - Thread.yield(); //让出CPU资源 - } - } -} -``` - -这里我创建多个线程去执行基础的原子+1 操作,然后让出 CPU 资源,理论上 CPU 就会去调度别的线程,我们请求接口创建 100 个线程看看效果如何,`curl localhost:8080/thread/swap?num=100`。接口请求成功后,我们执行 `vmstat 1 10`,表示每 1 秒打印一次,打印 10 次,线程切换采集结果如下: - -``` -procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- - r b swpd free buff cache si so bi bo in cs us sy id wa st -101 0 128000 878384 908 468684 0 0 0 0 4071 8110498 14 86 0 0 0 -100 0 128000 878384 908 468684 0 0 0 0 4065 8312463 15 85 0 0 0 -100 0 128000 878384 908 468684 0 0 0 0 4107 8207718 14 87 0 0 0 -100 0 128000 878384 908 468684 0 0 0 0 4083 8410174 14 86 0 0 0 -100 0 128000 878384 908 468684 0 0 0 0 4083 8264377 14 86 0 0 0 -100 0 128000 878384 908 468688 0 0 0 108 4182 8346826 14 86 0 0 0 -``` - -这里我们关注 4 个指标,`r`,`cs`,`us`,`sy`。 - -**r=100**,说明等待的进程数量是 100,线程有阻塞。 - -**cs=800 多万**,说明每秒上下文切换了 800 多万次,这个数字相当大了。 - -**us=14**,说明用户态占用了 14%的 CPU 时间片去处理逻辑。 - -**sy=86**,说明内核态占用了 86%的 CPU,这里明显就是做上下文切换工作了。 - -我们通过`top`命令以及`top -Hp pid`查看进程和线程 CPU 情况,发现 Java 进程 CPU 占满了,但是线程 CPU 使用情况很平均,没有某一个线程把 CPU 吃满的情况。 - -``` -PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND - 87093 root 20 0 4194788 299056 13252 S 399.7 16.1 65:34.67 java -``` - -``` - PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND - 87189 root 20 0 4194788 299056 13252 R 4.7 16.1 0:41.11 java - 87129 root 20 0 4194788 299056 13252 R 4.3 16.1 0:41.14 java - 87130 root 20 0 4194788 299056 13252 R 4.3 16.1 0:40.51 java - 87133 root 20 0 4194788 299056 13252 R 4.3 16.1 0:40.59 java - 87134 root 20 0 4194788 299056 13252 R 4.3 16.1 0:40.95 java -``` - -结合上面用户态 CPU 只使用了 14%,内核态 CPU 占用了 86%,可以基本判断是 Java 程序线程上下文切换导致性能问题。 - -我们使用`pidstat`命令来看看 Java 进程内部的线程切换数据,执行`pidstat -p 87093 -w 1 10`,采集数据如下: - -``` -11:04:30 PM UID TGID TID cswch/s nvcswch/s Command -11:04:30 PM 0 - 87128 0.00 16.07 |__java -11:04:30 PM 0 - 87129 0.00 15.60 |__java -11:04:30 PM 0 - 87130 0.00 15.54 |__java -11:04:30 PM 0 - 87131 0.00 15.60 |__java -11:04:30 PM 0 - 87132 0.00 15.43 |__java -11:04:30 PM 0 - 87133 0.00 16.02 |__java -11:04:30 PM 0 - 87134 0.00 15.66 |__java -11:04:30 PM 0 - 87135 0.00 15.23 |__java -11:04:30 PM 0 - 87136 0.00 15.33 |__java -11:04:30 PM 0 - 87137 0.00 16.04 |__java -``` - -根据上面采集的信息,我们知道 Java 的线程每秒切换 15 次左右,正常情况下,应该是个位数或者小数。结合这些信息我们可以断定 Java 线程开启过多,导致频繁上下文切换,从而影响了整体性能。 - -**为什么系统的上下文切换是每秒 800 多万,而 Java 进程中的某一个线程切换才 15 次左右?** - -系统上下文切换分为三种情况: - -1、多任务:在多任务环境中,一个进程被切换出 CPU,运行另外一个进程,这里会发生上下文切换。 - -2、中断处理:发生中断时,硬件会切换上下文。在 vmstat 命令中是`in` - -3、用户和内核模式切换:当操作系统中需要在用户模式和内核模式之间进行转换时,需要进行上下文切换,比如进行系统函数调用。 - -Linux 为每个 CPU 维护了一个就绪队列,将活跃进程按照优先级和等待 CPU 的时间排序,然后选择最需要 CPU 的进程,也就是优先级最高和等待 CPU 时间最长的进程来运行。也就是 vmstat 命令中的`r`。 - -那么,进程在什么时候才会被调度到 CPU 上运行呢? - -- 进程执行完终止了,它之前使用的 CPU 会释放出来,这时再从就绪队列中拿一个新的进程来运行 -- 为了保证所有进程可以得到公平调度,CPU 时间被划分为一段段的时间片,这些时间片被轮流分配给各个进程。当某个进程时间片耗尽了就会被系统挂起,切换到其它等待 CPU 的进程运行。 -- 进程在系统资源不足时,要等待资源满足后才可以运行,这时进程也会被挂起,并由系统调度其它进程运行。 -- 当进程通过睡眠函数 sleep 主动挂起时,也会重新调度。 -- 当有优先级更高的进程运行时,为了保证高优先级进程的运行,当前进程会被挂起,由高优先级进程来运行。 -- 发生硬件中断时,CPU 上的进程会被中断挂起,转而执行内核中的中断服务程序。 - -结合我们之前的内容分析,阻塞的就绪队列是 100 左右,而我们的 CPU 只有 4 核,这部分原因造成的上下文切换就可能会相当高,再加上中断次数是 4000 左右和系统的函数调用等,整个系统的上下文切换到 800 万也不足为奇了。Java 内部的线程切换才 15 次,是因为线程使用`Thread.yield()`来让出 CPU 资源,但是 CPU 有可能继续调度该线程,这个时候线程之间并没有切换,这也是为什么内部的某个线程切换次数并不是非常大的原因。 - -## 总结 - -本文模拟了常见的性能问题场景,分析了如何定位 CPU100%、内存泄漏、死锁、线程频繁切换问题。分析问题我们需要做好两件事,第一,掌握基本的原理,第二,借助好工具。本文也列举了分析问题的常用工具和命令,希望对你解决问题有所帮助。当然真正的线上环境可能十分复杂,并没有模拟的环境那么简单,但是原理是一样的,问题的表现也是类似的,我们重点抓住原理,活学活用,相信复杂的线上问题也可以顺利解决。 - -## 参考 - -1、https://linux.die.net/man/1/pidstat - -2、https://linux.die.net/man/8/vmstat - -3、https://help.eclipse.org/2020-03/index.jsp?topic=/org.eclipse.mat.ui.help/welcome.html - -4、https://www.linuxblogs.cn/articles/18120200.html - -5、https://www.tutorialspoint.com/what-is-context-switching-in-operating-system \ No newline at end of file diff --git a/docs/system-design/basis/naming.md b/docs/system-design/basis/naming.md index 66f33345..d9574e56 100644 --- a/docs/system-design/basis/naming.md +++ b/docs/system-design/basis/naming.md @@ -222,11 +222,11 @@ Codelf 提供了在线网站版本,网址:[https://unbug.github.io/codelf/]( 我选择了 Java 编程语言,然后搜索了“序列化”这个关键词,然后它就返回了很多关于序列化的命名。 -![](pictures/Codelf.png) +![](./pictures/Codelf.png) 并且,Codelf 还提供了 VS code 插件,看这个评价,看来大家还是很喜欢这款命名工具的。 -![](pictures/vscode-codelf.png) +![](./pictures/vscode-codelf.png) ## 相关阅读推荐 diff --git a/docs/system-design/framework/spring/spring-common-annotations.md b/docs/system-design/framework/spring/spring-common-annotations.md index 883ba1b7..496f0322 100644 --- a/docs/system-design/framework/spring/spring-common-annotations.md +++ b/docs/system-design/framework/spring/spring-common-annotations.md @@ -274,7 +274,7 @@ public class UserRegisterRequest { 这样我们的后端就可以直接把 json 格式的数据映射到我们的 `UserRegisterRequest` 类上。 -![](images/spring-annotations/@RequestBody.png) +![](./images/spring-annotations/@RequestBody.png) 👉 需要注意的是:**一个请求方法只可以有一个`@RequestBody`,但是可以有多个`@RequestParam`和`@PathVariable`**。 如果你的方法必须要用两个 `@RequestBody`来接受数据的话,大概率是你的数据库设计或者系统设计出问题了! diff --git a/docs/system-design/framework/spring/spring-transaction.md b/docs/system-design/framework/spring/spring-transaction.md index 77b63461..4be94772 100644 --- a/docs/system-design/framework/spring/spring-transaction.md +++ b/docs/system-design/framework/spring/spring-transaction.md @@ -60,7 +60,7 @@ public class OrdersService { ## 2. 事务的特性(ACID)了解么? -![](images/spring-transaction/bda7231b-ab05-4e23-95ee-89ac90ac7fcf.png) +![](./images/spring-transaction/bda7231b-ab05-4e23-95ee-89ac90ac7fcf.png) - **原子性(Atomicity):** 一个事务(transaction)中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。即,事务不可分割、不可约简。 - **一致性(Consistency):** 在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设约束、触发器、级联回滚等。 @@ -162,7 +162,7 @@ Spring 框架中,事务管理相关最重要的 3 个接口如下: **`PlatformTransactionManager` 接口的具体实现如下:** -![](images/spring-transaction/ae964c2c-7289-441c-bddd-511161f51ee1.png) +![](./images/spring-transaction/ae964c2c-7289-441c-bddd-511161f51ee1.png) `PlatformTransactionManager`接口中定义了三个方法: @@ -186,7 +186,7 @@ public interface PlatformTransactionManager { 主要是因为要将事务管理行为抽象出来,然后不同的平台去实现它,这样我们可以保证提供给外部的行为不变,方便我们扩展。我前段时间分享过:**“为什么我们要用接口?”** -![](images/spring-transaction/接口使用原因.png) +![](./images/spring-transaction/接口使用原因.png) #### 3.2.2. TransactionDefinition:事务属性 @@ -198,7 +198,7 @@ public interface PlatformTransactionManager { 事务属性包含了 5 个方面: -![](images/spring-transaction/a616b84d-9eea-4ad1-b4fc-461ff05e951d.png) +![](./images/spring-transaction/a616b84d-9eea-4ad1-b4fc-461ff05e951d.png) `TransactionDefinition` 接口中定义了 5 个方法以及一些表示事务属性的常量比如隔离级别、传播行为等等。 @@ -556,7 +556,7 @@ public interface TransactionDefinition { 这些规则定义了哪些异常会导致事务回滚而哪些不会。默认情况下,事务只有遇到运行期异常(RuntimeException 的子类)时才会回滚,Error 也会导致事务回滚,但是,在遇到检查型(Checked)异常时不会回滚。 -![](images/spring-transaction/f6c6f0aa-0f26-49e1-84b3-7f838c7379d1.png) +![](./images/spring-transaction/f6c6f0aa-0f26-49e1-84b3-7f838c7379d1.png) 如果你想要回滚你定义的特定的异常类型的话,可以这样: diff --git a/docs/system-design/定时任务.md b/docs/system-design/schedule-task.md similarity index 100% rename from docs/system-design/定时任务.md rename to docs/system-design/schedule-task.md diff --git a/docs/tools/git/git-intro.md b/docs/tools/git/git-intro.md index 43503cf0..8b9646f9 100644 --- a/docs/tools/git/git-intro.md +++ b/docs/tools/git/git-intro.md @@ -66,10 +66,7 @@ Linux 内核项目组当时使用分布式版本控制系统 BitKeeper 来管理 具体原理如下图所示,理解起来其实很简单,每当我们提交更新一个文件之后,系统都会记录这个文件做了哪些更新,以增量符号Δ(Delta)表示。 -

+![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-3deltas.png) **我们怎样才能得到一个文件的最终版本呢?** @@ -81,11 +78,7 @@ Linux 内核项目组当时使用分布式版本控制系统 BitKeeper 来管理 Git 不按照以上方式对待或保存数据。 反之,Git 更像是把数据看作是对小型文件系统的一组快照。 每次你提交更新,或在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。 为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。 Git 对待数据更像是一个 **快照流**。 -
- -
-
- +![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-3snapshots.png) ### Git 的三种状态 @@ -97,9 +90,8 @@ Git 有三种状态,你的文件可能处于其中之一: 由此引入 Git 项目的三个工作区域的概念:**Git 仓库(.git directory)**、**工作目录(Working Directory)** 以及 **暂存区域(Staging Area)** 。 -
- -
+![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-3areas.png) + **基本的 Git 工作流程如下:** @@ -207,9 +199,8 @@ git branch test git checkout test ``` -
- -
+![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-3切换分支.png) + 你也可以直接这样创建分支并切换过去(上面两条命令的合写) diff --git a/package.json b/package.json index d67933d5..cf4d9e22 100644 --- a/package.json +++ b/package.json @@ -1,18 +1,27 @@ { - "name": "javaguide-blog", - "version": "1.0.0", - "description": "A project of vuepress-theme-hope", + "name": "javaguide", + "version": "2.0.0-alpha.40", + "private": true, + "description": "javaguide", "license": "MIT", + "author": "Mr.Hope", "scripts": { - "build": "vuepress build docs", - "clean-dev": "vuepress dev docs --no-cache", - "dev": "vuepress dev docs", - "eject-theme": "vuepress eject-hope docs" + "vite-build": "vuepress-vite build docs", + "vite-clean-serve": "vuepress-vite dev docs --clean-cache", + "vite-serve": "vuepress-vite dev docs", + "webpack-build": "vuepress-webpack build docs", + "webpack-clean-serve": "vuepress-webpack dev docs --clean-cache", + "webpack-serve": "vuepress-webpack dev docs" }, "devDependencies": { - "compression-webpack-plugin": "^5.0.0", - "vuepress": "^1.8.2", - "vuepress-theme-hope": "^1.20.5" - }, - "dependencies": {} + "@vuepress/plugin-docsearch": "2.0.0-beta.36", + "@vuepress/plugin-pwa": "2.0.0-beta.36", + "@vuepress/plugin-pwa-popup": "2.0.0-beta.36", + "@vuepress/plugin-register-components": "2.0.0-beta.36", + "@vuepress/plugin-shiki": "2.0.0-beta.36", + "cross-env": "7.0.3", + "vuepress-theme-hope": "2.0.0-alpha.40", + "vuepress-vite": "2.0.0-beta.36", + "vuepress-webpack": "2.0.0-beta.36" + } } From 4c717dcc30737b7c4eb5b9af5207c0b9d12f13a2 Mon Sep 17 00:00:00 2001 From: guide Date: Thu, 3 Mar 2022 09:25:26 +0800 Subject: [PATCH 63/66] =?UTF-8?q?[docs=20feat]=E5=9B=BE=E6=A0=87=E5=BA=93?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/.vuepress/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/.vuepress/config.ts b/docs/.vuepress/config.ts index a182c8f6..e6a44376 100644 --- a/docs/.vuepress/config.ts +++ b/docs/.vuepress/config.ts @@ -42,7 +42,7 @@ module.exports = defineHopeConfig({ "link", { rel: "stylesheet", - href: "//at.alicdn.com/t/font_2922463_zpzjti5jsah.css", + href: "//at.alicdn.com/t/font_2922463_lu595twe5t.css", }, ], ], From ba6158131081878f8403872c52201c8b8e394cd9 Mon Sep 17 00:00:00 2001 From: guide Date: Thu, 3 Mar 2022 11:13:04 +0800 Subject: [PATCH 64/66] Update themeConfig.ts --- docs/.vuepress/themeConfig.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/.vuepress/themeConfig.ts b/docs/.vuepress/themeConfig.ts index 4d6ffa96..e4b26aec 100644 --- a/docs/.vuepress/themeConfig.ts +++ b/docs/.vuepress/themeConfig.ts @@ -34,6 +34,15 @@ export default defineThemeConfig({ plugins: ["highlight", "math", "search", "notes", "zoom"], }, }, + feed: { + rss: true, + json:true + }, + // docsearch: { + // appId: "", + // apiKey: "", + // indexName: "", + // }, pwa: { favicon: "/favicon.ico", cachePic: false, From dbacbad5562e67c23a2a250ed10fa8d2beacbba4 Mon Sep 17 00:00:00 2001 From: guide Date: Thu, 3 Mar 2022 15:12:23 +0800 Subject: [PATCH 65/66] =?UTF-8?q?[docs=20update]=20java=209=E6=96=B0?= =?UTF-8?q?=E7=89=B9=E6=80=A7=E9=83=A8=E5=88=86=E5=86=85=E5=AE=B9=E5=AE=8C?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- docs/.vuepress/themeConfig.ts | 4 ---- docs/java/new-features/java9.md | 22 +++++++++++++++++++--- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 3436385e..7dd9fcd6 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ > [JavaGuide 官方知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)来啦!!!如果你需要专属面试小册/一对一交流/简历修改/专属求职指南/学习打卡,不妨花 3 分钟左右看看星球的详细介绍: [JavaGuide 知识星球详细介绍](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc) (一定要确定自己真的需要再加入,一定要看完详细介绍之后再加我)。 -
+

diff --git a/docs/.vuepress/themeConfig.ts b/docs/.vuepress/themeConfig.ts index e4b26aec..3da19d92 100644 --- a/docs/.vuepress/themeConfig.ts +++ b/docs/.vuepress/themeConfig.ts @@ -34,10 +34,6 @@ export default defineThemeConfig({ plugins: ["highlight", "math", "search", "notes", "zoom"], }, }, - feed: { - rss: true, - json:true - }, // docsearch: { // appId: "", // apiKey: "", diff --git a/docs/java/new-features/java9.md b/docs/java/new-features/java9.md index d2409c20..3e168533 100644 --- a/docs/java/new-features/java9.md +++ b/docs/java/new-features/java9.md @@ -9,6 +9,14 @@ tag: 你可以在 [Archived OpenJDK General-Availability Releases](http://jdk.java.net/archive/) 上下载自己需要的 JDK 版本!官方的新特性说明文档地址: https://openjdk.java.net/projects/jdk/ 。 +**概览(精选了一部分)** : + +- [JEP 222: Java 命令行工具](https://openjdk.java.net/jeps/222) +- [JEP 261: 模块化系统](https://openjdk.java.net/jeps/261) +- [JEP 248:G1 成为默认垃圾回收器](https://openjdk.java.net/jeps/248) +- [JEP 193: 变量句柄](https://openjdk.java.net/jeps/193) +- [JEP 254:字符串存储结构优化](https://openjdk.java.net/jeps/254) + ## JShell JShell 是 Java 9 新增的一个实用工具。为 Java 提供了类似于 Python 的实时命令行交互工具。 @@ -30,9 +38,9 @@ JShell 是 Java 9 新增的一个实用工具。为 Java 提供了类似于 Pyth 3. JShell 支持独立的表达式比如普通的加法运算 `1 + 1`。 4. ...... -## Java 平台模块系统 +## 模块化系统 -Java 平台模块系统是[Jigsaw Project](https://openjdk.java.net/projects/jigsaw/)的一部分,把模块化开发实践引入到了 Java 平台中,可以让我们的代码可重用性更好! +模块系统是[Jigsaw Project](https://openjdk.java.net/projects/jigsaw/)的一部分,把模块化开发实践引入到了 Java 平台中,可以让我们的代码可重用性更好! **什么是模块系统?** 官方的定义是: @@ -44,7 +52,7 @@ Java 平台模块系统是[Jigsaw Project](https://openjdk.java.net/projects/jig ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/java-guide-blog/module-structure.png) -在引入了模块系统之后,JDK 被重新组织成 94 个模块。Java 应用可以通过新增的 **[jlink](http://openjdk.java.net/jeps/282) 工具** (Java 的新命令行工具),创建出只包含所依赖的 JDK 模块的自定义运行时镜像。这样可以极大的减少 Java 运行时环境的大小。 +在引入了模块系统之后,JDK 被重新组织成 94 个模块。Java 应用可以通过新增的 **[jlink](http://openjdk.java.net/jeps/282) 工具** (Jlink 是随 Java 9 一起发布的新命令行工具。它允许开发人员为基于模块的 Java 应用程序创建自己的轻量级、定制的 JRE),创建出只包含所依赖的 JDK 模块的自定义运行时镜像。这样可以极大的减少 Java 运行时环境的大小。 我们可以通过 `exports` 关键词精准控制哪些类可以对外开放使用,哪些类只能内部使用。 @@ -66,6 +74,13 @@ module my.module { - [《Java 9 Modules: part 1》](https://stacktraceguru.com/java9/module-introduction) - [[Java 9 揭秘(2. 模块化系统)](https://www.cnblogs.com/IcanFixIt/p/6947763.html)](http://www.cnblogs.com/IcanFixIt/p/6947763.html) +## G1 成为默认垃圾回收器 + +在 Java 8 的时候,默认垃圾回收器是 Parallel Scavenge(新生代)+Parallel Old(老年代)。到了 Java 9, CMS 垃圾回收器被废弃了,**G1(Garbage-First Garbage Collector)** 成为了默认垃圾回收器。 + +G1 还是在 Java 7 中被引入的,经过两个版本优异的表现成为成为默认垃圾回收器。 + + ## 快速创建不可变集合 增加了`List.of()`、`Set.of()`、`Map.of()` 和 `Map.ofEntries()`等工厂方法来创建不可变集合(有点参考 Guava 的味道): @@ -238,6 +253,7 @@ System.out.println(currentProcess.info()); ## 参考 +- Java version history:https://en.wikipedia.org/wiki/Java_version_history - Release Notes for JDK 9 and JDK 9 Update Releases : https://www.oracle.com/java/technologies/javase/9-all-relnotes.html - 《深入剖析 Java 新特性》-极客时间 - JShell:怎么快速验证简单的小问题? - New Features in Java 9:https://www.baeldung.com/new-java-9 From b44ec42cb5aadd87ae1b05b8b5bdfbfb20516257 Mon Sep 17 00:00:00 2001 From: guide Date: Thu, 3 Mar 2022 15:35:16 +0800 Subject: [PATCH 66/66] =?UTF-8?q?[docs=20update]=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F-=E6=AD=BB=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operating-system-basic-questions-01.md | 100 +++++++----------- 1 file changed, 40 insertions(+), 60 deletions(-) diff --git a/docs/cs-basics/operating-system/operating-system-basic-questions-01.md b/docs/cs-basics/operating-system/operating-system-basic-questions-01.md index 834909c4..4d4c96c5 100644 --- a/docs/cs-basics/operating-system/operating-system-basic-questions-01.md +++ b/docs/cs-basics/operating-system/operating-system-basic-questions-01.md @@ -5,17 +5,15 @@ tag: - 操作系统 --- -大家好,我是 Guide 哥! - 很多读者抱怨计算操作系统的知识点比较繁杂,自己也没有多少耐心去看,但是面试的时候又经常会遇到。所以,我带着我整理好的操作系统的常见问题来啦!这篇文章总结了一些我觉得比较重要的操作系统相关的问题比如**进程管理**、**内存管理**、**虚拟内存**等等。 -文章形式通过大部分比较喜欢的面试官和求职者之间的对话形式展开。另外,Guide哥 也只是在大学的时候学习过操作系统,不过基本都忘了,为了写这篇文章这段时间看了很多相关的书籍和博客。如果文中有任何需要补充和完善的地方,你都可以在 issue 中指出! +文章形式通过大部分比较喜欢的面试官和求职者之间的对话形式展开。另外,Guide 哥 也只是在大学的时候学习过操作系统,不过基本都忘了,为了写这篇文章这段时间看了很多相关的书籍和博客。如果文中有任何需要补充和完善的地方,你都可以在 issue 中指出! 这篇文章只是对一些操作系统比较重要概念的一个概览,深入学习的话,建议大家还是老老实实地去看书。另外, 这篇文章的很多内容参考了《现代操作系统》第三版这本书,非常感谢。 开始本文的内容之前,我们先聊聊为什么要学习操作系统。 -- **从对个人能力方面提升来说** :操作系统中的很多思想、很多经典的算法,你都可以在我们日常开发使用的各种工具或者框架中找到它们的影子。比如说我们开发的系统使用的缓存(比如 Redis)和操作系统的高速缓存就很像。CPU 中的高速缓存有很多种,不过大部分都是为了解决 CPU 处理速度和内存处理速度不对等的问题。我们还可以把内存看作外存的高速缓存,程序运行的时候我们把外存的数据复制到内存,由于内存的处理速度远远高于外存,这样提高了处理速度。同样地,我们使用的 Redis 缓存就是为了解决程序处理速度和访问常规关系型数据库速度不对等的问题。高速缓存一般会按照局部性原理(2-8 原则)根据相应的淘汰算法保证缓存中的数据是经常会被访问的。我们平常使用的 Redis 缓存很多时候也会按照 2-8 原则去做,很多淘汰算法都和操作系统中的类似。既说了 2-8 原则,那就不得不提命中率了,这是所有缓存概念都通用的。简单来说也就是你要访问的数据有多少能直接在缓存中直接找到。命中率高的话,一般表明你的缓存设计比较合理,系统处理速度也相对较快。 +- **从对个人能力方面提升来说** :操作系统中的很多思想、很多经典的算法,你都可以在我们日常开发使用的各种工具或者框架中找到它们的影子。比如说我们开发的系统使用的缓存(比如 Redis)和操作系统的高速缓存就很像。CPU 中的高速缓存有很多种,不过大部分都是为了解决 CPU 处理速度和内存处理速度不对等的问题。我们还可以把内存看作外存的高速缓存,程序运行的时候我们把外存的数据复制到内存,由于内存的处理速度远远高于外存,这样提高了处理速度。同样地,我们使用的 Redis 缓存就是为了解决程序处理速度和访问常规关系型数据库速度不对等的问题。高速缓存一般会按照局部性原理(2-8 原则)根据相应的淘汰算法保证缓存中的数据是经常会被访问的。我们平常使用的 Redis 缓存很多时候也会按照 2-8 原则去做,很多淘汰算法都和操作系统中的类似。既说了 2-8 原则,那就不得不提命中率了,这是所有缓存概念都通用的。简单来说也就是你要访问的数据有多少能直接在缓存中直接找到。命中率高的话,一般表明你的缓存设计比较合理,系统处理速度也相对较快。 - **从面试角度来说** :尤其是校招,对于操作系统方面知识的考察是非常非常多的。 **简单来说,学习操作系统能够提高自己思考的深度以及对技术的理解力,并且,操作系统方面的知识也是面试必备。** @@ -33,7 +31,7 @@ tag: 🙋 **我** :我通过以下四点向您介绍一下什么是操作系统吧! 1. **操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石。** -2. **操作系统本质上是一个运行在计算机上的软件程序 ,用于管理计算机硬件和软件资源。** 举例:运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件。 +2. **操作系统本质上是一个运行在计算机上的软件程序 ,用于管理计算机硬件和软件资源。** 举例:运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件。 3. **操作系统存在屏蔽了硬件层的复杂性。** 操作系统就像是硬件使用的负责人,统筹着各种相关事项。 4. **操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理**。 内核是连接应用程序和硬件的桥梁,决定着系统的性能和稳定性。 @@ -149,14 +147,12 @@ tag: - **互斥**:资源必须处于非共享模式,即一次只有一个进程可以使用。如果另一进程申请该资源,那么必须等待直到该资源被释放为止。 - **占有并等待**:一个进程至少应该占有一个资源,并等待另一资源,而该资源被其他进程所占有。 - **非抢占**:资源不能被抢占。只能在持有资源的进程完成任务后,该资源才会被释放。 -- **循环等待**:有一组等待进程 `{P0, P1,..., Pn}`, `P0` 等待的资源被 `P1` 占有,`P1` 等待的资源被 `P2` 占有,......,`Pn-1` 等待的资源被 `Pn` 占有,`Pn` 等待的资源被 `P0` 占有。 +- **循环等待**:有一组等待进程 `{P0, P1,..., Pn}`, `P0` 等待的资源被 `P1` 占有,`P1` 等待的资源被 `P2` 占有,......,`Pn-1` 等待的资源被 `Pn` 占有,`Pn` 等待的资源被 `P0` 占有。 注意,只有四个条件同时成立时,死锁才会出现。 ### 2.8 解决死锁的方法 -#### 那么解决死锁的方法是什么呢? - 解决死锁的方法可以从多个角度去分析,一般的情况下,有**预防,避免,检测和解除四种**。 - **预防** 是采用某种策略,**限制并发进程对资源的请求**,从而使得死锁的必要条件在系统执行的任何时间上都不满足。 @@ -168,77 +164,74 @@ tag: #### 死锁的预防 -死锁四大必要条件上面都已经列出来了,很显然,`只要破坏四个必要条件中的任何一个就能够预防死锁的发生`。 +死锁四大必要条件上面都已经列出来了,很显然,只要破坏四个必要条件中的任何一个就能够预防死锁的发生。 -破坏第一个条件 **互斥条件**:使得资源是可以同时访问的,这是种简单的方法,磁盘就可以用这种方法管理,但是我们要知道,有很多资源**往往是不能同时访问的**,所以这种做法在大多数的场合是行不通的。 +破坏第一个条件 **互斥条件**:使得资源是可以同时访问的,这是种简单的方法,磁盘就可以用这种方法管理,但是我们要知道,有很多资源 **往往是不能同时访问的** ,所以这种做法在大多数的场合是行不通的。 -破坏第三个条件**非抢占**:也就是说可以采用**剥夺式**调度算法,但剥夺调度方法目前一般仅适用于**主存资源**和**处理器资源**的分配,并不适用于所以的资源,会导致**资源利用率下降**。 +破坏第三个条件 **非抢占** :也就是说可以采用 **剥夺式调度算法**,但剥夺式调度方法目前一般仅适用于 **主存资源** 和 **处理器资源** 的分配,并不适用于所以的资源,会导致 **资源利用率下降**。 -所以一般比较实用的**预防死锁的方法**,是通过考虑破坏第二个条件和第四个条件。 +所以一般比较实用的 **预防死锁的方法**,是通过考虑破坏第二个条件和第四个条件。 -- **静态分配策略**:所谓静态分配策略,就是指一个进程必须在执行前就申请到**它所需要的全部资源**,并且知道它所要的资源都得到满足之后才开始执行。这种做法破坏了死锁产生的第二个条件**占有并等待**,进程要么占有所有的资源然后开始执行,要么不占有资源,不会出现占有一些资源等待一些资源的情况。 - 静态分配策略逻辑简单,实现也很容易,但这种策略**严重地降低了资源利用率**,因为在每个进程所占有的资源中,有些资源是在比较靠后的执行时间里采用的,甚至有些资源是在**额外的情况**下才是用的,这样就可能造成了一个进程占有了一些**几乎不用的资源而使其他需要该资源的进程产生等待**的情况。 +**1、静态分配策略** -- **层次分配策略**:层次分配策略破坏了产生死锁的第四个条件(**循环等待**)。在层次分配策略下,所有的资源被分成了多个层次,一个进程得到某一次的一个资源后,**它只能再申请较高一层的资源**;当一个进程要释放某层的一个资源时,必须先释放所占用的**较高层的资源**,按这种策略,是不可能出现**循环等待链的**,因为那样的话,就出现了已经申请了较高层的资源,反而去申请了较低层的资源,不符合**层次分配策略**,证明略。 +静态分配策略可以破坏死锁产生的第二个条件(占有并等待)。所谓静态分配策略,就是指一个进程必须在执行前就申请到它所需要的全部资源,并且知道它所要的资源都得到满足之后才开始执行。进程要么占有所有的资源然后开始执行,要么不占有资源,不会出现占有一些资源等待一些资源的情况。 + +静态分配策略逻辑简单,实现也很容易,但这种策略 **严重地降低了资源利用率**,因为在每个进程所占有的资源中,有些资源是在比较靠后的执行时间里采用的,甚至有些资源是在额外的情况下才是用的,这样就可能造成了一个进程占有了一些 **几乎不用的资源而使其他需要该资源的进程产生等待** 的情况。 + +**2、层次分配策略** + +层次分配策略破坏了产生死锁的第四个条件(循环等待)。在层次分配策略下,所有的资源被分成了多个层次,一个进程得到某一次的一个资源后,它只能再申请较高一层的资源;当一个进程要释放某层的一个资源时,必须先释放所占用的较高层的资源,按这种策略,是不可能出现循环等待链的,因为那样的话,就出现了已经申请了较高层的资源,反而去申请了较低层的资源,不符合层次分配策略,证明略。 #### 死锁的避免 -上面提到的**破坏**死锁产生的四个必要条件之一就可以成功**预防系统发生死锁**,但是会导致**低效的进程运行**和**资源使用率**。而死锁的避免相反,它的角度是允许系统中**同时存在四个必要条件**,只要掌握并发进程中与每个进程有关的资源动态申请情况,做出**明智和合理的选择**,仍然可以避免死锁,因为四大条件仅仅是产生死锁的必要条件。 +上面提到的 **破坏** 死锁产生的四个必要条件之一就可以成功 **预防系统发生死锁** ,但是会导致 **低效的进程运行** 和 **资源使用率** 。而死锁的避免相反,它的角度是允许系统中**同时存在四个必要条件** ,只要掌握并发进程中与每个进程有关的资源动态申请情况,做出 **明智和合理的选择** ,仍然可以避免死锁,因为四大条件仅仅是产生死锁的必要条件。 -我们将系统的状态分为**安全状态**和**不安全状态**,每当在未申请者分配资源前先测试系统状态,若把系统资源分配给申请者会产生死锁,则拒绝分配,否则接受申请,并为它分配资源。 +我们将系统的状态分为 **安全状态** 和 **不安全状态** ,每当在未申请者分配资源前先测试系统状态,若把系统资源分配给申请者会产生死锁,则拒绝分配,否则接受申请,并为它分配资源。 -`安全状态`:如果操作系统能够保证**所有的进程在有限的时间内得到需要的全部资源**,则称系统处于安全状态,否则说系统是不安全的。很显然,`系统处于安全状态则不会发生死锁,系统若处于不安全状态则可能发生死锁`。 +> 如果操作系统能够保证所有的进程在有限的时间内得到需要的全部资源,则称系统处于安全状态,否则说系统是不安全的。很显然,系统处于安全状态则不会发生死锁,系统若处于不安全状态则可能发生死锁。 -那么如何保证系统保持在安全状态呢?通过算法,其中最具有代表性的**避免死锁算法**就是Dijkstra的银行家算法,银行家算法用一句话表达就是,“当一个进程申请使用资源的时候,**银行家算法**通过先**试探**分配给该进程资源,然后通过**安全性算法**判断分配后系统是否处于安全状态,若不安全则试探分配作废,让该进程继续等待,若能够进入到安全的状态,则就**真的分配资源给该进程**”。 +那么如何保证系统保持在安全状态呢?通过算法,其中最具有代表性的 **避免死锁算法** 就是 Dijkstra 的银行家算法,银行家算法用一句话表达就是:当一个进程申请使用资源的时候,**银行家算法** 通过先 **试探** 分配给该进程资源,然后通过 **安全性算法** 判断分配后系统是否处于安全状态,若不安全则试探分配作废,让该进程继续等待,若能够进入到安全的状态,则就 **真的分配资源给该进程**。 -银行家算法详情可见[(41条消息) 一句话+一张图说清楚——银行家算法_土豆洋芋山药蛋的博客-CSDN博客_银行家算法](https://blog.csdn.net/qq_33414271/article/details/80245715) +银行家算法详情可见:[《一句话+一张图说清楚——银行家算法》](https://blog.csdn.net/qq_33414271/article/details/80245715) 。 操作系统教程树中讲述的银行家算法也比较清晰,可以一看. -死锁的避免(银行家算法)改善解决了**资源使用率低的问题**,但是它要不断地检测每个进程对各类资源的占用和申请情况,以及做**安全性检查**,需要花费较多的时间。 +死锁的避免(银行家算法)改善解决了 **资源使用率低的问题** ,但是它要不断地检测每个进程对各类资源的占用和申请情况,以及做 **安全性检查** ,需要花费较多的时间。 #### 死锁的检测 -对资源的分配加以限制可以**预防和避免**死锁的发生,但是都不利于各进程对系统资源的**充分共享**。解决死锁问题的另一条途径是**死锁检测和解除**(这里突然联想到了乐观锁和悲观锁,感觉死锁的检测和解除就像是**乐观锁**,分配资源时不去提前管会不会发生死锁了,等到真的死锁出现了再来解决嘛,而**死锁的预防和避免**更像是悲观锁,总是觉得死锁会出现,所以在分配资源的时候就很谨慎)。 +对资源的分配加以限制可以 **预防和避免** 死锁的发生,但是都不利于各进程对系统资源的**充分共享**。解决死锁问题的另一条途径是 **死锁检测和解除** (这里突然联想到了乐观锁和悲观锁,感觉死锁的检测和解除就像是 **乐观锁** ,分配资源时不去提前管会不会发生死锁了,等到真的死锁出现了再来解决嘛,而 **死锁的预防和避免** 更像是悲观锁,总是觉得死锁会出现,所以在分配资源的时候就很谨慎)。 -这种方法对资源的分配不加以任何限制,也不采取死锁避免措施,但系统**定时地运行一个 “死锁检测”**的程序,判断系统内是否出现死锁,如果检测到系统发生了死锁,再采取措施去解除它。 +这种方法对资源的分配不加以任何限制,也不采取死锁避免措施,但系统 **定时地运行一个 “死锁检测”** 的程序,判断系统内是否出现死锁,如果检测到系统发生了死锁,再采取措施去解除它。 ##### 进程-资源分配图 操作系统中的每一刻时刻的**系统状态**都可以用**进程-资源分配图**来表示,进程-资源分配图是描述进程和资源申请及分配关系的一种有向图,可用于**检测系统是否处于死锁状态**。 -用一个方框表示每一个资源类,方框中的黑点表示该资源类中的各个资源,每个键进程用一个圆圈表示,用**有向边**来表示**进程申请资源和资源被分配的情况**。约定$P_{i} \rightarrow R_{j}$为请求边,表示线程$P_{i}$申请资源类$R_{j}$中的一个资源**得不到满足**而处于等待$R_{j}$类资源的状态,该有向边从进程开始指到方框的边缘,表示进程$P_{i}$申请$R_{j}$类中的一个资源。反之,$R_{j}\rightarrow P_{i}$为**分配边**,表示R的一个资源分配给了P。 +用一个方框表示每一个资源类,方框中的黑点表示该资源类中的各个资源,每个键进程用一个圆圈表示,用 **有向边** 来表示**进程申请资源和资源被分配的情况**。 -图中2-21是**进程-资源分配图**的一个例子,其中公有三个资源类,每个进程的资源占有和申请情况已清楚地表示在图中。在这个例子中,由于存在**占有和等待资源的环路**,导致一组进程永远处于等待资源的状态,**发生了死锁**。 +图中 2-21 是**进程-资源分配图**的一个例子,其中共有三个资源类,每个进程的资源占有和申请情况已清楚地表示在图中。在这个例子中,由于存在 **占有和等待资源的环路** ,导致一组进程永远处于等待资源的状态,发生了 **死锁**。 - +![进程-资源分配图](./images/进程-资源分配图.jpg) +进程-资源分配图中存在环路并不一定是发生了死锁。因为循环等待资源仅仅是死锁发生的必要条件,而不是充分条件。图 2-22 便是一个有环路而无死锁的例子。虽然进程 P1 和进程 P3 分别占用了一个资源 R1 和一个资源 R2,并且因为等待另一个资源 R2 和另一个资源 R1 形成了环路,但进程 P2 和进程 P4 分别占有了一个资源 R1 和一个资源 R2,它们申请的资源得到了满足,在有限的时间里会归还资源,于是进程 P1 或 P3 都能获得另一个所需的资源,环路自动解除,系统也就不存在死锁状态了。 -进程-资源分配图中存在环路**并不一定是**发生了死锁。因为循环等待资源仅仅是死锁发生的必要条件,而不是充分条件。图2-22便是一个有环路而无死锁的例子。虽然进程P1和进程P3分别占用了一个资源R1和一个资源R2,并且因为等待另一个资源R2和另一个资源R1形成了环路,但进程P2和进程P4分别占有了一个资源R1和一个资源R2,它们申请的资源得到了满足,在有限的时间里会归还资源,于是进程P1或P3都能获得另一个所需的资源,环路自动解除,系统也就不存在死锁状态了。 +##### 死锁检测步骤 -##### 死锁检测步骤: +知道了死锁检测的原理,我们可以利用下列步骤编写一个 **死锁检测** 程序,检测系统是否产生了死锁。 -知道了死锁检测的原理,我们可以利用下列步骤编写一个**死锁检测**程序,检测系统是否产生了死锁。 - -1) 如果进程-资源分配图中无环路,则此时系统没有发生死锁 -2) 如果进程-资源分配图中有环路,且每个资源类仅有一个资源,则系统中已经发生了死锁。 -3) 如果进程-资源分配图中有环路,且涉及到的资源类有多个资源,此时系统未必会发生死锁。如果能在进程-资源分配图中找出一个**既不阻塞又非独立的进程**,该进程能够在有限的时间内归还占有的资源,也就是把边给消除掉了,重复此过程,直到能在有限的时间内**消除所有的边**,则不会发生死锁,否则会发生死锁。(消除边的过程类似于**拓扑排序**) +1. 如果进程-资源分配图中无环路,则此时系统没有发生死锁 +2. 如果进程-资源分配图中有环路,且每个资源类仅有一个资源,则系统中已经发生了死锁。 +3. 如果进程-资源分配图中有环路,且涉及到的资源类有多个资源,此时系统未必会发生死锁。如果能在进程-资源分配图中找出一个 **既不阻塞又非独立的进程** ,该进程能够在有限的时间内归还占有的资源,也就是把边给消除掉了,重复此过程,直到能在有限的时间内 **消除所有的边** ,则不会发生死锁,否则会发生死锁。(消除边的过程类似于 **拓扑排序**) #### 死锁的解除 -当死锁检测程序检测到**存在死锁发生时**,应设法让其解除,让系统从死锁状态中恢复过来,常用的解除死锁的方法有以下四种: +当死锁检测程序检测到存在死锁发生时,应设法让其解除,让系统从死锁状态中恢复过来,常用的解除死锁的方法有以下四种: -1. **立即结束所有进程的执行,重新启动操作系统** - - 这种方法简单,但以前所在的工作全部作废,损失很大。 - -2. **撤销涉及死锁的所有进程**,解除死锁后继续运行 - - 这种方法能彻底打破**死锁的循环等待**条件,但将付出很大代价,例如有些进程可能已经计算了很长时间,由于被撤销而使产生的部分结果也被消除了,再重新执行时还要再次进行计算。 - -3. 逐个撤销涉及死锁的进程,回收其资源直至死锁解除。 - -4. 抢占资源:从涉及死锁的**一个或几个进程**中抢占资源,把夺得的资源再分配给涉及死锁的进程直至死锁解除。 +1. **立即结束所有进程的执行,重新启动操作系统** :这种方法简单,但以前所在的工作全部作废,损失很大。 +2. **撤销涉及死锁的所有进程,解除死锁后继续运行** :这种方法能彻底打破**死锁的循环等待**条件,但将付出很大代价,例如有些进程可能已经计算了很长时间,由于被撤销而使产生的部分结果也被消除了,再重新执行时还要再次进行计算。 +3. **逐个撤销涉及死锁的进程,回收其资源直至死锁解除。** +4. **抢占资源** :从涉及死锁的一个或几个进程中抢占资源,把夺得的资源再分配给涉及死锁的进程直至死锁解除。 ## 三 操作系统内存管理基础 @@ -429,8 +422,8 @@ tag: - **OPT 页面置换算法(最佳页面置换算法)** :最佳(Optimal, OPT)置换算法所选择的被淘汰页面将是以后永不使用的,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。但由于人们目前无法预知进程在内存下的若千页面中哪个是未来最长时间内不再被访问的,因而该算法无法实现。一般作为衡量其他置换算法的方法。 - **FIFO(First In First Out) 页面置换算法(先进先出页面置换算法)** : 总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面进行淘汰。 -- **LRU (Least Recently Used)页面置换算法(最近最久未使用页面置换算法)** :LRU算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 T,当须淘汰一个页面时,选择现有页面中其 T 值最大的,即最近最久未使用的页面予以淘汰。 -- **LFU (Least Frequently Used)页面置换算法(最少使用页面置换算法)** : 该置换算法选择在之前时期使用最少的页面作为淘汰页。 +- **LRU (Least Recently Used)页面置换算法(最近最久未使用页面置换算法)** :LRU 算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 T,当须淘汰一个页面时,选择现有页面中其 T 值最大的,即最近最久未使用的页面予以淘汰。 +- **LFU (Least Frequently Used)页面置换算法(最少使用页面置换算法)** : 该置换算法选择在之前时期使用最少的页面作为淘汰页。 ## Reference @@ -443,16 +436,3 @@ tag: - - - 王道考研操作系统知识点整理: https://wizardforcel.gitbooks.io/wangdaokaoyan-os/content/13.html - - - - - - - - - - - - -

+