java优化
文章平均质量分 84
一新一意
这个作者很懒,什么都没留下…
展开
-
ThreadLocal的内存泄漏
使用 ThreadLocal 不当可能会导致内存泄露,是什么原因导致的内存泄漏呢?代码如下:public class ThreadLocalOutOfMemoryTest {static class LocalVariable {private Long[] a = new Long[1024*1024];}// (1)final static ThreadPoolExecutor poolExecutor = new ThreadPoolExecutor(6, 6, 1, TimeUnit.原创 2021-06-05 15:26:39 · 178 阅读 · 0 评论 -
过滤器 和 拦截器 6个区别?
1、过滤器 (Filter)过滤器的配置比较简单,直接实现Filter 接口即可,也可以通过@WebFilter注解实现对特定URL拦截,看到Filter 接口中定义了三个方法。init() :该方法在容器启动初始化过滤器时被调用,它在 Filter 的整个生命周期只会被调用一次。「注意」:这个方法必须执行成功,否则过滤器会不起作用。doFilter() :容器中的每一次请求都会调用该方法, FilterChain 用来调用下一个过滤器 Filter。destroy():当容器销毁 过滤器实例时调用原创 2020-06-30 14:57:16 · 200 阅读 · 0 评论 -
mybatis的代码规范
一、MyBatis 不要为了多个查询条件而写 1 = 1当遇到多个查询条件,使用where 1=1 可以很方便的解决我们的问题,但是这样很可能会造成非常大的性能损失,因为添加了 “where 1=1 ”的过滤条件之后,数据库系统就无法使用索引等查询优化策略,数据库系统将会被迫对每行数据进行扫描(即全表扫描) 以比较此行是否满足过滤条件,当表中的数据量较大时查询速度会非常慢;此外,还会存在SQL ...原创 2019-12-13 13:50:05 · 767 阅读 · 0 评论 -
Java性能优化的50个细节
尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:第一,控制资源的使用,通过线程同步来控制资源的并发访问;第二,控制实例的产生,以达到节约资源的目的;第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。尽量避免随意使用静态变量当某个对象被定义为s...翻译 2019-03-01 14:20:30 · 118 阅读 · 0 评论 -
你写的代码不够优雅
使用通用工具函数2.1 案例一现象描述:不完善的写法:thisName != null && thisName.equals(name);更完善的写法:(thisName == name) || (thisName != null && thisName.equals(name));建议方案:Objects.equals(name, thisName...原创 2019-09-12 10:26:57 · 232 阅读 · 0 评论