- 博客(4)
- 收藏
- 关注
原创 你真的理解JMM(Java内存模型)吗?
本文深入解析了Java内存模型(JMM)的核心概念,重点阐述了三性:原子性、可见性和有序性。通过MESI协议解释了多线程缓存一致性问题,指出现代CPU为提高性能会对强一致性进行折衷。文章详细分析了volatile关键字的底层实现原理,说明其如何通过lock指令保证可见性和有序性。同时介绍了JMM的8个原子操作规范和happens-before原则,这些规则确保了多线程环境下的正确执行顺序。最后通过单例模式案例展示了这些理论在实际编程中的应用,为理解Java并发编程提供了理论基础。
2025-11-19 17:52:53
714
原创 入门并理解Java模块化系统(JPMS)
本文介绍了Java9引入的模块化系统(JPMS),对比传统JAR机制,分析了模块化编程的优势。通过HelloWorld示例演示了模块化开发流程,包括创建module-info文件、编译运行等步骤。文章重点解析了模块依赖管理机制,通过案例说明exports/requires关键字的作用。同时探讨了JDK自身的模块化重构、模块解析原理以及与类加载器的关系。最后以SpringBoot3项目为例,讨论了模块化与现有框架的兼容性问题。模块化编程能有效控制代码可见性,但实际开发中仍需权衡其与向后兼容性的关系。
2025-11-08 16:35:28
671
原创 二叉树的遍历算法和栈的运用
在开始讲这个问题前,大家要知道栈是如何运用的。很多人会说,“就是后进后出嘛”,那我要以一个大家在数据结构课上应该遇到过的问题开始今天的讲解:利用栈,答案是五种,ABC、ACB、BAC、BCA、CBA,每次输入和输出的顺序不同可以产生很多结果,这也是。接下来,无痛解决二叉树遍历问题,本文将主要讲解迭代解法,递归的方法较为简单。
2023-10-21 16:31:17
1245
1
原创 KMP算法和实现差异
不难看出,实际上无论是哪个循环,经过变式都可以统一,但是不同的处理方式也就造成了不同的题解和博客,使得读了不同博客的读者产生疑惑,也就使得KMP算法越来越难懂。
2023-10-17 15:38:03
300
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅