自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除