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/