提交 9ef7e2b8 编写于 作者: W wizardforcel

2020-07-09 09:58:40

上级 efd94986
......@@ -164,7 +164,7 @@ printf("I am %d years old", 25);
Here,
* `"I am %d years old"`,是格式化字符串
* `%d`是格式化字符串中的整数数据
* `%d`是格式化字符串中的整数占位符
* 25 是一个参数
格式化的字符串包括文本和数据。 并且,参数替换了格式化字符串中的数据。
......
......@@ -48,7 +48,7 @@ Writer output = new FileWriter();
* `write(String data)` - 将指定的字符串写入写入器
* `append(char c)` - 将指定字符插入当前写入器
* `flush()` - 强制将写入器中存在的所有数据写入相应的目的地
* `close()` - 关闭作者
* `close()` - 关闭写入器
* * *
......
......@@ -170,6 +170,6 @@ The character encoding of output2: UTF8
| 方法 | 描述 |
| --- | --- |
| `flush()` | 强制将写入器中存在的所有数据写入相应的目的地 |
| `append()` | 将指定字符插入当前作者 |
| `append()` | 将指定字符插入当前写入器 |
要了解更多信息,请访问 [Java `OutputStreamWriter`(Java 官方文档)](https://docs.oracle.com/javase/7/docs/api/java/io/OutputStreamWriter.html "Java OutputStreamWriter (official Java documentation)")
\ No newline at end of file
......@@ -166,6 +166,6 @@ The character encoding of output2: UTF8
| 方法 | 描述 |
| --- | --- |
| `flush()` | 强制将写入器中存在的所有数据写入相应的目的地 |
| `append()` | 将指定字符插入当前作者 |
| `append()` | 将指定字符插入当前写入器 |
要了解更多信息,请访问 [Java `FileWriter`(Java 官方文档)](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/FileWriter.html "Java FileWriter (official Java documentation)")
\ No newline at end of file
......@@ -168,7 +168,7 @@ Data is flushed to the file.
| 方法 | 描述 |
| --- | --- |
| `newLine()` | 向作者插入新行 |
| `append()` | 将指定字符插入当前作者 |
| `newLine()` | 向写入器插入新行 |
| `append()` | 将指定字符插入当前写入器 |
要了解更多信息,请访问 [Java `BufferedWriter`(Java 官方文档)](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/BufferedWriter.html "Java BufferedWriter (official Java documentation)")
\ No newline at end of file
......@@ -158,6 +158,6 @@ String: This is the original data
| 方法 | 描述 |
| --- | --- |
| `flush()` | 强制将写入器中存在的所有数据写入字符串缓冲区 |
| `append()` | 将指定字符插入当前作者 |
| `append()` | 将指定字符插入当前写入器 |
要了解更多信息,请访问 [Java `StringWriter`(Java 官方文档)](https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/io/StringWriter.html "Java StringWriter (official Java documentation)")
\ No newline at end of file
......@@ -14,7 +14,7 @@
## `PrintWriter`的工作原理
与其他作者不同,`PrintWriter`将原始数据(`int``float``char`等)转换为文本格式。 然后,它将格式化的数据写入写入器。
与其他写入器不同,`PrintWriter`将原始数据(`int``float``char`等)转换为文本格式。 然后,它将格式化的数据写入写入器。
另外,`PrintWriter`类不会引发任何输入/输出异常。 相反,我们需要使用`checkError()`方法来查找其中的任何错误。
......@@ -24,7 +24,7 @@
## 创建一个`PrintWriter`
为了创建打印作者,我们必须首先导入`java.io.PrintWriter`包。 导入包后,就可以创建打印`Writer`了。
为了创建打印写入器,我们必须首先导入`java.io.PrintWriter`包。 导入包后,就可以创建打印`Writer`了。
**1.使用其他写入器**
......@@ -137,8 +137,8 @@ printf("I am %d years old", 25);
Here,
* `%d`,是格式化字符串
* `%d`是格式化字符串中的整数数据
* `"I am %d years old"`,是格式化字符串
* `%d`是格式化字符串中的整数占位符
* 25 是一个参数
格式化的字符串包括文本和数据。 并且,参数替换了格式化字符串中的数据。
......
......@@ -80,6 +80,6 @@ Then, to find the largest, the following conditions are checked using if else st
* 如果`n1`大于或等于`n2`,则
* 如果`n1`大于或等于`n3`,则`n1`最大。
* 否则,`n3`最大。
* 其他
* 否则
* 如果`n2`大于或等于`n3`,则`n2`最大。
* 否则,`n3`最大。
\ No newline at end of file
......@@ -47,7 +47,7 @@ BlockingQueue<String> animal2 = new LinkedBlockingQueue<>();
* `add()` - 在队列的末尾将元素插入到阻塞队列。 如果队列已满,则引发异常。
* `element()` - 返回阻塞队列的开头。 如果队列为空,则引发异常。
* `remove()` - 从阻队列中删除一个元素。 如果队列为空,则引发异常。
* `remove()` - 从阻队列中删除一个元素。 如果队列为空,则引发异常。
* * *
......@@ -55,7 +55,7 @@ BlockingQueue<String> animal2 = new LinkedBlockingQueue<>();
* `offer()` - 将指定的元素插入到队列末尾的阻塞队列中。 如果队列已满,则返回`false`
* `peek()` - 返回阻塞队列的开头。 如果队列为空,则返回`null`
* `poll()` - 从阻队列中删除一个元素。 如果队列为空,则返回`null`
* `poll()` - 从阻队列中删除一个元素。 如果队列为空,则返回`null`
**`offer()`和`poll()`**
......@@ -80,7 +80,7 @@ offer(value, 100, milliseconds)
`BlockingQueue`还提供了阻止操作并等待队列已满或为空的方法。
* `put()` - 将元素插入阻队列。 如果队列已满,它将等待直到队列有空间插入元素。
* `put()` - 将元素插入阻队列。 如果队列已满,它将等待直到队列有空间插入元素。
* `take()` - 从阻塞队列中删除并返回一个元素。 如果队列为空,它将等待直到队列中有要删除的元素。
假设我们想将元素插入队列。 如果队列已满,则`put()`方法将等待,直到队列有空间插入元素。
......
......@@ -14,9 +14,9 @@ Java 集合框架的`ArrayBlockingQueue`类使用数组提供阻塞队列实现
## 创建`ArrayBlockingQueue`
为了创建一个数组阻队列,我们​​必须导入`java.util.concurrent.ArrayBlockingQueue`包。
为了创建一个数组阻队列,我们​​必须导入`java.util.concurrent.ArrayBlockingQueue`包。
导入包后,可以使用以下方法在 Java 中创建数组阻队列:
导入包后,可以使用以下方法在 Java 中创建数组阻队列:
```java
ArrayBlockingQueue<Type> animal = new ArrayBlockingQueue<>(int capacity);
......@@ -24,8 +24,8 @@ ArrayBlockingQueue<Type> animal = new ArrayBlockingQueue<>(int capacity);
这里,
* `Type` - 数组阻队列的类型
* `容量` - 数组阻塞队列的大小
* `Type` - 数组阻队列的类型
* `capcity` - 数组阻塞队列的大小
例如,
......@@ -45,7 +45,7 @@ ArrayBlockingQueue<Integer> age = new ArrayBlockingQueue<>(5);
`ArrayBlockingQueue`类提供`BlockingQueue`接口中所有方法的实现。
这些方法用于从数组阻队列中插入,访问和删除元素。
这些方法用于从数组阻队列中插入,访问和删除元素。
另外,我们还将学习两种支持数组阻塞队列中阻塞操作的方法`put()``take()`
......@@ -55,8 +55,8 @@ ArrayBlockingQueue<Integer> age = new ArrayBlockingQueue<>(5);
### 插入元素
* `add()` - 将指定的元素插入数组阻队列。 如果队列已满,它将引发异常。
* `offer()` - 将指定的元素插入数组阻队列。 如果队列已满,则返回`false`
* `add()` - 将指定的元素插入数组阻队列。 如果队列已满,它将引发异常。
* `offer()` - 将指定的元素插入数组阻队列。 如果队列已满,则返回`false`
例如:
......@@ -88,8 +88,8 @@ ArrayBlockingQueue: [Dog, Cat, Horse]
### 访问元素
* `peek()` - 从数组阻队列的前面返回一个元素。 如果队列为空,则返回`null`
* `iterator()` - 返回一个迭代器对象,以顺序访问数组阻队列中的元素。 如果队列为空,则抛出异常。 我们必须导入`java.util.Iterator`包才能使用它。
* `peek()` - 从数组阻队列的前面返回一个元素。 如果队列为空,则返回`null`
* `iterator()` - 返回一个迭代器对象,以顺序访问数组阻队列中的元素。 如果队列为空,则抛出异常。 我们必须导入`java.util.Iterator`包才能使用它。
例如:
......@@ -135,9 +135,9 @@ ArrayBlockingQueue Elements: Dog, Cat, Horse,
### 删除元素
* `remove()` - 返回并从数组阻队列中删除指定的元素。 如果队列为空,则抛出异常。
* `poll()` - 返回并从数组阻队列中删除指定的元素。 如果队列为空,则返回`null`
* `clear()` - 从数组阻队列中删除所有元素。
* `remove()` - 返回并从数组阻队列中删除指定的元素。 如果队列为空,则抛出异常。
* `poll()` - 返回并从数组阻队列中删除指定的元素。 如果队列为空,则返回`null`
* `clear()` - 从数组阻队列中删除所有元素。
例如:
......@@ -272,10 +272,10 @@ Removed Element: Dog
| 方法 | 内容描述 |
| --- | --- |
| `contains(element)` | 在数组阻队列中搜索指定的元素。 如果找到该元素,则返回`true`,否则返回`false`。 |
| `contains(element)` | 在数组阻队列中搜索指定的元素。 如果找到该元素,则返回`true`,否则返回`false`。 |
| `size()` | 返回数组阻塞队列的长度。 |
| `toArray()` | 将数组阻塞队列转换为数组并返回它。 |
| `toString()` | 将数组阻队列转换为字符串 |
| `toString()` | 将数组阻队列转换为字符串 |
* * *
......
......@@ -4,7 +4,7 @@
#### 在本教程中,我们将借助示例学习`LinkedBLockingQueue`类及其方法。
Java `Collections`框架的`LinkedBlockingQueue`类使用链接列表提供阻队列实现。
Java `Collections`框架的`LinkedBlockingQueue`类使用链接列表提供阻队列实现。
它实现了 [Java `BlockingQueue`接口](/java-programming/blockingqueue "Java BlockingQueue Interface")
......@@ -35,7 +35,7 @@ LinkedBlockingQueue<Type> animal = new LinkedBlockingQueue<>(int capacity);
这里,
* `Type` - 链接的阻塞队列的类型
* `容量` - 链接的阻塞队列的大小
* `capcity` - 链接的阻塞队列的大小
例如,
......@@ -147,7 +147,7 @@ LinkedBlockingQueue Elements: Dog, Cat, Horse,
* `remove()` - 返回指定的元素并将其从链接的阻塞队列中移除。 如果队列为空,则抛出异常。
* `poll()` - 返回指定的元素并将其从链接的阻塞队列中移除。 如果队列为空,则返回`null`
* `clear()` - 从链接的阻队列中删除所有元素。
* `clear()` - 从链接的阻队列中删除所有元素。
例如:
......@@ -284,7 +284,7 @@ New LinkedBlockingQueue: [Cat]
| 方法 | 内容描述 |
| --- | --- |
| `contains(element)` | 在链接的阻队列中搜索指定的元素。 如果找到该元素,则返回`true`,否则返回`false`。 |
| `contains(element)` | 在链接的阻队列中搜索指定的元素。 如果找到该元素,则返回`true`,否则返回`false`。 |
| `size()` | 返回链接的阻塞队列的长度。 |
| `toArray()` | 将链接的阻塞队列转换为数组并返回该数组。 |
| `toString()` | 将链接的阻塞队列转换为字符串 |
......
......@@ -26,9 +26,9 @@ Java 集合框架的`Map`接口提供了映射数据结构的功能。
**注意**`Map`接口维护 3 个不同的集合:
* 密钥
* 一组值
* 键/值关联(映射)的集合
*
* 值集
* 键/值关联(映射)
因此,我们可以分别访问键,值和关联。
......
......@@ -406,7 +406,7 @@ New HashMap: {Second=2, First=5}
`HashMap`中,我们可以
* 通过其**键**进行迭代
* 遍历其**键**
* 遍历其**值**
* 遍历其**键/值**
......
......@@ -433,4 +433,4 @@ Here,
* `ConcurrentHashMap`类允许多个线程同时访问其条目。
* 默认情况下,并发哈希映射分为 **16 个段**。 这就是为什么允许 16 个线程同时并发修改映射的原因。 但是,任何数量的线程一次都可以访问该映射。
* 如果指定的键已经存在,则`putIfAbsent()`方法将不会覆盖映射中的条目。
* 它提供自己的同步。
\ No newline at end of file
* 它自己提供同步。
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册