1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-08-01 16:28:03 +08:00

Compare commits

..

6 Commits

Author SHA1 Message Date
Guide
22a081dedf
Merge pull request #2394 from gaohanghang/main
Update ioc-and-aop.md
2024-05-17 08:40:13 +08:00
Guide
82940449fe
Merge pull request #2391 from WindLYLY/patch-1
Update operating-system-basic-questions-02.md
2024-05-17 08:39:07 +08:00
Guide
7a31e22f8e
Merge pull request #2393 from JosephConrad2017/main
Update java-collection-questions-02.md
2024-05-17 08:33:08 +08:00
gaohang
55f7390375
Update ioc-and-aop.md
修改笔误
2024-05-16 17:09:06 +08:00
Mr. Confidence
f87f16a081
Update java-collection-questions-02.md
注释,由 “如果链表元素个数大于等于TREEIFY_THRESHOLD(8)” 改为“如果链表元素个数大于TREEIFY_THRESHOLD(8)”。
个人认为,等于8时,并没有考虑转红黑树。
2024-05-13 22:43:12 +08:00
WindLY
2605c41e13
Update operating-system-basic-questions-02.md 2024-05-09 16:47:22 +08:00
3 changed files with 3 additions and 3 deletions

View File

@ -282,7 +282,7 @@ TLB 的设计思想非常简单,但命中率往往非常高,效果很好。
![常见的页面置换算法](https://oss.javaguide.cn/github/javaguide/cs-basics/operating-system/image-20230409113009139.png)
1. **最佳页面置换算法OPTOptimal**:优先选择淘汰的页面是以后永不使用的,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。但由于人们目前无法预知进程在内存下的若干页面中哪个是未来最长时间内不再被访问的,因而该算法无法实现,只是理论最优的页面置换算法,可以作为衡量其他置换算法优劣的标准。
2. **先进先出页面置换算法FIFOFirst In First Out** : 最简单的一种页面置换算法,总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面进行淘汰。该算法易于实现和理解,一般只需要通过一个 FIFO 队列即可需求。不过,它的性能并不是很好。
2. **先进先出页面置换算法FIFOFirst In First Out** : 最简单的一种页面置换算法,总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面进行淘汰。该算法易于实现和理解,一般只需要通过一个 FIFO 队列即可满足需求。不过,它的性能并不是很好。
3. **最近最久未使用页面置换算法LRU Least Recently Used**LRU 算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 T当须淘汰一个页面时选择现有页面中其 T 值最大的即最近最久未使用的页面予以淘汰。LRU 算法是根据各页之前的访问情况来实现因此是易于实现的。OPT 算法是根据各页未来的访问情况来实现,因此是不可实现的。
4. **最少使用页面置换算法LFULeast Frequently Used** : 和 LRU 算法比较像,不过该置换算法选择的是之前一段时间内使用最少的页面作为淘汰页。
5. **时钟页面置换算法Clock**:可以认为是一种最近未使用算法,即逐出的页面都是最近没有使用的那个。

View File

@ -239,7 +239,7 @@ for (int binCount = 0; ; ++binCount) {
// 遍历到链表最后一个节点
if ((e = p.next) == null) {
p.next = newNode(hash, key, value, null);
// 如果链表元素个数大于等于TREEIFY_THRESHOLD8
// 如果链表元素个数大于TREEIFY_THRESHOLD8
if (binCount >= TREEIFY_THRESHOLD - 1) // -1 for 1st
// 红黑树转换(并不会直接转换成红黑树)
treeifyBin(tab, hash);

View File

@ -57,7 +57,7 @@ IoC 的思想就是两方之间不互相依赖,由第三方容器来管理相
![](https://oss.javaguide.cn/github/javaguide/system-design/framework/spring/why-ioc.png)
使用 IoC 的思想,我们将对象的控制权(创建、管理)交 IoC 容器去管理,我们在使用的时候直接向 IoC 容器 “要” 就可以了
使用 IoC 的思想,我们将对象的控制权(创建、管理)交 IoC 容器去管理,我们在使用的时候直接向 IoC 容器 “要” 就可以了
![](https://oss.javaguide.cn/github/javaguide/system-design/framework/spring/why-ioc-2.png)