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.
4451347695
...
b0cb31e2f6
@ -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)
|
||||
|
||||
### 定时任务
|
||||
|
||||
|
@ -430,10 +430,10 @@ SELECT ... LOCK IN SHARE MODE
|
||||
|
||||
快照读的情况下,如果读取的记录正在执行 UPDATE/DELETE 操作,读取操作不会因此去等待记录上 X 锁的释放,而是会去读取行的一个快照。
|
||||
|
||||
只有在事务隔离级别 RC(读取已提交) 和 RR(可重读)下,InnoDB 才会使用一致性非锁定读:
|
||||
只有在事务隔离级别 RC(读取已提交) 和 RR(可重读)下,InnoDB 才会使用非一致性锁定读:
|
||||
|
||||
- 在 RC 级别下,对于快照数据,一致性非锁定读总是读取被锁定行的最新一份快照数据。
|
||||
- 在 RR 级别下,对于快照数据,一致性非锁定读总是读取本事务开始时的行数据版本。
|
||||
- 在 RC 级别下,对于快照数据,非一致性读总是读取被锁定行的最新一份快照数据。
|
||||
- 在 RR 级别下,对于快照数据,非一致性读总是读取本事务开始时的行数据版本。
|
||||
|
||||
快照读比较适合对于数据一致性要求不是特别高且追求极致性能的业务场景。
|
||||
|
||||
|
@ -60,7 +60,7 @@ title: JavaGuide(Java学习&&面试指南)
|
||||
|
||||
- [为什么 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)
|
||||
|
||||
### 定时任务
|
||||
|
||||
|
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user