quartz入门及使用
https://blog.csdn.net/noaman_wgs/article/details/80984873
https://zhuanlan.zhihu.com/p/138484577
https://www.jianshu.com/p/06c4307214b7
https://www.javatt.com/p/28536
反射和动态代理
https://www.cnblogs.com/wyq1995/p/10936286.html
https://www.cnblogs.com/wyq1995/p/10945034.html
同步异步问题
https://blog.csdn.net/weililansehudiefei/article/details/70885515
多线程相关
https://www.jianshu.com/p/9b886f80a322
https://gitee.com/SnailClimb/JavaGuide/blob/master/docs/java/Multithread/Atomic.md
ThreadLocal原理
https://mp.weixin.qq.com/s/xW7SJBip2vaXKdTziqb0mA
- 场景一:通常多线程之间需要拥有同一个对象的副本,那么通常就采用initialValue()方法进行初始化,直接将需要拥有的对象存储到ThreadLocal中。
- 场景二:如果多个线程中存储不同的信息,为了方便在其他方法里面获取到信息,那么这种场景适合使用set()方法。例如,在拦截器生成的用户信息,用ThreadLocal.set直接放入到ThreadLocal中去,以便在后续的方法中取出来使用。
Dubbo
https://blog.csdn.net/baoyu_G/article/details/82314435
lombok插件
https://www.jianshu.com/p/2543c71a8e45
深拷贝和浅拷贝
https://www.jianshu.com/p/94dbef2de298
hashmap
https://crossoverjie.top/2018/07/23/java-senior/ConcurrentHashMap/