摘要: 9012年了,请放弃(a!=null && a.getFiled()!=null)或者封装后写成(!ObejectUtil.isEmpty(a) && !ObjectUtil.isEmpty(a.getFiled()))的写法。快来交接下Optional吧。 Optinal的用法一抓一大片,此处不再 阅读全文
posted @ 2019-09-26 23:47 豆豆323 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 我们常见的几个索引失效场景,大致有以下几种: 1、String型数据使用int直接查 2、like ’%a‘的情况 3、组合索引a,b单独使用b 4、命中数据过多到时扫描全表 5、索引列中有计算或者使用了函数 6、a='x' or b='y',此时a有索引但是b无索引 最近遇到的应该属于4中的一种特 阅读全文
posted @ 2019-09-26 23:13 豆豆323 阅读(798) 评论(0) 推荐(0) 编辑
摘要: InheritableThreadLocal虽然解决了线程异步,但是只能在创建线程时才能生效,但如果我们使用线程池等容器,InheritableThreadLocal就失效了,为此,我们引入阿里开源的TransmittableThreadLocal 阅读全文
posted @ 2019-09-26 23:01 豆豆323 阅读(192) 评论(0) 推荐(0) 编辑
摘要: ThreadLocal大发什么都好,但如果我们要做单独启线程做异步操作,ThreadLocal是无法从父线程传递到子线程的,此时,jdk中自带的InheritableThreadLocal露面了。 阅读全文
posted @ 2019-09-26 22:59 豆豆323 阅读(148) 评论(0) 推荐(0) 编辑
摘要: ThreaLocal大法广泛应用于各大开源框架,大家最熟悉的spring中就有大量运用。相比synchonzied机制的时间换空间,ThreaLocal则倾向于用空间换时间。阅读jdk源码可知,threadLocal实现各线程副本变量的方式,是jdk在每个Thread类中,都引入了一个threadL 阅读全文
posted @ 2019-09-26 22:58 豆豆323 阅读(237) 评论(0) 推荐(0) 编辑