ThreadLocal 的缺陷本质源于其 “线程绑定 + 弱引用半清理” 设计。在异步编程成为主流的当下,推荐优先使用 TransmittableThreadLocal
MyBatis通过FactoryBean和动态代理机制,将Mapper接口转为Spring Bean,实现无实现类的数据库操作。
Metaspace是JVM存储类元数据的共享内存区,JDK1.8后改用本地内存实现。关键参数-XX:MetaspaceSize设定GC触发水位线(动态浮动,受Max/MinMetaspaceFreeRatio调控)。实验通过CGLib动态加载类验证水位机制,证明当Metaspace占用达设定值时触发GC。需注意MaxMetaspaceSize避免内存耗尽。
LeetCode -- 394. 字符串解码(栈数据结构/递归法)/ 42. 接雨水