1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

Merge pull request #2152 from cxhello/main

Update delayqueue-source-code.md
This commit is contained in:
Guide 2023-09-01 16:21:42 +08:00 committed by GitHub
commit 43e1fd4f52
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 5 deletions

View File

@ -115,7 +115,7 @@ Task 3
## DelayQueue 源码解析
这里以 JDK1.8 为例,分析一下 `LinkedList` 的底层核心源码。
这里以 JDK1.8 为例,分析一下 `DelayQueue` 的底层核心源码。
`DelayQueue` 的类定义如下:
@ -126,7 +126,7 @@ public class DelayQueue<E extends Delayed> extends AbstractQueue<E> implements B
}
```
`DelayQueue` 实现了 `AbstractQueue` 类,继承`BlockingQueue` 接口。
`DelayQueue` 继承了 `AbstractQueue` 类,实现`BlockingQueue` 接口。
![DelayQueue类图](https://oss.javaguide.cn/github/javaguide/java/collection/delayqueue-class-diagram.png)
@ -356,4 +356,4 @@ public E peek() {
- 《深入理解高并发编程JDK核心技术》:
- 一口气说出Java 6种延时队列的实现方法(面试官也得服):<https://www.jb51.net/article/186192.htm>
- 图解DelayQueue源码java 8——延时队列的小九九: <https://blog.csdn.net/every__day/article/details/113810985>
<!-- @include: @article-footer.snippet.md -->
<!-- @include: @article-footer.snippet.md -->

View File

@ -215,7 +215,7 @@ static final class RunnableAdapter<T> implements Callable<T> {
工厂模式用于创建对象NIO 中大量用到了工厂模式,比如 `Files` 类的 `newInputStream` 方法用于创建 `InputStream` 对象(静态工厂)、 `Paths` 类的 `get` 方法创建 `Path` 对象(静态工厂)、`ZipFileSystem` 类(`sun.nio`包下的类,属于 `java.nio` 相关的一些内部实现)的 `getPath` 的方法创建 `Path` 对象(简单工厂)。
```java
InputStream is Files.newInputStream(Paths.get(generatorLogoPath))
InputStream is = Files.newInputStream(Paths.get(generatorLogoPath))
```
## 观察者模式
@ -318,4 +318,4 @@ class PollingWatchService
- 装饰器模式:通过剖析 Java IO 类库源码学习装饰器模式https://time.geekbang.org/column/article/204845
- sun.nio 包是什么,是 java 代码么? - RednaxelaFX https://www.zhihu.com/question/29237781/answer/43653953
<!-- @include: @article-footer.snippet.md -->
<!-- @include: @article-footer.snippet.md -->