![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
食得落
此刻我仰望星空 寻找生命中最灿烂的亮点
展开
-
ScriptEngineManager groovy 内存泄露
业务场景:使用java8提供的ScriptEngineManager 加载并运行groovy脚本,每次运行从数据库中获取脚本来实现动态编译运行运行一段时间后初始用户量少,没感觉,偶尔一次内存溢出重启就好(话外音:搞不清楚状况先重启 总是没错的)后来用户量越来越大,溢出的次数就越来越频繁 java.lang.OutOfMemoryError: GC overhead limit exceeded通过导出headdump分析发现非堆内存一直在持续增加,不能释放,网上查询的资料也说明了这一点原创 2020-10-20 12:09:33 · 2959 阅读 · 1 评论 -
Mysql 通用任意单表查询API设计
应用场景1/数据库任意单表查询的重复劳动2/数据库任意单表多业务需要不同字段的重复劳动#说明1/黑名单设计,解决敏感表和敏感字段拦截2/防SQL注入处理,对key,value的合法性进行验证3/对于表名暴露给前端,有两种处理方式,一种由node层来传参,一种服务器添加一个表名映射,实现逻辑表与物理表的联系4/为了性能考虑,fields与filter为必填项5/可扩展:加入分页查询,...原创 2020-04-16 14:49:13 · 577 阅读 · 2 评论 -
单例设计
通过内部类加载的互斥原理,实现懒加载和线程安全的单例/** * @Author: mihuajun 【kobe96688@126.com】 * @Date: 11/16/2016 10:04 AM */public class JdbcPropertiesLoader { static class newInstance{ private static JdbcProp原创 2016-11-16 10:52:02 · 203 阅读 · 0 评论 -
将任意json转二维表 不限级
/**限制: * {}直接下级不能有{} * []直接下级不能有[] * []的直接下级类型一致,要么都是int,要么都是string,要么都是{} * * 操作方式: * 1、第一步:处理json对象,保证同一级中不存在多个集合,多余的集合放到第一个集合中的每一个子元素中 * 2、第二步:深度递归 * */ * package com.wanxiaobao.d原创 2016-11-18 10:24:40 · 1830 阅读 · 0 评论 -
java 文件、文件夹 递归复制、移动
package com.freedom.utils;import java.io.*;/** * 文件、文件夹 递归复制、移动 * @Author: mihuajun 【kobe96688@126.com】 * @Date: 12/9/2016 10:22 AM */public class FileUtils { public static void copy(File sour原创 2016-12-09 13:02:03 · 698 阅读 · 0 评论 -
Java 匹配括号中的值
代码String str = "首单${name}典可升级为高${phone}品无损音质";Pattern pattern = Pattern.compile("(?<=\\$\\{)[^\\}]+")Matcher m = pattern.matcher(str);while(m.find()){ System.out.println(m.group());}输出Connected t原创 2016-12-16 11:19:23 · 1603 阅读 · 0 评论 -
基于线程池的事件通知的生产者与消费者
基于线程池的事件通知的生产者与消费者/** * 基于线程池的事件通知的生产者与消费者 * @Author: mihuajun 【kobe96688@126.com】 * @Date: 12/9/2018 10:22 AM */public class ThreadPoolProducerConsumerDemo { public static void main(String[...原创 2019-02-18 16:56:53 · 308 阅读 · 0 评论