1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-08-14 05:21:42 +08:00

Compare commits

..

No commits in common. "4451347695afbf367bb71509be189700f504aafe" and "b0cb31e2f6db54a069c8674c5a14b57a75a18113" have entirely different histories.

4 changed files with 16 additions and 13 deletions

View File

@ -56,7 +56,7 @@
- [为什么 Java 中只有值传递?](./docs/java/basis/why-there-only-value-passing-in-java.md)
- [Java 序列化详解](./docs/java/basis/serialization.md)
- [泛型&通配符详解](./docs/java/basis/generics-and-wildcards.md)
- [泛型&序列化详解](./docs/java/basis/generics-and-wildcards.md)
- [Java 反射机制详解](./docs/java/basis/reflection.md)
- [Java 代理模式详解](./docs/java/basis/proxy.md)
- [BigDecimal 详解](./docs/java/basis/bigdecimal.md)
@ -112,7 +112,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
- **[类加载过程](./docs/java/jvm/class-loading-process.md)**
- [类加载器](./docs/java/jvm/classloader.md)
- [【待完成】最重要的 JVM 参数总结(翻译完善了一半)](./docs/java/jvm/jvm-parameters-intro.md)
- [【加餐】大白话带你认识 JVM](./docs/java/jvm/jvm-intro.md)
- [【加餐】大白话带你认识 JVM](./docs/java/jvm/jvm-intro.md)**
- [JDK 监控和故障处理工具](./docs/java/jvm/jdk-monitoring-and-troubleshooting-tools.md)
### 新特性
@ -278,6 +278,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
- [JWT 优缺点分析以及常见问题解决方案](./docs/system-design/security/advantages&disadvantages-of-jwt.md)
- [SSO 单点登录详解](./docs/system-design/security/sso-intro.md)
- [权限系统设计详解](./docs/system-design/security/design-of-authority-system.md)
- [敏感词过滤方案总结](./docs/system-design/security/sentive-words-filter.md)
#### 数据脱敏
@ -286,7 +287,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
#### 敏感词过滤
[敏感词过滤方案总结](./docs/system-design/security/sentive-words-filter.md)
[敏感词过滤](./docs/system-design/security/sentive-words-filter.md)
### 定时任务

View File

@ -430,10 +430,10 @@ SELECT ... LOCK IN SHARE MODE
快照读的情况下,如果读取的记录正在执行 UPDATE/DELETE 操作,读取操作不会因此去等待记录上 X 锁的释放,而是会去读取行的一个快照。
只有在事务隔离级别 RC(读取已提交) 和 RR可重读InnoDB 才会使用一致性锁定读:
只有在事务隔离级别 RC(读取已提交) 和 RR可重读InnoDB 才会使用一致性锁定读:
- 在 RC 级别下,对于快照数据,一致性非锁定读总是读取被锁定行的最新一份快照数据。
- 在 RR 级别下,对于快照数据,一致性非锁定读总是读取本事务开始时的行数据版本。
- 在 RC 级别下,对于快照数据,一致性读总是读取被锁定行的最新一份快照数据。
- 在 RR 级别下,对于快照数据,一致性读总是读取本事务开始时的行数据版本。
快照读比较适合对于数据一致性要求不是特别高且追求极致性能的业务场景。

View File

@ -60,7 +60,7 @@ title: JavaGuideJava学习&&面试指南)
- [为什么 Java 中只有值传递?](./java/basis/why-there-only-value-passing-in-java.md)
- [Java 序列化详解](./java/basis/serialization.md)
- [泛型&通配符详解](./java/basis/generics-and-wildcards.md)
- [泛型&序列化详解](./java/basis/generics-and-wildcards.md)
- [Java 反射机制详解](./java/basis/reflection.md)
- [Java 代理模式详解](./java/basis/proxy.md)
- [BigDecimal 详解](./java/basis/bigdecimal.md)
@ -116,7 +116,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
- **[类加载过程](./java/jvm/class-loading-process.md)**
- [类加载器](./java/jvm/classloader.md)
- [【待完成】最重要的 JVM 参数总结(翻译完善了一半)](./java/jvm/jvm-parameters-intro.md)
- [【加餐】大白话带你认识 JVM](./java/jvm/jvm-intro.md)
- [【加餐】大白话带你认识 JVM](./java/jvm/jvm-intro.md)**
- [JDK 监控和故障处理工具](./java/jvm/jdk-monitoring-and-troubleshooting-tools.md)
### 新特性
@ -282,6 +282,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
- [JWT 优缺点分析以及常见问题解决方案](./system-design/security/advantages&disadvantages-of-jwt.md)
- [SSO 单点登录详解](./system-design/security/sso-intro.md)
- [权限系统设计详解](./system-design/security/design-of-authority-system.md)
- [敏感词过滤方案总结](./system-design/security/sentive-words-filter.md)
#### 数据脱敏
@ -289,7 +290,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
#### 敏感词过滤
[敏感词过滤方案总结](./system-design/security/sentive-words-filter.md)
[《敏感词过滤》](./system-design/security/sentive-words-filter.md)
### 定时任务

View File

@ -274,18 +274,19 @@ final V putVal(int hash, K key, V value, boolean onlyIfAbsent,
// (n - 1) & hash 确定元素存放在哪个桶中,桶为空,新生成结点放入桶中(此时,这个结点是放在数组中)
if ((p = tab[i = (n - 1) & hash]) == null)
tab[i] = newNode(hash, key, value, null);
// 桶中已经存在元素处理hash冲突
// 桶中已经存在元素
else {
Node<K,V> e; K k;
// 判断table[i]中的元素是否与插入的key一样若相同那就直接使用插入的值p替换掉旧的值e。
// 比较桶中第一个元素(数组中的结点)的hash值相等key相等
if (p.hash == hash &&
((k = p.key) == key || (key != null && key.equals(k))))
// 将第一个元素赋值给e用e来记录
e = p;
// 判断插入的是否是红黑树节
// hash值不相等即key不相等为红黑树结
else if (p instanceof TreeNode)
// 放入树中
e = ((TreeNode<K,V>)p).putTreeVal(this, tab, hash, key, value);
// 不是红黑树节点则说明为链表结点
// 为链表结点
else {
// 在链表最末插入结点
for (int binCount = 0; ; ++binCount) {