自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 手写核心引擎:不依赖正则库,如何让 Java “读懂”代码?(代码实践篇·下)(从零开始实现Java词法分析器并浅探其工程思想 Ep.4

继搭建好调度中心后,本文将攻克 Lexer 中最棘手的细节。我们将利用**“贪婪匹配”与“前瞻策略”,精准解析数字字面量,并深入探讨如何消除代码中的“歧义”:/ 到底是注释还是除号?字符串中的转义字符如何还原?面对 >>>= 这样复杂的运算符,如何构建嵌套决策树抽丝剥茧?本文不仅是代码的补全,更是对有限自动机 (DFA)** 思想的深度工程化落地。Lexer 引擎现已组装完毕,只待点火启动,快来见证代码“跑”起来的高光时刻!

2025-12-23 08:04:16 924 4

原创 手写核心引擎:不依赖正则库,如何让 Java “读懂”代码?(代码实践篇·上)(从零开始实现Java词法分析器并浅探其工程思想 Ep.3)

本文正式手把手带你用 Java 实现 Lexer 类的核心骨架。我们将逐一解答之前的思考题,从零构建“游标系统”(peek/next),并搭建起 analyze() 这一状态机调度中心。文章不仅提供了详尽的参考代码,更深究背后的工程细节:为什么 scanWord 必须用 StringBuilder 避开 String 的内存陷阱?如何利用 HashSet 实现 O(1) 级的高效关键字查找?作为代码实践的上篇,我们将完成从字符流到单词与关键字的精准捕获,带你写出严谨、高效的编译器底层代码!

2025-12-23 08:01:56 999

原创 手写核心引擎:不依赖正则库,如何让 Java “读懂”代码?(理论介绍篇)(从零开始实现Java词法分析器并浅探其工程思想 Ep.2)

本文带你跨越过程式思维的局限,深度拆解词法分析器的核心算法——有限状态机(FSM)。我们将复杂的代码解析逻辑抽象为“状态转换”与“原子化游标(peek/next)”,通过“超市扫码”的生动比喻,揭示如何利用状态机思维消除非法状态、重塑代码的确定性与工程优雅。文章不仅涵盖了 analyze() 调度中心的骨架构建,更以任务导向引领你思考如何设计子状态处理逻辑。这不仅是一份 Lexer 实现指南,更是一场关于结构化思维与防御性编程的底层洗礼。从此刻起,让你的代码告别逻辑补丁,走向真正的工程化!

2025-12-22 22:39:32 1175 2

原创 写给 Java 初学者的“工程化”启蒙课:尝试开发一个词法分析器能学到什么?(从零开始实现Java词法分析器并浅探其工程思想 Ep.0)

本专栏带你手搓 Java 词法分析器,深度解锁编译器的“之眼”。我们不再复刻枯燥的语法,而是通过构建一个涵盖 Swing 桌面端、Spring Boot Web 端及高级 IO 系统的实战项目,带你亲历从零到全栈交付的完整旅程。文中硬核拆解了 Enum 单一真值来源、MVC 模块化分层及 Stream 流式处理等核心工程思想,手把手教你破解“知晓语法却不会组织代码”的困局。这不仅是一份带你搞定大作业的通关攻略,更是你建立“高内聚、低耦合”思维、完成从“码农”到“软件开发者”蜕变的实战笔记。

2025-12-21 09:49:06 572

原创 告别硬编码:为什么工程项目喜欢用枚举?(从零开始实现Java词法分析器并浅探其工程思想 Ep.1)

拒绝“硬编码”,从底层逻辑构建词法分析器!本文作为《手搓词法分析器》系列的开篇,重点聚焦于数据模型设计。我将手把手教你利用 Java Enum(枚举) 实现类型安全与“单一真值来源”。文章不仅涵盖了 TokenType 的定义标准与 Token 容器的封装技巧,还硬核拆解了 toString() 重写背后的动态绑定原理与工程解耦价值。这不仅是一份代码实现指南,更是一次关于高内聚、面向对象设计的实战教学。即便你是编程小白,也能以此为起点,迈出构建编译器核心模块的坚实第一步!

2025-12-21 03:09:34 1194 8

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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