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

Merge pull request #1240 from wulnm/master

fix format
This commit is contained in:
Guide哥 2021-06-14 22:44:13 +08:00 committed by GitHub
commit 8a526c20ec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 21 additions and 17 deletions

View File

@ -376,7 +376,7 @@ s=list.toArray(new String[0]);//没有指定类型的话会报错
如果要进行`remove`操作,可以调用迭代器的 `remove `方法而不是集合类的 remove 方法。因为如果列表在任何时间从结构上修改创建迭代器之后,以任何方式除非通过迭代器自身`remove/add`方法,迭代器都将抛出一个`ConcurrentModificationException`,这就是单线程状态下产生的 **fail-fast 机制** 如果要进行`remove`操作,可以调用迭代器的 `remove `方法而不是集合类的 remove 方法。因为如果列表在任何时间从结构上修改创建迭代器之后,以任何方式除非通过迭代器自身`remove/add`方法,迭代器都将抛出一个`ConcurrentModificationException`,这就是单线程状态下产生的 **fail-fast 机制**
> **fail-fast 机制** :多个线程对 fail-fast 集合进行修改的时可能会抛出ConcurrentModificationException单线程下也会出现这种情况上面已经提到过。 > **fail-fast 机制** :多个线程对 fail-fast 集合进行修改的时可能会抛出ConcurrentModificationException单线程下也会出现这种情况上面已经提到过。
Java8开始可以使用`Collection#removeIf()`方法删除满足特定条件的元素,如 Java8开始可以使用`Collection#removeIf()`方法删除满足特定条件的元素,如
``` java ``` java

View File

@ -88,7 +88,7 @@ public class Sub extends Super {
} }
``` ```
在上面的例子中Sub 类访问父类成员变量 number 并调用其父类 Super 的 `showNumber` 方法。 在上面的例子中Sub 类访问父类成员变量 number 并调用其父类 Super 的 `showNumber` 方法。
**使用 this 和 super 要注意的问题:** **使用 this 和 super 要注意的问题:**

View File

@ -234,7 +234,11 @@ echo ${str:0:10} #输出:SnailClimb
#author:amau #author:amau
var="https://www.runoob.com/linux/linux-shell-variable.html" var="https://www.runoob.com/linux/linux-shell-variable.html"
# %表示删除从后匹配, 最短结果
# %%表示删除从后匹配, 最长匹配结果
# #表示删除从头匹配, 最短结果
# ##表示删除从头匹配, 最长匹配结果
# 注: *为通配符, 意为匹配任意数量的任意字符
s1=${var%%t*} #h s1=${var%%t*} #h
s2=${var%t*} #https://www.runoob.com/linux/linux-shell-variable.h s2=${var%t*} #https://www.runoob.com/linux/linux-shell-variable.h
s3=${var%%.*} #http://www s3=${var%%.*} #http://www

View File

@ -197,8 +197,8 @@ public V get(Object key) {
举例:下面 join 查询出来 6 条记录,一、二列是 Teacher 对象列,第三列为 Student 对象列MyBatis 去重复处理后,结果为 1 个老师 6 个学生,而不是 6 个老师 6 个学生。 举例:下面 join 查询出来 6 条记录,一、二列是 Teacher 对象列,第三列为 Student 对象列MyBatis 去重复处理后,结果为 1 个老师 6 个学生,而不是 6 个老师 6 个学生。
t_id t_name s_id | t_id | t_name | s_id |
| ---- | ------- | ---- |
| 1 | teacher | 38 | | 1 | teacher | 38 |
| 1 | teacher | 39 | | 1 | teacher | 39 |
| 1 | teacher | 40 | | 1 | teacher | 40 |
@ -238,7 +238,7 @@ public V get(Object key) {
**`SimpleExecutor`**每执行一次 update 或 select就开启一个 Statement 对象,用完立刻关闭 Statement 对象。 **`SimpleExecutor`**每执行一次 update 或 select就开启一个 Statement 对象,用完立刻关闭 Statement 对象。
**``ReuseExecutor`**执行 update 或 select以 sql 作为 key 查找 Statement 对象,存在就使用,不存在就创建,用完后,不关闭 Statement 对象,而是放置于 Map<String, Statement>内,供下一次使用。简言之,就是重复使用 Statement 对象。 **`ReuseExecutor`**执行 update 或 select以 sql 作为 key 查找 Statement 对象,存在就使用,不存在就创建,用完后,不关闭 Statement 对象,而是放置于 Map<String, Statement>内,供下一次使用。简言之,就是重复使用 Statement 对象。
**`BatchExecutor`**执行 update没有 selectJDBC 批处理不支持 select将所有 sql 都添加到批处理中addBatch()等待统一执行executeBatch()),它缓存了多个 Statement 对象,每个 Statement 对象都是 addBatch()完毕后,等待逐一执行 executeBatch()批处理。与 JDBC 批处理相同。 **`BatchExecutor`**执行 update没有 selectJDBC 批处理不支持 select将所有 sql 都添加到批处理中addBatch()等待统一执行executeBatch()),它缓存了多个 Statement 对象,每个 Statement 对象都是 addBatch()完毕后,等待逐一执行 executeBatch()批处理。与 JDBC 批处理相同。