Skip to content

Commit ffe36a8

Browse files
committed
chore: update image path
1 parent 8685a11 commit ffe36a8

7 files changed

+16
-35
lines changed

README.md

+3-12
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,6 @@ Doocs 技术社区,致力于打造一个内容完整、持续成长的互联
5757
| 6 | [md](https://github.com/doocs/md) | 一款高度简洁的微信 Markdown 编辑器。 | ![](https://badgen.net/github/stars/doocs/md) <br>![](https://badgen.net/github/forks/doocs/md) |
5858
| 7 | [technical-books](https://github.com/doocs/technical-books) | 值得一看的技术书籍列表。 | ![](https://badgen.net/github/stars/doocs/technical-books) <br>![](https://badgen.net/github/forks/doocs/technical-books) |
5959

60-
## 贡献者
61-
62-
感谢以下所有朋友对 [Doocs 技术社区](https://github.com/doocs) 所做出的贡献,[参与项目维护请戳这儿](https://doocs.github.io/#/?id=how-to-join)
63-
64-
<!-- ALL-CONTRIBUTORS-LIST: START - Do not remove or modify this section -->
65-
66-
<a href="https://opencollective.com/doocs/contributors.svg?width=890&button=true"><img src="https://opencollective.com/doocs/contributors.svg?width=890&button=false" /></a>
67-
68-
<!-- ALL-CONTRIBUTORS-LIST: END -->
6960

7061
## 公众号
7162

@@ -75,13 +66,13 @@ Doocs 技术社区,致力于打造一个内容完整、持续成长的互联
7566
<tr>
7667
<td align="center" style="width: 200px;">
7768
<a href="https://github.com/doocs">
78-
<img src="https://cdn.jsdelivr.net/gh/doocs/jvm@main/images/qrcode-for-doocs.jpg" style="width: 400px;"><br>
69+
<img src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/jvm@main/images/qrcode-for-doocs.jpg" style="width: 400px;"><br>
7970
<sub>公众平台</sub>
8071
</a><br>
8172
</td>
8273
<td align="center" style="width: 200px;">
8374
<a href="https://github.com/yanglbme">
84-
<img src="https://cdn.jsdelivr.net/gh/doocs/jvm@main/images/qrcode-for-yanglbme.jpg" style="width: 400px;"><br>
75+
<img src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/jvm@main/images/qrcode-for-yanglbme.jpg" style="width: 400px;"><br>
8576
<sub>个人微信</sub>
8677
</a><br>
8778
</td>
@@ -90,4 +81,4 @@ Doocs 技术社区,致力于打造一个内容完整、持续成长的互联
9081

9182
关注「**Doocs 开源社区**」公众号,回复 **JVM**,即可获取本项目离线 PDF 文档,学习更加方便!
9283

93-
![](https://cdn.jsdelivr.net/gh/doocs/jvm@main/images/jvm-pdf.png)
84+
![](https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/jvm@main/images/jvm-pdf.png)

docs/00-quickstart.md

+3-13
Original file line numberDiff line numberDiff line change
@@ -58,16 +58,6 @@ Doocs 技术社区,致力于打造一个内容完整、持续成长的互联
5858
| 6 | [md](https://github.com/doocs/md) | 一款高度简洁的微信 Markdown 编辑器。 | ![](https://badgen.net/github/stars/doocs/md) <br>![](https://badgen.net/github/forks/doocs/md) |
5959
| 7 | [technical-books](https://github.com/doocs/technical-books) | 值得一看的技术书籍列表。 | ![](https://badgen.net/github/stars/doocs/technical-books) <br>![](https://badgen.net/github/forks/doocs/technical-books) |
6060

61-
## 贡献者
62-
63-
感谢以下所有朋友对 [Doocs 技术社区](https://github.com/doocs) 所做出的贡献,[参与项目维护请戳这儿](https://doocs.github.io/#/?id=how-to-join)
64-
65-
<!-- ALL-CONTRIBUTORS-LIST: START - Do not remove or modify this section -->
66-
67-
<a href="https://opencollective.com/doocs/contributors.svg?width=890&button=true"><img src="https://opencollective.com/doocs/contributors.svg?width=890&button=false" /></a>
68-
69-
<!-- ALL-CONTRIBUTORS-LIST: END -->
70-
7161
## 公众号
7262

7363
[Doocs](https://github.com/doocs) 技术社区旗下唯一公众号「**Doocs 开源社区**」​,欢迎扫码关注,**专注分享技术领域相关知识及行业最新资讯**。当然,也可以加我个人微信(备注:GitHub),拉你进技术交流群。
@@ -76,13 +66,13 @@ Doocs 技术社区,致力于打造一个内容完整、持续成长的互联
7666
<tr>
7767
<td align="center" style="width: 200px;">
7868
<a href="https://github.com/doocs">
79-
<img src="https://cdn.jsdelivr.net/gh/doocs/jvm@main/images/qrcode-for-doocs.jpg" style="width: 400px;"><br>
69+
<img src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/jvm@main/images/qrcode-for-doocs.jpg" style="width: 400px;"><br>
8070
<sub>公众平台</sub>
8171
</a><br>
8272
</td>
8373
<td align="center" style="width: 200px;">
8474
<a href="https://github.com/yanglbme">
85-
<img src="https://cdn.jsdelivr.net/gh/doocs/jvm@main/images/qrcode-for-yanglbme.jpg" style="width: 400px;"><br>
75+
<img src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/jvm@main/images/qrcode-for-yanglbme.jpg" style="width: 400px;"><br>
8676
<sub>个人微信</sub>
8777
</a><br>
8878
</td>
@@ -91,4 +81,4 @@ Doocs 技术社区,致力于打造一个内容完整、持续成长的互联
9181

9282
关注「**Doocs 开源社区**」公众号,回复 **JVM**,即可获取本项目离线 PDF 文档,学习更加方便!
9383

94-
![](https://cdn.jsdelivr.net/gh/doocs/jvm@main/images/jvm-pdf.png)
84+
![](https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/jvm@main/images/jvm-pdf.png)

docs/01-jvm-memory-structure.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Java 虚拟机的内存空间分为 5 个部分:
88
-
99
- 方法区
1010

11-
![jvm-memory-structure](https://cdn.jsdelivr.net/gh/doocs/jvm@main/images/jvm-memory-structure.jpg)
11+
![jvm-memory-structure](https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/jvm@main/images/jvm-memory-structure.jpg)
1212

1313
JDK 1.8 同 JDK 1.7 比,最大的差别就是:元数据区取代了永久代。元空间的本质和永久代类似,都是对 JVM 规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元数据空间并不在虚拟机中,而是使用本地内存。
1414

@@ -44,7 +44,7 @@ Java 虚拟机栈会为每一个即将运行的 Java 方法创建一块叫做“
4444
- 方法出口信息
4545
- ......
4646

47-
![jvm-stack](https://cdn.jsdelivr.net/gh/doocs/jvm@main/images/jvm-stack.jpg)
47+
![jvm-stack](https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/jvm@main/images/jvm-stack.jpg)
4848

4949
### 压栈出栈过程
5050

docs/02-hotspot-jvm-object.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
- 实例数据(Instance Data)
99
- 对齐填充(Padding)
1010

11-
![object-memory-layout.png](https://cdn.jsdelivr.net/gh/doocs/jvm@main/images/object-memory-layout.png)
11+
![object-memory-layout.png](https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/jvm@main/images/object-memory-layout.png)
1212

1313
### 对象头
1414

@@ -67,12 +67,12 @@ HotSpot VM 的自动内存管理系统要求对象的大小必须是 8 字节的
6767

6868
引用类型的变量存放的是该对象的句柄地址(reference)。访问对象时,首先需要通过引用类型的变量找到该对象的句柄,然后根据句柄中对象的地址找到对象。
6969

70-
![handle-access](https://cdn.jsdelivr.net/gh/doocs/jvm@main/images/handle-access.jpg)
70+
![handle-access](https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/jvm@main/images/handle-access.jpg)
7171

7272
### 直接指针访问方式
7373

7474
引用类型的变量直接存放对象的地址,从而不需要句柄池,通过引用能够直接访问对象。但对象所在的内存空间需要额外的策略存储对象所属的类信息的地址。
7575

76-
![direct-pointer](https://cdn.jsdelivr.net/gh/doocs/jvm@main/images/direct-pointer.jpg)
76+
![direct-pointer](https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/jvm@main/images/direct-pointer.jpg)
7777

7878
需要说明的是,HotSpot 采用第二种方式,即直接指针方式来访问对象,只需要一次寻址操作,所以在性能上比句柄访问方式快一倍。但像上面所说,它需要**额外的策略**来存储对象在方法区中类信息的地址。

docs/04-hotspot-gc.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ HotSpot 虚拟机提供了多种垃圾收集器,每种收集器都有各自的
1212

1313
由于 Serial 收集器只使用一条 GC 线程,避免了线程切换的开销,从而简单高效。
1414

15-
![Serial](https://cdn.jsdelivr.net/gh/doocs/jvm@main/images/serial.png)
15+
![Serial](https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/jvm@main/images/serial.png)
1616

1717
### ParNew 垃圾收集器(多线程)
1818

1919
ParNew 是 Serial 的多线程版本。由多条 GC 线程并行地进行垃圾清理。但清理过程依然需要 Stop The World。
2020

2121
ParNew 追求“**低停顿时间**”,与 Serial 唯一区别就是使用了多线程进行垃圾收集,在多 CPU 环境下性能比 Serial 会有一定程度的提升;但**线程切换需要额外的开销**,因此在单 CPU 环境中表现不如 Serial。
2222

23-
![ParNew](https://cdn.jsdelivr.net/gh/doocs/jvm@main/images/parnew.png)
23+
![ParNew](https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/jvm@main/images/parnew.png)
2424

2525
### Parallel Scavenge 垃圾收集器(多线程)
2626

@@ -58,7 +58,7 @@ CMS(Concurrent Mark Sweep,并发标记清除)收集器是以获取最短
5858

5959
并发标记与并发清除过程耗时最长,且可以与用户线程一起工作,因此,**总体上说**,CMS 收集器的内存回收过程是与用户线程**一起并发执行**的。
6060

61-
![CMS](https://cdn.jsdelivr.net/gh/doocs/jvm@main/images/cms.png)
61+
![CMS](https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/jvm@main/images/cms.png)
6262

6363
CMS 的缺点:
6464

docs/08-load-class-time.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
验证、准备、解析 3 个阶段统称为连接。
1616

17-
![Load Class](https://cdn.jsdelivr.net/gh/doocs/jvm@main/images/loadclass.png)
17+
![Load Class](https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/jvm@main/images/loadclass.png)
1818

1919
加载、验证、准备、初始化和卸载这 5 个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地开始(注意是“开始”,而不是“进行”或“完成”),而解析阶段则不一定:它在某些情况下可以在初始化后再开始,这是为了支持 Java 语言的运行时绑定。
2020

docs/10-class-loader.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
- 扩展类加载器(Extension ClassLoader): 负责加载 `<JAVA_HOME>\lib\ext` 目录中的所有类库,开发者可以直接使用扩展类加载器。
1919
- 应用程序类加载器(Application ClassLoader): 由于这个类加载器是 ClassLoader 中的 `getSystemClassLoader()` 方法的返回值,所以一般也称它为“系统类加载器”。它负责加载用户类路径(classpath)上所指定的类库,开发者可以直接使用这个类加载器,如果应用程序中没有自定义过自己的类加载器,一般情况下这个就是程序中默认的类加载器。
2020

21-
![ClassLoader](https://cdn.jsdelivr.net/gh/doocs/jvm@main/images/classloader.png)
21+
![ClassLoader](https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/jvm@main/images/classloader.png)
2222

2323
当然,如果有必要,还可以加入自己定义的类加载器。
2424

0 commit comments

Comments
 (0)