Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions docs/java/collection/copyonwritearraylist-source-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,10 @@ System.out.println("列表清空后为:" + list);
输出:

```plain
初始列表:[Java, Python, C++]
列表第二个元素为:Python
删除结果:true
列表删除元素后为:[Java, Python]
列表更新后为:[Java, Golang]
列表插入元素后为:[PHP, Java, Golang]
列表大小为:3
Expand Down
2 changes: 1 addition & 1 deletion docs/java/collection/delayqueue-source-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ public boolean offer(E e) {

![](https://oss.javaguide.cn/github/javaguide/java/collection/delayqueue-take-1.png)

注意,调用 `await` 之后 t1 就会释放 `lcok` 锁,假如 `DelayQueue` 持续为空,那么 t2、t3 也会像 t1 一样执行相同的逻辑并进入 `conditionWaiter` 队列中。
注意,调用 `await` 之后 t1 就会释放 `lock` 锁,假如 `DelayQueue` 持续为空,那么 t2、t3 也会像 t1 一样执行相同的逻辑并进入 `conditionWaiter` 队列中。

![](https://oss.javaguide.cn/github/javaguide/java/collection/delayqueue-take-2.png)

Expand Down
2 changes: 2 additions & 0 deletions docs/java/collection/linkedlist-source-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -512,6 +512,8 @@ System.out.println("清空后的链表:" + list);
输出:

```plain
链表内容:[apple, banana, pear]
链表内容:[apple, orange, banana, pear]
索引为 2 的元素:banana
链表内容:[apple, orange, banana, grape]
链表内容:[orange, banana, grape]
Expand Down
2 changes: 1 addition & 1 deletion docs/java/concurrent/java-thread-pool-summary.md
Original file line number Diff line number Diff line change
Expand Up @@ -677,7 +677,7 @@ Exception in thread "main" java.util.concurrent.TimeoutException

#### `shutdown()`VS`shutdownNow()`

- **`shutdown()`** :关闭线程池,线程池的状态变为 `SHUTDOWN`。线程池不再接受新任务了,但是队列里的任务得执行完毕。
- **`shutdown()`** :关闭线程池,线程池的状态变为 `SHUTDOWN`。线程池不再接受新任务了,但是队列里的任务得执行完毕。
- **`shutdownNow()`**:关闭线程池,线程池的状态变为 `STOP`。线程池会尝试中断正在执行的任务,停止处理排队的任务并返回尚未开始执行的任务列表;任务不响应中断时,不能保证立即终止。

#### `isTerminated()` VS `isShutdown()`
Expand Down
10 changes: 5 additions & 5 deletions docs/java/io/io-basis.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ input.close();

- `write(int b)`:将特定字节写入输出流。
- `write(byte b[ ])` : 将数组 `b` 写入到输出流,等价于 `write(b, 0, b.length)`。
- `write(byte[] b, int off, int len)` : 在 `write(byte b[ ])` 方法的基础上增加了 `off` 参数(偏移量)和 `len` 参数(要读取的最大字节数)。
- `write(byte[] b, int off, int len)` : 在 `write(byte b[ ])` 方法的基础上增加了 `off` 参数(偏移量)和 `len` 参数(要写入的最大字节数)。
- `flush()`:刷新此输出流并强制写出所有缓冲的输出字节。
- `close()`:关闭输出流释放相关的系统资源。

Expand Down Expand Up @@ -251,9 +251,9 @@ The content read from file:我是Guide。

- `write(int c)` : 写入单个字符。
- `write(char[] cbuf)`:写入字符数组 `cbuf`,等价于 `write(cbuf, 0, cbuf.length)`。
- `write(char[] cbuf, int off, int len)`:在 `write(char[] cbuf)` 方法的基础上增加了 `off` 参数(偏移量)和 `len` 参数(要读取的最大字符数)。
- `write(char[] cbuf, int off, int len)`:在 `write(char[] cbuf)` 方法的基础上增加了 `off` 参数(偏移量)和 `len` 参数(要写入的最大字符数)。
- `write(String str)`:写入字符串,等价于 `write(str, 0, str.length())`。
- `write(String str, int off, int len)`:在 `write(String str)` 方法的基础上增加了 `off` 参数(偏移量)和 `len` 参数(要读取的最大字符数)。
- `write(String str, int off, int len)`:在 `write(String str)` 方法的基础上增加了 `off` 参数(偏移量)和 `len` 参数(要写入的最大字符数)。
- `append(CharSequence csq)`:将指定的字符序列附加到指定的 `Writer` 对象并返回该 `Writer` 对象。
- `append(char c)`:将指定的字符附加到指定的 `Writer` 对象并返回该 `Writer` 对象。
- `flush()`:刷新此输出流并强制写出所有缓冲的输出字符。
Expand Down Expand Up @@ -403,7 +403,7 @@ void copy_pdf_to_another_pdf_with_byte_array_stream() {

### BufferedInputStream(字节缓冲输入流)

`BufferedInputStream` 从源头(通常是文件)读取数据(字节信息)到内存的过程中不会一个字节一个字节的读取,而是会先将读取到的字节存放在缓存区,并从内部缓冲区中单独读取字节。这样大幅减少了 IO 次数,提高了读取效率。
`BufferedInputStream` 从源头(通常是文件)读取数据(字节信息)到内存的过程中,不会每次只从底层读取一个字节,而是会先将一批读取到的字节存放在内部缓冲区,再从内部缓冲区中逐个读取字节。这样大幅减少了 IO 次数,提高了读取效率。

`BufferedInputStream` 内部维护了一个缓冲区,这个缓冲区实际就是一个字节数组,通过阅读 `BufferedInputStream` 源码即可得到这个结论。

Expand Down Expand Up @@ -433,7 +433,7 @@ class BufferedInputStream extends FilterInputStream {

### BufferedOutputStream(字节缓冲输出流)

`BufferedOutputStream` 将数据(字节信息)写入到目的地(通常是文件)的过程中不会一个字节一个字节的写入,而是会先将要写入的字节存放在缓存区,并从内部缓冲区中单独写入字节。这样大幅减少了 IO 次数,提高了效率
`BufferedOutputStream` 将数据(字节信息)写入到目的地(通常是文件)的过程中,不会每次都将一个字节写入底层目的地,而是会先将要写入的字节逐个存放在内部缓冲区,再将缓冲区中的数据批量写入底层输出流。这样大幅减少了 IO 次数,提高了写入效率。

```java
try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("output.txt"))) {
Expand Down
Loading