1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-07-28 12:22:17 +08:00

Compare commits

...

11 Commits

Author SHA1 Message Date
Guide
bd61ba6dbe
Merge pull request #2521 from Samsara1994/patch-9
错别字修改
2024-12-03 13:08:56 +08:00
Guide
31f8e52e3a
Merge pull request #2548 from SkyDependence/patch-1
fix: The font is not properly bolded
2024-12-03 13:06:38 +08:00
Guide
c09fdc247c
Merge pull request #2551 from Kisa-Dong/main
Update class-file-structure.md
2024-12-03 13:06:11 +08:00
Kisa-Dong
0309d4d747
Update memory-area.md
修正缺少的字
2024-12-03 10:43:28 +08:00
Kisa-Dong
28adc53d74
Update class-file-structure.md
错别字修正
2024-12-03 09:55:42 +08:00
Guide
c1729fdc38
Merge pull request #2550 from ztio-top/ztio
追加遗漏文字
2024-12-01 20:53:14 +08:00
Guide
2471e2d642
Merge pull request #2549 from biea008/main
Update java-basic-questions-01.md
2024-12-01 20:48:40 +08:00
zt
11afae8137 追加遗漏文字 2024-11-30 16:33:35 +08:00
biea008
236986590c
Update java-basic-questions-01.md
自增自减运算,例题答案勘误
2024-11-30 15:43:26 +08:00
SkyDev
654c64a376
fix: The font is not properly bolded 2024-11-29 10:51:24 +08:00
Samsara1994
ecf5f78ac0
错别字修改
错别字修改
2024-11-04 14:54:34 +08:00
6 changed files with 6 additions and 6 deletions

View File

@ -76,4 +76,4 @@ TCP 协议保证了数据传输的可靠性,是数据包传输的主力协议
- 转发:将分组从路由器的输入端口转移到合适的输出端口。
- 路由:确定分组从源到目的经过的路径。
所以到目前为止,我们的数据包经过了应用层、传输层的封装,来到了网络层,终于开始准备在物理层面传输了,第一个要解决的问题就是——**往哪里传输?或者说,要把数据包发到哪个路由器上?**这便是 BGP 协议要解决的问题。
所以到目前为止,我们的数据包经过了应用层、传输层的封装,来到了网络层,终于开始准备在物理层面传输了,第一个要解决的问题就是——**往哪里传输?或者说,要把数据包发到哪个路由器上?** 这便是 BGP 协议要解决的问题。

View File

@ -86,7 +86,7 @@ ER 图由下面 3 个要素组成:
为什么不要用外键呢?大部分人可能会这样回答:
1. **增加了复杂性:** a. 每次做 DELETE 或者 UPDATE 都必须考虑外键约束,会导致开发的时候很痛苦, 测试数据极为不方便; b. 外键的主从关系是定的,假如天需求有变化,数据库中的这个字段根本不需要和其他表有关联的话就会增加很多麻烦。
1. **增加了复杂性:** a. 每次做 DELETE 或者 UPDATE 都必须考虑外键约束,会导致开发的时候很痛苦, 测试数据极为不方便; b. 外键的主从关系是定的,假如天需求有变化,数据库中的这个字段根本不需要和其他表有关联的话就会增加很多麻烦。
2. **增加了额外工作**:数据库需要增加维护外键的工作,比如当我们做一些涉及外键字段的增,删,更新操作之后,需要触发相关操作去检查,保证数据的的一致性和正确性,这样会不得不消耗数据库资源。如果在应用层面去维护的话,可以减小数据库压力;
3. **对分库分表不友好**:因为分库分表下外键是无法生效的。
4. ……

View File

@ -303,7 +303,7 @@ int d = c--;
int e = --d;
```
答案:`a = 11``b = 9``c = 11` 、 `d = 11` 、 `e = 10`
答案:`a = 11``b = 9``c = 10` 、 `d = 10` 、 `e = 10`
### 移位运算符

View File

@ -555,7 +555,7 @@ public class MyServiceLoader<S> {
其实不难发现SPI 机制的具体实现本质上还是通过反射完成的。即:**我们按照规定将要暴露对外使用的具体实现类在 `META-INF/services/` 文件下声明。**
另外SPI 机制在很多框架中都有应用Spring 框架的基本原理也是类似的方式。还有 Dubbo 框架提供同样的 SPI 扩展机制,只不过 Dubbo 和 spring 框架中的 SPI 机制具体实现方式跟咱们今天学得这个有些细微的区别,不过整体的原理都是一致的,相信大家通过对 JDK 中 SPI 机制的学习,能够一通百通,加深对其他高深框的理解。
另外SPI 机制在很多框架中都有应用Spring 框架的基本原理也是类似的方式。还有 Dubbo 框架提供同样的 SPI 扩展机制,只不过 Dubbo 和 spring 框架中的 SPI 机制具体实现方式跟咱们今天学得这个有些细微的区别,不过整体的原理都是一致的,相信大家通过对 JDK 中 SPI 机制的学习,能够一通百通,加深对其他高深框的理解。
通过 SPI 机制能够大大地提高接口设计的灵活性,但是 SPI 机制也存在一些缺点,比如:

View File

@ -149,7 +149,7 @@ Java 类的继承关系由类索引、父类索引和接口索引集合三项确
类索引用于确定这个类的全限定名,父类索引用于确定这个类的父类的全限定名,由于 Java 语言的单继承,所以父类索引只有一个,除了 `java.lang.Object` 之外,所有的 Java 类都有父类,因此除了 `java.lang.Object` 外,所有 Java 类的父类索引都不为 0。
接口索引集合用来描述这个类实现了些接口,这些被实现的接口将按 `implements` (如果这个类本身是接口的话则是`extends`) 后的接口顺序从左到右排列在接口索引集合中。
接口索引集合用来描述这个类实现了些接口,这些被实现的接口将按 `implements` (如果这个类本身是接口的话则是`extends`) 后的接口顺序从左到右排列在接口索引集合中。
### 字段表集合Fields

View File

@ -252,7 +252,7 @@ System.out.println(aa==bb); // true
HotSpot 虚拟机中字符串常量池的实现是 `src/hotspot/share/classfile/stringTable.cpp` ,`StringTable` 可以简单理解为一个固定大小的`HashTable` ,容量为 `StringTableSize`(可以通过 `-XX:StringTableSize` 参数来设置保存的是字符串key和 字符串对象的引用value的映射关系字符串对象的引用指向堆中的字符串对象。
JDK1.7 之前字符串常量池存放在永久代。JDK1.7 字符串常量池和静态变量从永久代移动了 Java 堆中。
JDK1.7 之前字符串常量池存放在永久代。JDK1.7 字符串常量池和静态变量从永久代移动了 Java 堆中。
![method-area-jdk1.6](https://oss.javaguide.cn/github/javaguide/java/jvm/method-area-jdk1.6.png)