Skip to content

Commit 8bd077a

Browse files
committed
Update Java Note
1 parent 2bb1d62 commit 8bd077a

File tree

4 files changed

+16
-18
lines changed

4 files changed

+16
-18
lines changed

DB.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ SHOW PROCESSLIST:查看当前 MySQL 在进行的线程,可以实时地查看
264264
1. 客户端发送一条查询给服务器
265265
2. 服务器先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果(一般是 K-V 键值对),否则进入下一阶段
266266
3. 分析器进行 SQL 分析,再由优化器生成对应的执行计划
267-
4. MySQL 根据优化器生成的执行计划,调用存储引擎的 API 来执行查询
267+
4. 执行器根据优化器生成的执行计划,调用存储引擎的 API 来执行查询
268268
5. 将结果返回给客户端
269269

270270
大多数情况下不建议使用查询缓存,因为查询缓存往往弊大于利
@@ -434,7 +434,7 @@ MySQL 中保存着两种统计数据:
434434
* innodb_table_stats 存储了表的统计数据,每一条记录对应着一个表的统计数据
435435
* innodb_index_stats 存储了索引的统计数据,每一条记录对应着一个索引的一个统计项的数据
436436

437-
MySQL 在真正执行语句之前,并不能精确地知道满足条件的记录有多少条,只能根据统计信息来估算记录,统计信息就是索引的区分度,一个索引上不同的值的个数(比如性别只能是男女,就是 2 ),称之为基数(cardinality),**基数越大说明区分度越好**
437+
MySQL 在真正执行语句之前,并不能精确地知道满足条件的记录有多少条,只能根据统计信息来估算记录,统计信息就是索引的区分度一个索引上不同的值的个数(比如性别只能是男女,就是 2 ),称之为基数(cardinality),**基数越大说明区分度越好**
438438

439439
通过**采样统计**来获取基数,InnoDB 默认会选择 N 个数据页,统计这些页面上的不同值得到一个平均值,然后乘以这个索引的页面数,就得到了这个索引的基数
440440

@@ -5041,7 +5041,7 @@ CREATE INDEX idx_seller_name_sta_addr ON tb_seller(name, status, address); # 联
50415041

50425042
* **字符串不加单引号**,造成索引失效:隐式类型转换,当字符串和数字比较时会**把字符串转化为数字**
50435043

5044-
在查询时,没有对字符串加单引号,查询优化器会调用 CAST 函数将 status 转换为 int 进行比较,造成索引失效
5044+
没有对字符串加单引号,查询优化器会调用 CAST 函数将 status 转换为 int 进行比较,造成索引失效
50455045

50465046
```mysql
50475047
EXPLAIN SELECT * FROM tb_seller WHERE name='小米科技' AND status = 1;
@@ -5134,7 +5134,7 @@ CREATE INDEX idx_seller_name_sta_addr ON tb_seller(name, status, address); # 联
51345134
EXPLAIN SELECT * FROM tb_seller WHERE sellerId NOT IN ('alibaba','huawei');
51355135
```
51365136

5137-
* [MySQL 实战 45 讲](https://time.geekbang.org/column/article/74687)该章节最后提出了一种场景,获取到数据以后 Server 层还会做判断
5137+
* [MySQL 实战 45 讲](https://time.geekbang.org/column/article/74687)该章节最后提出了一种慢查询场景,获取到数据以后 Server 层还会做判断
51385138

51395139

51405140

@@ -7406,7 +7406,7 @@ InnoDB 会对间隙(GAP)进行加锁,就是间隙锁 (RR 隔离级别下
74067406

74077407
InnoDB 加锁的基本单位是 next-key lock,该锁是行锁和 gap lock 的组合(X or S 锁),但是加锁过程是分为间隙锁和行锁两段执行
74087408

7409-
* 可以**保护当前记录和前面的间隙**,遵循左开右闭原则,单纯的是间隙锁左开右开
7409+
* 可以**保护当前记录和前面的间隙**,遵循左开右闭原则,单纯的间隙锁是左开右开
74107410
* 假设有 10、11、13,那么可能的间隙锁包括:(负无穷,10]、(10,11]、(11,13]、(13,正无穷)
74117411

74127412
几种索引的加锁情况:

Prog.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10758,7 +10758,7 @@ public class ExchangerDemo {
1075810758
// 创建交换对象(信使)
1075910759
Exchanger<String> exchanger = new Exchanger<>();
1076010760
new ThreadA(exchanger).start();
10761-
new ThreadA(exchanger).start();
10761+
new ThreadB(exchanger).start();
1076210762
}
1076310763
}
1076410764
class ThreadA extends Thread{

SSM.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13890,7 +13890,7 @@ SpringBoot 功能:
1389013890

1389113891
1. 使用 @ComponentScan 扫描 com.example.config 包
1389213892

13893-
2. 使用 @Import 注解,加载类,这些类都会被 Spring 创建并放入 ioc 容器,默认组件的名字就是**全类名**
13893+
2. 使用 @Import 注解加载类,这些类都会被 Spring 创建并放入 ioc 容器,默认组件的名字就是**全类名**
1389413894

1389513895
3. 对 @Import 注解进行封装
1389613896

@@ -13982,14 +13982,14 @@ Condition 是 Spring4.0 后引入的条件化配置接口,通过实现 Conditi
1398213982

1398313983
ConditionContext 类API:
1398413984

13985-
| 方法 | 说明 |
13986-
| --------------------------------------------------- | ----------------------------- |
13987-
| ConfigurableListableBeanFactory getBeanFactory() | 获取到 IOC 使用的 beanfactory |
13988-
| ClassLoader getClassLoader() | 获取类加载器 |
13989-
| Environment getEnvironment() | 获取当前环境信息 |
13990-
| BeanDefinitionRegistry getRegistry() | 获取到 bean 定义的注册类 |
13985+
| 方法 | 说明 |
13986+
| ------------------------------------------------- | ----------------------------- |
13987+
| ConfigurableListableBeanFactory getBeanFactory() | 获取到 IOC 使用的 beanfactory |
13988+
| ClassLoader getClassLoader() | 获取类加载器 |
13989+
| Environment getEnvironment() | 获取当前环境信息 |
13990+
| BeanDefinitionRegistry getRegistry() | 获取到 bean 定义的注册类 |
1399113991

13992-
* ClassCondition
13992+
* ClassCondition
1399313993

1399413994
```java
1399513995
public class ClassCondition implements Condition {
@@ -14013,7 +14013,7 @@ ConditionContext 类API:
1401314013
}
1401414014
```
1401514015

14016-
* UserConfig
14016+
* UserConfig
1401714017

1401814018
```java
1401914019
@Configuration
@@ -14202,7 +14202,7 @@ public class Car {
1420214202

1420314203

1420414204

14205-
### 源码解析
14205+
### 装配原理
1420614206

1420714207
#### 启动流程
1420814208

Web.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2063,8 +2063,6 @@ a{
20632063
</html>
20642064
```
20652065

2066-
![](https://seazean.oss-cn-beijing.aliyuncs.com/img/Web/CSS案例登陆页面.png)
2067-
20682066

20692067

20702068

0 commit comments

Comments
 (0)