From cef162c9e7d63eafbe1e1700d7830b4538afdf34 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Sun, 21 Jul 2019 23:26:40 +0800 Subject: [PATCH 1/6] auto commit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 43a0b6b9..f702ceb2 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@
- + From d2a04c48b9978e9dac91f845e0964ba706ae13d0 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Sun, 21 Jul 2019 23:31:36 +0800 Subject: [PATCH 2/6] auto commit --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index f702ceb2..20dacb47 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ - [设计模式](https://github.com/CyC2018/CS-Notes/blob/master/notes/设计模式.md) - [面向对象思想](https://github.com/CyC2018/CS-Notes/blob/master/notes/面向对象思想.md) -## :floppy_disk: 数据库 +## :floppy_disk: 数据库 - [数据库系统原理](https://github.com/CyC2018/CS-Notes/blob/master/notes/数据库系统原理.md) - [SQL](https://github.com/CyC2018/CS-Notes/blob/master/notes/SQL.md) @@ -79,14 +79,6 @@ ## :memo: 后记 -### 微信公众号 - -更多精彩内容将发布在微信公众号 CyC2018 上,你也可以在公众号后台和我交流学习和求职相关的问题。另外,公众号提供了该项目的 PDF 等离线阅读版本,后台回复 "下载" 即可领取。公众号也提供了一份技术面试复习大纲,不仅系统整理了面试知识点,而且标注了各个知识点的重要程度,从而帮你理清多而杂的面试知识点,后台回复 "大纲" 即可领取。我基本是按照这个大纲来进行复习的,对我拿到了 BAT 头条等 Offer 起到很大的帮助。你们完全可以和我一样根据大纲上列的知识点来进行复习,就不用看很多不重要的内容,也可以知道哪些内容很重要从而多安排一些复习时间。 - -
- -
- ### 更多内容 - 内推:[Job-Recommend](https://github.com/CyC2018/Job-Recommend) @@ -103,6 +95,14 @@ - 绘图:[draw.io](https://www.draw.io/) - Logo:[logomakr](https://logomakr.com/) +### 微信公众号 + +更多精彩内容将发布在微信公众号 CyC2018 上,你也可以在公众号后台和我交流学习和求职相关的问题。另外,公众号提供了该项目的 PDF 等离线阅读版本,后台回复 "下载" 即可领取。公众号也提供了一份技术面试复习大纲,不仅系统整理了面试知识点,而且标注了各个知识点的重要程度,从而帮你理清多而杂的面试知识点,后台回复 "大纲" 即可领取。我基本是按照这个大纲来进行复习的,对我拿到了 BAT 头条等 Offer 起到很大的帮助。你们完全可以和我一样根据大纲上列的知识点来进行复习,就不用看很多不重要的内容,也可以知道哪些内容很重要从而多安排一些复习时间。 + +
+ +
+ ### 排版 笔记内容按照 [中文文案排版指北](https://github.com/sparanoid/chinese-copywriting-guidelines) 进行排版,以保证内容的可读性。 From b31497a0716e996cfbb94a9a5cc44472aae27a46 Mon Sep 17 00:00:00 2001 From: hwisecn <39114998+hwisecn@users.noreply.github.com> Date: Mon, 29 Jul 2019 20:09:30 +0800 Subject: [PATCH 3/6] =?UTF-8?q?Update=20Java=20=E5=AE=B9=E5=99=A8.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 应该是:从 JDK 1.8 开始, table的长度也就是HashMap的capacity(不是size)不能小于64而且在桶存储的链表长度为8时(准确的说是长度为7并且在继续塞第8个时),转换成红黑树,而不是超过8。 --- notes/Java 容器.md | 1 + 1 file changed, 1 insertion(+) diff --git a/notes/Java 容器.md b/notes/Java 容器.md index 4babb029..51ab9248 100644 --- a/notes/Java 容器.md +++ b/notes/Java 容器.md @@ -768,6 +768,7 @@ static final int tableSizeFor(int cap) { ### 8. 链表转红黑树 从 JDK 1.8 开始,一个桶存储的链表长度大于 8 时会将链表转换为红黑树。 +应该是:从 JDK 1.8 开始, table的长度也就是HashMap的capacity(不是size)不能小于64而且在桶存储的链表长度为8时(准确的说是长度为7并且在继续塞第8个时),转换成红黑树,而不是超过8。 ### 9. 与 HashTable 的比较 From b118cc4b5308b88290f0c676fafd052911cad81e Mon Sep 17 00:00:00 2001 From: BrkingYan <42265567+BrkingYan@users.noreply.github.com> Date: Thu, 8 Aug 2019 19:45:05 +0800 Subject: [PATCH 4/6] =?UTF-8?q?Update=20Java=20=E5=9F=BA=E7=A1=80.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- notes/Java 基础.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/notes/Java 基础.md b/notes/Java 基础.md index 0a98dcce..c06e5b9c 100644 --- a/notes/Java 基础.md +++ b/notes/Java 基础.md @@ -63,8 +63,8 @@ boolean 只有两个值:true、false,可以使用 1 bit 来存储,但是 基本类型都有对应的包装类型,基本类型与其对应的包装类型之间的赋值使用自动装箱与拆箱完成。 ```java -Integer x = 2; // 装箱 -int y = x; // 拆箱 +Integer x = 2; // 装箱 调用了 Integer.valueOf(2); +int y = x; // 拆箱 调用了 Integer.intValue(x); ``` ## 缓存池 @@ -78,6 +78,11 @@ new Integer(123) 与 Integer.valueOf(123) 的区别在于: Integer x = new Integer(123); Integer y = new Integer(123); System.out.println(x == y); // false + +Integer x = 123; //调用了Integer.valueOf(123); +Integer y = 123; //如果数值在[-128,127]之间,便返回指向缓冲池中已经存在的对象的引用;否则创建一个新的Integer对象。 +System.out.println(x==y); //true + Integer z = Integer.valueOf(123); Integer k = Integer.valueOf(123); System.out.println(z == k); // true @@ -154,7 +159,7 @@ System.out.println(m == n); // true ## 概览 -String 被声明为 final,因此它不可被继承。 +String 被声明为 final,因此它不可被继承。(Integer等包装类也不能被继承) 在 Java 8 中,String 内部使用 char 数组存储数据。 From 60a1d0b3cb286d60ae103acf77f06e0e325f3701 Mon Sep 17 00:00:00 2001 From: MalikCheng <1484392767@qq.com> Date: Sat, 10 Aug 2019 19:40:41 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=AE=B5=E8=90=BD?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=EF=BC=8C=E4=BD=8D=E7=BD=AE=EF=BC=8C=E7=A7=BB?= =?UTF-8?q?=E5=88=B0=E9=9D=9E=E9=98=BB=E5=A1=9E=E5=90=8C=E6=AD=A5=E6=A0=87?= =?UTF-8?q?=E9=A2=98=E4=B8=8B=E6=9B=B4=E5=8A=A0=E5=90=88=E7=90=86=E6=98=93?= =?UTF-8?q?=E7=90=86=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- notes/Java 并发.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/notes/Java 并发.md b/notes/Java 并发.md index 2b79c5ae..357e8248 100644 --- a/notes/Java 并发.md +++ b/notes/Java 并发.md @@ -1329,10 +1329,10 @@ synchronized 和 ReentrantLock。 互斥同步属于一种悲观的并发策略,总是认为只要不去做正确的同步措施,那就肯定会出现问题。无论共享数据是否真的会出现竞争,它都要进行加锁(这里讨论的是概念模型,实际上虚拟机会优化掉很大一部分不必要的加锁)、用户态核心态转换、维护锁计数器和检查是否有被阻塞的线程需要唤醒等操作。 -### 1. CAS - 随着硬件指令集的发展,我们可以使用基于冲突检测的乐观并发策略:先进行操作,如果没有其它线程争用共享数据,那操作就成功了,否则采取补偿措施(不断地重试,直到成功为止)。这种乐观的并发策略的许多实现都不需要将线程阻塞,因此这种同步操作称为非阻塞同步。 +### 1. CAS + 乐观锁需要操作和冲突检测这两个步骤具备原子性,这里就不能再使用互斥同步来保证了,只能靠硬件来完成。硬件支持的原子性操作最典型的是:比较并交换(Compare-and-Swap,CAS)。CAS 指令需要有 3 个操作数,分别是内存地址 V、旧的预期值 A 和新值 B。当执行操作时,只有当 V 的值等于 A,才将 V 的值更新为 B。 ### 2. AtomicInteger From 7dde745edd02968fa0acf227fbb2f4918c4f97e4 Mon Sep 17 00:00:00 2001 From: ruiruigirl <1147681296@qq.com> Date: Mon, 12 Aug 2019 19:08:39 +0800 Subject: [PATCH 6/6] feat: fix hash map desc --- notes/Java 容器.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/notes/Java 容器.md b/notes/Java 容器.md index 5c037d73..1d3f6de4 100644 --- a/notes/Java 容器.md +++ b/notes/Java 容器.md @@ -650,7 +650,7 @@ static int indexFor(int h, int length) { | capacity | table 的容量大小,默认为 16。需要注意的是 capacity 必须保证为 2 的 n 次方。| | size | 键值对数量。 | | threshold | size 的临界值,当 size 大于等于 threshold 就必须进行扩容操作。 | -| loadFactor | 装载因子,table 能够使用的比例,threshold = capacity * loadFactor。| +| loadFactor | 装载因子,table 能够使用的比例,threshold = (int)(newCapacity * loadFactor)。| ```java static final int DEFAULT_INITIAL_CAPACITY = 16;