- 博客(45)
- 收藏
- 关注
原创 在CSDN写了一年,我从“Hello World“走到了AI Agent
一年前,我写文章是为了"记住";现在,我写文章是为了"理解"。希望一年后回头看,每一篇文章都是一级台阶,而不是一串脚印。互相学习,共同进步。
2026-06-21 00:31:33
199
原创 OpenClaw配置完全指南:从零搭建个人AI助手
OpenClaw(俗称"龙虾AI")是一个开源的AI Agent平台,GitHub星标已达250K+,超越React成为当前增速最快的开源框架之一。GitHub星标:250K+npm周下载量:150万次全球活跃用户:40万贡献者:1274人ClawHub生态:5700+技能模块开源免费,可自定义部署支持20+AI提供商(DeepSeek、Moonshot、OpenRouter等)支持12+消息渠道(飞书、企业微信、QQ、钉钉等)本地运行,数据隐私有保障本篇我们学习了:✅。
2026-06-01 18:38:50
130
原创 Java从零到熟练(十二):Java与AI工具整合
LangChain4j是Java版本的LangChain框架,用于构建基于大语言模型的应用程序。
2026-06-01 18:08:17
374
原创 Java从零到熟练(十一):Spring框架入门
Spring是一个轻量级的控制反转(IoC)和面向切面编程(AOP)的容器框架。Spring的核心特性:IoC(控制反转):对象创建和依赖管理由容器负责DI(依赖注入):通过构造函数、setter或字段注入依赖AOP(面向切面编程):在不修改代码的情况下增强功能MVC:Web应用开发框架事务管理:声明式事务管理依赖注入是IoC的实现方式,对象不自己创建依赖,而是由容器注入。// 没有依赖注入// 硬编码// 使用依赖注入@Service// 构造函数注入(推荐)
2026-06-01 18:07:27
33
原创 Java从零到熟练(十):JVM基础与性能优化
JVM是Java虚拟机,是运行Java程序的平台。Java程序编译成字节码后,由JVM解释执行。源代码(.java) → 编译器(javac) → 字节码(.class) → JVM → 机器码 → 执行垃圾回收(Garbage Collection)是JVM自动管理内存的机制,会自动回收不再使用的对象。// obj1不再被引用,成为垃圾// 建议JVM进行垃圾回收(不保证立即执行)System.out.println("垃圾回收完成");本篇我们学习了:✅JVM架构。
2026-06-01 18:06:37
143
原创 Java从零到熟练(九):并发编程基础
本篇我们学习了:✅线程基础:创建线程、线程生命周期✅线程同步:synchronized、Lock接口✅线程间通信✅并发集合✅线程池✅原子类优先使用Runnable和Callable创建线程同步是为了保护共享资源,但会降低并发性线程池是管理线程的最佳方式死锁是并发编程的大敌,要注意锁的顺序《Java从零到熟练(十):JVM基础与性能优化》了解JVM内存模型学习垃圾回收机制掌握性能调优技巧。
2026-06-01 18:05:46
23
原创 Java从零到熟练(八):泛型与注解
/ 泛型方法:在返回类型前声明类型参数// 返回泛型类型的泛型方法return max;System.out.print("数字:");System.out.print("水果:");System.out.println("最大数字:" + findMax(numbers));System.out.println("最大水果:" + findMax(fruits));注解是元数据,提供关于程序元素但不影响程序执行的信息。
2026-06-01 18:05:02
80
原创 Java从零到熟练(七):异常处理与I/O
异常是程序运行时发生的错误事件,会中断程序的正常执行流程。:空指针异常:数组越界异常:数字格式异常:文件未找到异常:算术异常(如除以零)// 自定义受检异常super("余额不足,缺少:" + deficit + "元");// 自定义运行时异常super("无效年龄:" + age);System.out.println("取款成功,余额:" + balance);try {// 成功// 抛出异常。
2026-06-01 18:04:00
88
原创 Java从零到熟练(六):集合框架
本篇我们学习了:✅List:ArrayList、LinkedList的使用和区别✅Set:HashSet、LinkedHashSet、TreeSet的特点✅Map:HashMap、LinkedHashMap、TreeMap的应用✅Collections工具类:排序、查找、反转等操作✅集合转换:数组与集合的互转根据需求选择合适的集合类型ArrayList适合随机访问,LinkedList适合频繁插入删除HashSet最快但无序,TreeSet有序但较慢。
2026-06-01 18:02:39
205
原创 Java从零到熟练(五):面向对象进阶
/ 接口定义// 常量(默认public static final)// 抽象方法(默认public abstract)// 默认方法(Java 8+)System.out.println("绘制边框");draw();// 静态方法(Java 8+)本篇我们学习了:✅继承:代码复用,extends关键字✅多态:同一方法,不同行为✅抽象类:模板方法,不能实例化✅接口:完全抽象,多实现✅类型转换:向上转型、向下转型继承实现代码复用,多态实现灵活扩展。
2026-06-01 12:35:12
180
原创 Java从零到熟练(四):面向对象基础
面向对象是一种编程思想,它将现实世界的事物抽象为程序中的对象。属性(Attribute):描述对象的状态方法(Method):描述对象的行为类比理解:类(Class):相当于"图纸"或"模板",定义了对象应该有什么属性和方法对象(Object):相当于"实物",根据图纸创建出来的具体实例"人"是一个类,"张三"是一个对象"汽车"是一个类,"我的车"是一个对象"银行账户"是一个类,"我的储蓄账户"是一个对象// 属性(成员变量)int age;// 方法(成员方法)
2026-06-01 12:33:24
385
原创 Java从零到熟练(三):流程控制
本篇我们学习了:✅if-else:条件判断的基本形式✅switch:多值判断的清晰写法✅for循环:已知次数的循环✅while循环:不确定次数的循环✅do-while:至少执行一次的循环✅:循环控制选择合适的循环结构:for适合已知次数,while适合条件判断break和continue是控制循环的利器,但要谨慎使用避免无限循环,确保有退出条件嵌套循环不要超过3层,保持代码可读性《Java从零到熟练(四):面向对象基础》理解面向对象编程思想学习类和对象的概念。
2026-06-01 12:31:42
219
原创 Java从零到熟练(二):变量、数据类型与运算符
变量是程序中用于存储数据的命名空间。可以把变量想象成一个盒子,盒子上贴着标签(变量名),盒子里装着东西(数据)。变量的三要素:变量名:标识符,用于引用变量数据类型:决定存储什么类型的数据变量值:实际存储的数据本篇我们学习了:✅变量:声明、赋值、命名规则、作用域✅数据类型:8种基本类型(整数、浮点、字符、布尔)✅类型转换:自动转换和强制转换✅运算符:算术、赋值、比较、逻辑、三元✅字符串:常用操作方法✅常量:final关键字Java是强类型语言,变量必须先声明类型。
2026-06-01 12:30:20
245
原创 Java从零到熟练(一):环境搭建与第一个程序
环境搭建:安装JDK、配置环境变量、选择IDE第一个程序:编写、编译、运行HelloWorld代码理解:逐行解析程序结构AI工具:介绍如何用AI加速学习问题解决:常见错误及修复方法学习编程最重要的是动手实践。不要只看代码,要亲手敲一遍,运行一遍,调试一遍。遇到问题不要怕,AI工具就是你的私人助手。
2026-06-01 12:28:36
381
原创 Hermes Agent 完全使用指南:从安装到多平台部署的全流程教程
安装 → 配置模型 → 首次对话 → 启用工具 → 配置网关 → 高级功能推荐上手路径:Day 1:安装 + 配置一个提供商 + 跑通首次对话Day 2:启用常用工具(terminal、file、web)+ 安装几个技能Day 3:配置一个即时通讯平台(推荐 Telegram)Day 4+:按需探索 Cron、语音、多 Profile、MCP 等高级功能核心原则:先跑通一个干净的工作流,再加高级功能。
2026-05-28 19:52:15
392
原创 从零搭建轻灵(五):记忆系统与生产化特性
架构:模块化设计,Agent Loop 是唯一协调者Agent Loop:ReAct 循环,Tool Calling,Token 预算TUI:ANSI 控制,追加式输出,CJK 宽度工具与 Pipeline:可插拔工具,Hook/Section/Verification记忆与生产化:三层记忆,向量搜索,Mission/Daemon/Dashboardgit clone然后从 v0.1 开始自己搭建在现有基础上添加新工具接入自己的 LLM API把 TUI 改成你喜欢的风格。
2026-05-23 23:53:59
899
原创 从零搭建轻灵(四):工具系统与 Pipeline
这是「从零搭建轻灵」系列的第4篇。我们实现让 Agent 真正「干活」的工具系统,以及控制工具行为的 Pipeline。
2026-05-23 23:52:32
262
原创 从零搭建轻灵(三):流式 TUI 终端界面
这是「从零搭建轻灵」系列的第3篇。我们用纯 ANSI 转义序列实现 Claude Code 风格的终端界面。
2026-05-18 00:08:15
210
原创 从零搭建轻灵(二):Agent Loop 核心循环
Agent Loop 是一个无限循环while (未超过最大迭代次数) {1. 把消息列表发给 LLM2. 如果 LLM 返回纯文本 → 返回结果,循环结束3. 如果 LLM 返回 tool_calls → 执行每个工具4. 把工具结果追加到消息列表5. 继续循环这个模式来自 Anthropic 的「Building Effective Agents」论文,也是 Claude Code、Cursor、Devin 等产品的底层原理。
2026-05-18 00:07:03
309
原创 从零搭建轻灵:一个 TypeScript CLI Agent 框架的诞生
用 TypeScript + DeepSeek API 构建你自己的 AI 编程助手,全流程技术博客系列。
2026-05-18 00:03:55
410
原创 轻棋局(六):部署上线与运维
Cloudflare Worker 是一个 serverless 计算平台,代码在 Cloudflare 的边缘节点运行。接收用户请求转发到后端源站缓存静态资源执行简单的逻辑(如路由、鉴权)
2026-05-18 00:01:07
570
原创 轻棋局(五):多棋种统一架构
轻棋局同时支持中国象棋、五子棋和围棋三种完全不同的棋类。这三种棋的规则、棋盘、棋子、AI 算法都截然不同,但它们共享同一套用户系统、房间系统、对局管理和前端界面。:三种 Board 不继承同一个抽象类,而是各自独立实现。无需修改 Schema — 现有表结构已经支持任意棋种。这种设计既保证了代码复用,又避免了过度抽象导致的复杂性。本篇讲解如何设计一个统一架构来支持多种棋类。房间不绑定特定棋种,通过。
2026-05-17 00:21:03
359
原创 轻棋局(二):后端核心架构
上一篇我们概览了轻棋局的整体架构。这一篇深入后端核心:Undertow 服务器如何处理请求、WebSocket 如何实现实时对战、认证系统如何保护用户数据、房间系统如何管理多人对局。
2026-05-17 00:10:26
689
原创 轻棋局(一):项目总览与架构设计
Spring Boot 是 Java Web 开发的事实标准,但这个项目选择对比项Undertow启动速度2-5 秒< 1 秒内存占用200MB+50MB 左右JAR 体积30-50MB~4MB依赖数量20+学习曲线高(注解、IoC、自动配置)低(直接写 Handler)对于一个棋类游戏服务器,不需要 Spring 的 IoC 容器、自动配置、AOP 等重型特性。Undertow 的足够处理所有路由,处理数据库操作,WebSocket处理实时对战。
2026-05-17 00:07:08
565
原创 线程进阶: 无人机自动防空平台开发教程V2
本文介绍了一个基于Java线程的无人机防空平台仿真系统。系统包含窗体界面、无人机和入侵者对象、多线程控制和事件监听等模块。通过JFrame构建GUI界面,使用ArrayList动态管理无人机和入侵者对象,通过DroneThread线程类实现画面刷新和碰撞检测,并采用监听器模式处理用户交互。无人机具有移动、雷达扫描功能,入侵者具有随机移动特性,系统实现了基本的目标检测和运动轨迹展示功能,为后续扩展防空系统功能奠定了基础。
2026-01-31 11:19:53
430
原创 线程之舞:程序运行的韵律与光影
本文介绍了单线程程序的执行特点及多线程的必要性。在单线程程序中,代码只能顺序执行(如A→B→C),无法同时处理多个任务。以无人机程序为例,若所有功能都写在main线程中会导致界面卡死。线程本质是程序中的独立执行路线,通过多线程可实现并行处理。文章还讲解了进程与线程的关系:进程是资源分配单位,线程是执行单元,共享进程资源但拥有独立栈空间。最后介绍了Java创建线程的第一种方式——继承Thread类,包括标准写法模板及注意事项(需调用start()方法而非直接调用run())。
2026-01-30 12:14:34
188
原创 Markdow文档初学
本文介绍了Markdown基础语法,包括标题(#表示级别)、文字样式(粗体、斜体、删除线)、列表(无序和有序)、代码块(行内和块级)、引用(>符号)、分割线(***)以及表格的创建方法(使用|分隔列,冒号控制对齐)。文中提供了Java代码示例和表格对齐示例,展示了Markdown的常用格式化功能。
2026-01-21 21:41:13
394
原创 JAVA实战:文件管理系统1.0
本文介绍了一个基于Java的文件管理系统实现。系统通过控制台交互提供多项文件操作功能:1)获取文件名列表;2)创建新文件;3)删除文件;4)获取文件路径;5)创建多级目录。程序采用while循环实现功能菜单循环显示,用户通过输入功能编号选择操作。主要使用了Java的File类实现文件操作,包括list()、createNewFile()、delete()、getPath()和mkdirs()等方法。系统以相对路径"files/"作为基础目录,实现了基本的文件管理功能,并提供了错误处理机制
2025-11-30 19:49:29
923
原创 C语言经典算法:汉诺塔问题
汉诺塔问题是一个经典的递归算法案例。文章通过4层汉诺塔为例,详细解释了递归思想的核心:将前n-1层视为整体,转化为简单的两层问题,再逐步分解。递归的关键在于基础情况(n=1)和递归情况(调用自身处理更小子问题)。文中提供了完整的C语言实现代码,展示了如何通过递归函数hanoi()实现盘子移动,其中参数依次为盘子数、起始柱、辅助柱和目标柱。该算法体现了递归"分而治之"的思想,将复杂问题分解为相同类型的子问题,直到达到可直接解决的基础情况。
2025-11-21 21:15:18
898
原创 C语言初步学习:数组的增删查改
本项目实现了一个基于静态数组的动态数组操作库,提供增删查改等基本功能。核心功能包括:尾部添加元素(add)、按索引/值删除元素(remove/removeBye)、元素查找(get/indexOf)和指定位置插入(insert)。所有操作都包含边界检查,删除操作采用元素前移策略,插入操作采用后移策略。通过交互式菜单调用,支持动态维护数组元素。该实现利用静态数组模拟动态数组行为,虽然空间固定但操作高效,适合教学和小规模应用场景。
2025-10-15 22:43:48
974
1
原创 C语言基础知识梳理1.0
这是一篇C语言基础知识的笔记,主要包含以下内容: 数据类型:介绍了基本数据类型(如char、int、float等)和引用数据类型(类、接口、数组等); 常量与变量:解释了常量的定义、分类以及变量的定义要点、分类和应用场景; 运算符:列举了赋值、算术、关系、逻辑、位运算等各类运算符及其优先级; 数据结构:简要说明了数组、链表、栈等常见数据结构的C语言实现方式。 作者表示因大学生活节奏变化导致学习懈怠,希望通过整理这些基础知识来巩固自己的编程能力,并承诺后续会补充完善数据类型相关内容。
2025-10-12 22:07:59
603
1
原创 Java数据类型与基本语法知识回顾
本文系统介绍了Java编程基础知识,包括数据类型、程序结构、类与对象、接口实现、数组操作和图形界面开发等核心内容。重点讲解了Java的8种基本数据类型及其特性、main方法规范、变量声明与运算符使用,并通过实际案例展示了类定义、对象实例化和接口实现的具体方法。此外,文章还详细说明了数组动态初始化和遍历技巧,以及基于JFrame的图形界面开发流程,包括按钮添加、事件监听和图像处理技术(灰度化、马赛克、油画效果等实现)。最后通过一个完整的图像处理程序示例,演示了如何加载图片、应用不同滤镜效果并实现交互功能。
2025-08-12 17:08:29
812
原创 初步Java学习:图像处理2.0
本文介绍了一个基于Java的图像处理系统实现方案。系统分为三个核心模块:1)图像处理类(ImageTools)实现图片加载及多种滤镜效果(灰度、马赛克、油画、去背景等);2)监听器类(ImageListen)处理按钮点击和鼠标事件;3)界面开发类(ImageUI)构建GUI窗体,包含7个功能按钮。技术实现上,通过BufferedImage处理图像像素,采用RGB通道运算实现不同滤镜效果,使用事件监听机制实现交互功能。该系统支持基本的图像处理操作,可作为Java图像处理学习的参考实现。
2025-08-08 19:38:33
2185
原创 初步Java学习:图像处理1.0
这篇文章介绍了如何使用Java Swing框架实现图片处理功能。主要步骤包括:1)创建ImageUI类继承JFrame;2)定义显示界面的showUI()方法;3)实现读取图片的readDate()方法;4)通过paint()方法处理图片数据。文章重点演示了四种图片处理效果:马赛克(10x10像素块)、亮度提升(各通道值+20)、滤镜(RGB平均值/2)和灰度(RGB平均值/3)。最后提供了完整的灰度处理代码示例,包含主程序入口。这些效果都是通过遍历像素数组并修改RGB值实现的,适合Java图形处理初学者参
2025-08-06 16:56:47
1046
原创 初步Java学习:面向对象编程(3)
本文介绍了Java Swing界面开发的实现方法,重点讲解了登录界面的组件设置与功能实现。主要内容包括:1) 创建LoginUI类构建窗体框架,设置标题、尺寸、布局等属性;2) 添加账号/密码标签、文本框和登录按钮组件;3) 实现按钮监听器LoginAction类处理点击事件;4) 界面美化设置,包括组件尺寸、背景色和字体样式调整。通过详细的代码示例展示了完整的登录界面开发流程,帮助理解Swing组件的使用方法。
2025-08-03 19:53:55
1816
原创 初步JAVA学习:面向对象编程(2)
本文介绍了基于Java Swing的绘图板开发流程。首先通过创建DrawPad类构建窗体基础框架,使用JFrame设置窗口属性(标题、尺寸、位置等)。然后实现MouseListener接口创建DrawListen监听器类,重写鼠标事件方法获取坐标信息,并通过Graphics对象进行图形绘制。最后将监听器绑定到窗体,实现鼠标交互绘图功能。代码演示了如何获取鼠标坐标、设置颜色以及绘制线条,为Java图形界面开发提供了基础实现模板。
2025-08-01 16:43:04
1777
原创 初步JAVA学习:面向对象编程(1)
面向对象编程(OOP)是一种以类和对象为核心的编程范式。Java中通过定义类(包含属性和方法)来创建对象,实现代码复用和模块化。类作为对象的模板,包含属性(变量)和方法(函数),使用new关键字实例化对象后,可调用其属性和方法。本文详细介绍了类的定义格式、命名规范、属性声明和方法定义,并提供了一个用户类(User)的完整示例,展示如何创建对象并调用其方法(如显示信息showIn()和登录login())进行测试。面向对象编程的核心思想是通过封装数据和行为来提高代码的可维护性和复用性。
2025-07-25 11:28:44
850
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅