源码剖析
是曹大大
这个作者很懒,什么都没留下…
展开
-
【开发踩坑】@Builder注解下字段默认值设置失败
那么如果走的是Builder().build(),这里会直接pass属性设置,build之后返回的是全空的属性的对象,默认值设置也就失效了;加入 @Default 注解的属性如果在build阶段没有明确set值,那么就会取默认值;这里的ifEvaluate属性默认值设置失败,属性取出为空;使用@Builder注解并对一个属性设置了默认值。运行时设置属性的值(如果没有传入,则不会设置);本质是AOP注入一个内部类:TBuilder。原创 2024-07-18 09:41:39 · 339 阅读 · 0 评论 -
【源码剖析】ThreadLocal 源码剖析
当某个 ThreadLocal 已经失效,按照常理应该被回收的时候(这个时候,可能有多个线程持有ThreadLocalMap,并在内部的 Entry 中持有 ThreadLocal 对象,而这个对象对于线程而言已经是没用的了);此时如果这里对 ThreadLocal 的引用是强引用,那么 JVM 判断不应该回收,造成内存泄露;Entry 对所持有的对象(ThreadLocal 对象)的引用方式是弱引用,jvm 进行 GC 的时候不会考虑弱引用的引用;这里提供一个延迟计算、动态创建对象的函数式接口;原创 2024-07-17 15:26:08 · 434 阅读 · 0 评论 -
【源码剖析】Optional 工具类源码剖析
简单来说就是一个简单的细粒度安全编程工具类。原创 2024-07-17 15:20:40 · 220 阅读 · 0 评论