- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 Spring Boot如何实现微服务的服务注册与发现?
通过Eureka实现的服务注册与发现,Spring Boot微服务获得了动态伸缩能力——新实例启动自动注册,故障实例自动剔除。结合Ribbon的客户端负载均衡,实现了位置透明的服务调用。生产环境建议:集群部署:至少3节点避免单点故障安全加固:开启HTTP Basic认证监控集成:暴露指标对接Prometheus容量规划:单个Eureka集群支撑数千实例。
2025-08-19 15:40:13
860
原创 JDK8的Lambda表达式怎样简化集合操作?
Lambda表达式通过、函数式接口和接口默认方法三位一体,将Java集合操作从如何做(How)的指令描述,转向做什么(What)的意图声明。这种转变不仅减少了代码量,更通过并行流、惰性求值等特性提升了运行时效率。随着后续版本如Java 17的Record类和的加入,函数式集合操作将继续深化,成为高可维护性Java代码的基石。最佳实践提示:简单遍历优先选forEach而非完整Stream链避免在Lambda中修改外部状态(违反无副作用原则)并行流谨慎用于I/O阻塞任务。
2025-08-19 15:37:07
336
原创 Java中如何实现线程安全的单例模式?
实现方式线程安全懒加载性能防反射防序列化破坏推荐度饿汉式✅❌⭐⭐⭐⭐❌❌⭐⭐同步方法懒汉式✅✅⭐❌❌⭐双重检查锁 (DCL)✅ (需volatile)✅⭐⭐⭐⭐❌❌⭐⭐⭐静态内部类✅✅⭐⭐⭐⭐⭐❌❌⭐⭐⭐⭐⭐枚举✅❌⭐⭐⭐⭐✅✅⭐⭐⭐⭐最终建议:优先选择静态内部类。
2025-08-19 15:35:24
1770
原创 偏向锁在Java 15后为何默认禁用?
JDK 15默认禁用偏向锁,是JVM团队基于硬件演进、性能实测与工程成本的综合决策。这一调整推动了开发者采用更适应高并发的同步策略(如轻量级锁与无锁编程),同时简化了JVM内部实现。对于绝大多数应用,禁用偏向锁是性能与稳定性的双重优化。场景类型偏向锁适用性替代优化方案性能影响单线程独占⭐⭐⭐ 高效手动启用偏向锁轻微损失(1-3%)低线程竞争⭐⭐ 中等轻量级锁+自旋优化稳定无波动高并发竞争⚠️ 不适用(性能瓶颈)
2025-08-11 16:33:22
1466
原创 ThreadLocal使用不当为何导致内存泄漏?
ThreadLocal 在使用不当的情况下会引发内存泄漏问题,其根本原因在于 ,结合线程的长期存活(如线程池场景),导致无用数据无法被垃圾回收。
2025-08-11 16:28:59
2074
原创 ForkJoinPool工作窃取算法如何避免竞争?
工作窃取算法通过 “本地操作与远程窃取分离” + “无锁同步” + “任务粒度优化”操作分离:LIFO 本地操作 vs. FIFO 远程窃取。轻量同步:CAS 和无锁队列减少阻塞。动态负载:窃取大任务 + 线程协作式调度。这使得 ForkJoinPool 在处理可分解任务(如递归计算、排序)时,能高效利用多核资源,同时避免传统线程池的锁竞争问题。join()
2025-08-11 16:26:59
648
原创 元空间OOM的根本原因是什么?
元空间OOM的本质是类元数据生命周期管理失控,或资源分配不足导致。与堆内存OOM不同,元空间溢出后Full GC无法回收内存(除非卸载类),因此需通过代码优化、缓存机制、配置调优综合解决。生产环境中建议对元空间使用率设置监控告警,早于OOM发生前干预。
2025-08-11 16:23:45
707
原创 ZGC如何实现亚毫秒级停顿?
ZGC(Z Garbage Collector)通过多项创新技术协同实现亚毫秒级停顿(通常≤1ms),其核心设计围绕展开。
2025-08-11 16:18:59
780
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅