Java基础
文章平均质量分 55
MrCao杰罗尔德
这个作者很懒,什么都没留下…
展开
-
导出超大数据量,如何避免JVM出现OOM,EasyExcel分批导出解决思路,超过100w分sheet写
导出背景前边一篇博文提到,查询超大数据量,如何避免JVM出现OOM,分批查询处理解决思路其实企业中,很多地方可能都需求用到文件导出功能,但有的时候我们需求导出一个,对于刚入行的小伙伴,发现需求导出全部数据时,代码里面可能经常会出现这种SQL:#查询全表select * from table_name;#查询很大(很多时候是全表)select * from tab_name limit 0, 9999999;每当博主发现线上机器OOM,在定位到代码的时候,很多地方都是因为导出,当我看到导出代码原创 2022-02-28 20:17:18 · 4826 阅读 · 0 评论 -
查询超大数据量,如何避免JVM出现OOM,分批查询处理解决思路
Java查询优化原创 2022-02-19 11:25:12 · 4769 阅读 · 0 评论 -
Java反射递归比较两个对象(对象中包括对象、List等)里面的不同字段
前言很多时候,我们需要对两个对象做diff,如果字段一多,比较起来相当的麻烦,利用反射,可以快速的实现一些diff比较,尽量性能不好,这是空间换时间的一些做法。正文核心实现如下:/** * * @author Cao Yong * @date 2021-05-28 9:48:12 */public class ModifyFieldsDiffUtil { public static <T> void diff(T before, T after, List<DiffC原创 2021-05-28 21:52:32 · 1810 阅读 · 0 评论 -
观察者模式(监听器模式)+线程池 实现异步发送消息
1.使用场景大家都知道MQ有三个使用场景:1.解耦,2.同步变异步,3.消峰。在很多简单的场景,我们没有必要使用MQ来实现异步,我们可以通过spring的注解@Async或者通过多线程来解决。我在开发中遇到了这样一个使用场景:我们需要在满足条件的情况下,要同时往很多个用户小程序和公众号推送消息,由于推送消息的处理,是非常耗时的,做成同步明显是不合理的。我们需要异步的处理发消息。当然,我们可以使用...原创 2019-01-29 10:53:46 · 3793 阅读 · 2 评论 -
用Java8中用Stream API对多个字段同时计算平均值
1.使用场景比如评论系统中,我们有多项打分,我们要同时对多个评分项求平均值,这个在数据库可以直接通过SQL也可以解决,在java 8后提供的Stream API也能解决这种求值问题,不适合数据量太大的统计。2.数据对象/** * 用户评分实体 */public class UserCommentDTO implements Serializable { /** * 详...原创 2019-06-20 14:04:18 · 8601 阅读 · 1 评论