
java
PeasantLaborer_W
这个作者很懒,什么都没留下…
展开
-
模板模式详解-设计模式
模板模式详解原创 2022-12-29 13:56:32 · 83 阅读 · 0 评论 -
Java Collections.emptyList() 方法的使用及注意事项
https://blog.youkuaiyun.com/zhuzicc/article/details/106277658转载 2022-03-14 10:19:53 · 186 阅读 · 0 评论 -
在多线程中向ArrayList中add时,出现异常(分析)
1.业务场景在业务场景中需要处理一批数据,根据某一字段排序后返回。由于数据量较大采用多线程同步处理,单线程处理后add到集合中,线程结束后排序,但排序时偶尔会报空指针异常,报错的概率很低。排查错误时发现使用了ArrayList,问题很明显了,因为ArrayList是线程不安全的,所以在多线程中会出现异常,下面我们来分析一下异常原因。2.错误分析 /** * Appends the specified element to the end of this list. *原创 2022-03-11 18:20:57 · 1872 阅读 · 0 评论 -
Java8 中通过 Stream 对列表进行去重
Java8 中通过 Stream 对列表进行去重1. Stream 的distinct()方法distinct()是Java 8 中 Stream 提供的方法,返回的是由该流中不同元素组成的流。distinct()使用 hashCode() 和 eqauls() 方法来获取不同的元素。因此,需要去重的类必须实现 hashCode() 和 equals() 方法。换句话讲,我们可以通过重写定制的 hashCode() 和 equals() 方法来达到某些特殊需求的去重。distinct() 方法声明如下转载 2022-02-21 14:41:59 · 222 阅读 · 0 评论 -
java8新特性-list使用stream排序(多字段)
java8新特性 使用stream排序(多字段)List<类> list; 代表某集合 //返回 对象集合以类属性一升序排序 list.stream().sorted(Comparator.comparing(类::属性一)); //返回 对象集合以类属性一降序排序 注意两种写法 list.stream().sorted(Comparator.comparing(类::属性一).reversed());//先以属性一升序,结果进行属性一降序 list.stream().so原创 2022-02-21 13:52:11 · 16223 阅读 · 0 评论 -
Mybatis莫名自动分页 PageHelper自动分页的问题(已解决)
Mybatis莫名自动分页 PageHelper自动分页的问题(已解决)业务场景:接收到分页参数,需要先查出数据后进行数据过滤,之后手动分页返回。问题:在用Mybatis进行查询的时候,没有使用PageHepler.startPage,但是查询的sql自动查询了count(),而且进行了limit。入参中包含了pageNum和pageSize且都不为空。源码排查原因:找到PageHelper的处理逻辑 PageObjectUtil可以看到它会去获取参数中是否有pageNum和pageSiz原创 2021-12-31 11:13:23 · 2580 阅读 · 0 评论 -
HashMap的put方法解析及源码
先上图①.判断键值对数组table[i]是否为空或为null,否则执行resize()进行扩容;②.根据键值key计算hash值得到插入的数组索引i,如果table[i]==null,直接新建节点添加,转向⑥),如果table[i]不为空,转向③;③.判断table[i]的首个元素是否和key一样,如果相同直接覆盖value,否则转向④,这里的相同指的是hashCode以及equals;④.判断table[i]是否为treeNode,即table[i]是否是红黑树,如果是红黑树,则直接在树中插入键原创 2021-10-18 17:29:56 · 236 阅读 · 0 评论