分布式搜索引擎基础概览(Elastic Search)

分布式搜索引擎基础概览(Elastic Search)


Elastic Search 数据操作原理、过程;性能优化;集群部署
图解 JVM 内存模型

图解 JVM 内存模型


JVM内存模型:JVM 运行时数据区、程序计数器、虚拟机栈、本地方法栈、堆、Eden区、survivor区、老年代、方法区、永久代、本地内存、直接内存、元空间
ThreadLocal 内存泄漏原理解析

ThreadLocal 内存泄漏原理解析

杂谈 

本文探讨了ThreadLocal的内存泄漏问题及其解决方案。通过分析ThreadLocal的内存模型,指出其使用弱引用机制可能导致内存泄漏:当ThreadLocal对象被回收后,对应的Entry键会被清除,但值对象仍被线程引用而无法回收。实验验证表明,未调用remove()方法时会出现OutOfMemoryError,而正确调用remove()可避免内存泄漏。值得注意的是,该问题并非必然发生,GC有时仍能回收部分空间。文章强调使用ThreadLocal后必须调用remove()方法的重要性。
使用有限内存对巨型数据文件排序

使用有限内存对巨型数据文件排序

杂谈 

本文介绍了一个基于分治思想的大文件排序实现方案。在200MB内存限制下,采用分支、归并的办法,使用openJDK13处理1.72GB数据文件。分享了开发过程中遇到的挑战,包括数据丢失和排序错误等调试经历。
TDD 使用心得

TDD 使用心得

杂谈 

本文分享了在学习《自己动手写Java虚拟机》时实践TDD(测试驱动开发)的心路历程。初期严格遵循TDD流程,测试驱动开发效果良好;随着项目规模扩大,测试代码量激增,开发效率下降,逐渐转向被动测试;到第9章时因前期累积的隐蔽错误导致严重问题,不得不通过对照参考代码才定位到多处拼写错误和逻辑缺陷。最终认识到:在规模较大的项目中,严格遵循TDD虽初期耗时,但能有效预防后期难以定位的深层错误。文章通过具体案例说明,完整的测试覆盖对保证代码质量至关重要,TDD确实能降低系统整体开发时间。