
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
ThreadLocal强引用引发Tomcat请求对象初始化异常问题排查 本文记录了一个生产环境中由ThreadLocal强引用导致的Tomcat请求对象初始化异常案例。当浏览器携带Cookie访问时,Filter中request.getCookies()返回null,经排查发现是由于ThreadLocal强引用导致Tomcat复用HttpServletRequest对象时初始化流程异常。深入分析表
Java 字体加载失败、Problem reading font data、fontconfig 缺失、Maven 资源损坏、.ttc 加载、OpenJDK 字体问题
自 JDK 8 起,永久代(PermGen)被移除,取而代之的是 Metaspace。它用于存储类的元数据(如 Class、Method、Field 等),默认使用本地内存(Native Memory),理论上可动态扩展,但若类加载器未正确卸载,仍可能导致 Metaspace OOM。
摘要:本文介绍了Zookeeper和Redis实现分布式锁的原理与机制。Zookeeper通过临时顺序节点、Watcher监听和ZAB协议实现分布式锁,具有强一致性特点。Redis通过SETNX命令、Lua脚本和Watchdog机制实现分布式锁,提供多种锁类型但存在主从切换风险。文章对比了两种方案的优缺点,并指出分布式锁应作为最后选择,优先考虑乐观锁、幂等性等方案。两种方案在数据结构、一致性模型和
本文摘要: Java类加载机制采用双亲委派模型,从Bootstrap到自定义加载器逐级委托,确保核心类安全。JVM调优需根据目标(吞吐/延迟/内存)选择策略,包括调整堆内存、GC算法和回收器。GC Roots包括栈帧变量、静态属性、常量等引用对象,决定对象存活状态。新生代采用复制算法快速回收短期对象,而老年代存放长期存活对象,需合理设置比例避免频繁Full GC。不同GC类型适用于不同场景,如Pa
本文深入解析MySQL InnoDB引擎的索引机制。核心要点包括:1)索引采用B+树结构,聚簇索引存储完整数据,非聚簇索引存储键值和主键;2)联合索引遵循最左前缀原则,相比单索引能减少查询次数;3)页分裂影响性能,有序主键可减少分裂;4)索引下推(ICP)和覆盖索引能显著提升查询效率;5)通过EXPLAIN分析type、key_len等指标可评估索引使用效率。文章还详细介绍了B+树存储计算、索引优
@Builder导致mybatis映射错误

现象在本地,测试可以运行,线上环境直接报错java.lang.NoSuchMethodError经过排查,是因为在线上有两个项目,分别使用了不同jar包的解密方法,但是解密方法所在类路径,两者完全相同,解密所用内容不一致原因对于java来说,如果运行中依赖存在两个一模一样的类,类路径一致,就会发生java.lang.NoSuchMethodError错误解决办法由于情况比较特殊,无法按照网上所说的
SpringBoot 结合 Druid 设置mysql多数据源,用以访问不同的数据库








