- 博客(47)
- 收藏
- 关注
原创 Java跨平台开发:GraalVM与JNI的混合编程
GraalVM与JNI混合编程指南摘要:GraalVM原生镜像支持JNI调用,但需特殊配置。关键点包括:1)通过reflect-config.json显式声明JNI类和方法;2)处理跨平台本地库兼容性问题;3)优化JNI调用性能(批处理、内存管理);4)调试时生成符号信息。替代方案可考虑GraalVM Polyglot API实现多语言互操作。混合使用时需注意反射配置完整性和线程安全,以兼顾GraalVM优势与JNI代码复用。(148字)
2026-05-07 19:31:46
278
原创 Java在人工智能:TensorFlow Java API的使用
摘要:TensorFlow Java API为开发者提供了在Java环境中构建和部署机器学习模型的接口,支持模型加载、推理和训练操作。配置需JDK8+并通过Maven/Gradle添加依赖。核心功能包括使用SavedModelBundle加载预训练模型、进行张量操作及自定义计算图训练。性能优化建议批处理输入、复用Session和使用Native加速。注意版本兼容性和数据类型转换问题,官方文档和GitHub示例可供参考。该API适用于服务端推理和嵌入式场景的机器学习集成。
2026-05-07 19:29:03
170
原创 Arthas诊断工具:Java应用线上问题的排查利器
Arthas是阿里开源的Java诊断工具,支持实时监控和动态追踪Java应用。核心功能包括方法调用追踪(trace/watch)、JVM状态监控(dashboard/jvm)、代码反编译(jad)和热修复(redefine)。典型应用场景涵盖性能分析、线程阻塞排查和配置验证。安装简单,通过jar包启动即可附加到目标进程。需注意生产环境慎用热修复功能,建议结合日志和APM工具综合排查。该工具以命令行方式提供低侵入、高效率的诊断方案,是解决复杂线上问题的利器。
2026-05-07 19:27:48
229
原创 MongoDB聚合框架:Java驱动下的数据聚合操作
摘要:MongoDB聚合框架提供多阶段数据处理能力,支持匹配($match)、分组($group)、排序($sort)等核心操作。Java驱动通过AggregateIterable实现聚合查询,支持高级功能如文档重塑($project)、集合连接($lookup)等。优化建议包括尽早过滤数据、创建索引和使用$allowDiskUse处理大数据集。开发中需处理MongoException异常,并通过迭代器或列表方式获取结果。合理设计聚合管道能高效满足复杂数据分析需求。
2026-05-07 19:25:05
166
原创 Servlet 4.0新特性:HTTP/2与异步处理支持
摘要:Servlet 4.0核心支持HTTP/2协议,通过二进制分帧、多路复用和头部压缩提升性能,并引入服务器推送功能减少延迟。实现需TLS 1.2+和兼容服务器/客户端。Servlet 4.0还优化了异步处理模型,支持非阻塞IO操作和请求/响应对象复用,同时提供PushBuilder接口实现资源推送。其他改进包括新增HTTP状态码常量、尾部字段支持和更清晰的错误处理机制。
2026-05-07 19:23:31
185
原创 Java并发数据结构:ConcurrentHashMap源码解析
ConcurrentHashMap是专为高并发设计的线程安全哈希表,核心设计目标包括线程安全、高吞吐量和内存一致性。其JDK8后的数据结构采用数组+链表+红黑树组合,通过CAS操作、分段锁策略和volatile变量保证并发安全。关键机制包括:桶级别锁控制并发写入,多线程协同扩容,ForwardingNode标记迁移状态。性能优化方面采用避免伪共享、分段计数等技术,支持弱一致性迭代器。相比HashTable具有更细的锁粒度(桶级vs全表)和更高的并发度,适用于高频读写缓存等场景,但不允许NULL值且迭代器为弱
2026-05-05 08:19:13
332
原创 Java算法实战:排序、搜索与动态规划实现
本文介绍了常见算法的实现与优化方法。排序算法包括时间复杂度O(n²)的冒泡排序和O(nlogn)的快速排序;搜索算法涵盖二分查找和广度优先搜索(BFS);动态规划部分以斐波那契数列和0-1背包问题为例。最后给出了空间优化技巧,如斐波那契数列的O(1)空间解法和背包问题的一维数组优化。这些算法适用于不同场景,优化后可显著提升性能。
2026-05-05 08:16:52
281
原创 Swagger API文档:Java RESTful服务的自动生成
Swagger是一款用于RESTful API开发的开源工具集,支持自动生成交互式文档和测试界面。本文介绍了在Java项目中集成Swagger的步骤:首先添加Springfox依赖,然后配置SwaggerConfig类并启用UI界面。详细说明了常用注解如@Api、@ApiOperation等的作用及用法,展示了控制器和实体类的标注示例。同时提供了升级到OpenAPI 3.0的方法,只需替换依赖即可。Swagger能显著提升API开发效率,通过自动生成的文档和测试功能简化开发流程。访问地址为/swagger-
2026-05-05 08:14:30
50
原创 Git版本控制:Java项目中的分支管理与合并策略
摘要:本文介绍了Git分支管理策略在Java项目中的应用,包括主分支、开发分支、功能分支和修复分支的分工与合并策略。详细说明了普通合并、变基合并和快进合并三种合并方式,并提供了Java项目特有的.gitignore配置建议和分支命名规范。文章还涵盖了冲突解决流程和自动化工具集成方案,如持续集成检查和代码质量门禁设置,为团队协作提供了完整的Git工作流程指导。(149字)
2026-05-05 08:13:12
206
原创 Jenkins自动化部署:Java项目的持续集成实践
摘要:本文介绍了使用Jenkins实现Java项目持续集成部署的完整流程。重点包括环境准备(JDK/Maven/Git安装)、Jenkins核心插件配置、Pipeline项目创建及Jenkinsfile编写(包含代码检出、构建、测试、部署等阶段)。同时介绍了可选功能:SonarQube代码分析、Docker容器化部署、构建失败邮件通知等。最后提到可通过BlueOcean可视化流水线状态,并结合Prometheus进行监控。该方案实现了从代码提交到自动化部署的完整CI/CD流程。
2026-05-05 08:11:49
290
原创 SOLID原则在Java中的实践:单一职责与开闭原则
SOLID原则中的SRP(单一职责)和OCP(开闭原则)是提升Java代码质量的关键。SRP要求每个类仅承担单一功能,示例中通过拆分用户验证与数据库操作来解耦代码。OCP强调通过抽象扩展而非修改现有代码,采用Shape抽象类和子类继承实现多态计算面积。二者结合实践时,可通过接口抽象(如NotificationService)配合依赖注入,使系统既保持职责单一又易于扩展。这些原则共同降低了代码耦合度,提高了可维护性和扩展性。
2026-05-02 15:32:01
187
原创 Java游戏服务器:Netty框架的高并发网络通信
Netty是一个高性能NIO网络框架,专为高并发设计,适合游戏服务器开发。其核心包括EventLoopGroup线程模型、Channel抽象和ChannelPipeline处理器链。通过零拷贝、内存池化等技术优化性能,支持TCP快速回收等内核调优。典型实现包括ServerBootstrap初始化、自定义处理器链和业务逻辑处理。建议使用Epoll替代NIO(Linux环境)、关键业务独立线程处理,结合Protobuf优化序列化。框架提供流量统计和内存泄漏检测等监控手段,能显著提升服务器吞吐量和降低延迟。
2026-05-02 15:30:39
270
原创 OpenGL与Java:JOGL库的3D图形渲染实战
JOGL(Java Binding for OpenGL)是连接Java与OpenGL的桥梁,支持高性能2D/3D图形开发。配置需引入jogl-all和gluegen-rt库,通过GLCanvas嵌入Swing窗口。核心流程包括实现GLEventListener接口,在display()中编写渲染代码,使用VBO和着色器绘制3D对象。进阶功能涵盖光照模型、纹理映射及性能优化(双缓冲、Animator帧率控制)。调试时可启用OpenGL输出,推荐参考官方文档和《OpenGL编程指南》进行深入学习。JOGL适合
2026-05-02 15:29:23
366
原创 JDBC编程规范:PreparedStatement与事务管理
本文总结了JDBC编程的关键规范:使用PreparedStatement防止SQL注入,通过参数化查询(setString/setInt)绑定变量;批处理应采用addBatch(),单批控制在100-1000条;事务管理需关闭自动提交,设置合理隔离级别和超时;连接池使用需确保事务状态重置;异常处理要记录完整错误信息;建议缓存高频PreparedStatement优化性能。所有操作必须遵循资源释放原则,使用try-with-resources确保及时关闭连接和语句对象。
2026-05-02 15:27:29
190
原创 微服务架构设计:Spring Cloud Gateway与Nacos集成
本文介绍了SpringCloudGateway与Nacos的集成配置方案。首先在pom.xml中添加网关和Nacos发现依赖,然后在application.yml中配置Nacos服务注册地址。通过Nacos配置中心管理动态路由规则,使用JSON格式定义路由信息。实现Nacos配置监听器来动态刷新路由,并展示了如何添加全局认证过滤器。同时介绍了负载均衡、健康检查、熔断保护等关键配置,包括Ribbon负载均衡、Sentinel熔断器集成。最后给出了性能优化建议,如调整线程池参数,以及通过Sleuth实现链路追踪
2026-05-02 15:25:05
440
1
原创 值类型与引用类型:别再只背“栈和堆”了,看这 个实际影响
将 Excel 转换为 TXT 不仅是格式的简单转换,更是实现数据自动化流程的重要环节。数据清洗与预处理: 将复杂格式的 Excel 数据转换为 TXT,作为其他数据分析工具(如Spark、Hadoop)的输入源,进行更深层次的处理。配置管理: 将 Excel 中维护的系统配置、参数表等导出为 TXT 格式,便于脚本直接读取,同时更适合使用 Git 等工具进行版本管理。自动化报告生成: 从 Excel 模板中提取数据,生成纯文本格式的报告摘要,方便邮件发送或系统集成。# 将工作表内容保存为TXT文件。
2026-04-21 11:18:18
167
原创 AI Agent 跑完任务怎么通知你?我写了个推送服务
ON CONFLICT (student_id, course_id) -- 检测(student_id, course_id)组合冲突。VALUES (1001, 101, NOW(), 'renewed') -- 再次尝试选择已选课程。VALUES (101, '2024-06-20', '09:00-10:00', '张三')(1001, 101, NOW()), -- 已存在组合:触发ON CONFLICT。VALUES (1001, 101, NOW()) -- (1001,101)组合已存在!
2026-04-21 11:17:35
199
原创 AI Agent 跑完任务怎么通知你?我写了个推送服务
ON CONFLICT (student_id, course_id) -- 检测(student_id, course_id)组合冲突。VALUES (1001, 101, NOW(), 'renewed') -- 再次尝试选择已选课程。VALUES (101, '2024-06-20', '09:00-10:00', '张三')(1001, 101, NOW()), -- 已存在组合:触发ON CONFLICT。VALUES (1001, 101, NOW()) -- (1001,101)组合已存在!
2026-04-20 11:50:10
305
原创 Agent Client Protocol 全景解析
Workflows (项目级):存储在项目根目录的 .agent/workflows 中。Skills (全局库):实际的代码、脚本和指南,存储在系统级目录(如 ~/.gemini/antigravity/skills)。# 此时目录结构应为 ~/.gemini/antigravity/skills/ui-ux-pro-max-skill/...# 此时目录结构应为 ~/.gemini/antigravity/skills/skills/...节省空间:不需要在每个项目中重复下载几百 MB 的技能文件。
2026-04-20 11:49:28
346
原创 ESP居然能当 DNS 服务器用?内含NCSI欺骗和DNS劫持实现
print(f"机器码 (Hex): {''.join(f'{x:02x}' for x in encoding)}")print(f"解密后的文本: {decrypted_text.decode()}")access:当前访问类型:UC_MEM_READ,UC_MEM_WRITE......第一个参数:捕获模式,规定什么时候触发hook,例如:读取内存,中断捕获......第二个参数:选择模式,例如:64位,32位,小端序......第二个参数:选择模式,例如:64位,32位,小端序......
2026-04-19 10:53:32
175
原创 .NET 诊断技巧 | 日志框架原理、手写日志框架学习
她通读了 CNCF Landscape 的各类技术文章,然后大显身手,引入 Istio 做 Service Mesh,用 Argo 做发布,在 Vault 管理 Secrets,部署 Prometheus + Thanos 做可观测性,还有 cert-manager 处理 TLS,external-dns 管理域名,Velero 搞定备份。是真正的实战培训,而不是丢下一句看文档。我想进一步补充的是,真正致命的问题不在复杂性本身,而在于那些未被文档化的复杂性,也就是只存在于 Maya 脑子里的隐秘经验。
2026-04-19 10:52:47
178
原创 RAG 还是 Lucene:私有化部署客服系统的 AI 知识库架构选型
在之前的文章中,我们花了大量的篇幅,从记录后端pod真实ip开始说起,然后引入envoy,再解决了各种各样的需求:配置自动重载、流量劫持、sidecar自动注入,到envoy的各种能力:熔断、流控、分流、透明代理、可观测性等等,已经可以支撑起一个完整的服务治理框架了。控制面istiod主要的职责:将配置下发到每一个envoy去。而今天介绍的istio,正是前面提到的这些所有功能的集大成者,从本文开始,我们将详细介绍istio,并且与之前手搓的功能做一个详细的对比,为大家以后选择服务治理的某个功能提供参考。
2026-04-18 11:28:46
178
原创 Calico IPIP 使用指南
// 工作流信息。} // 父检查点。} // 目标 Executor ID。} // 源 Executor ID。var workflow = new WorkflowBuilder(startExecutor) // 指定起点。.WithName("订单处理工作流") // 设置名称。} // 边的具体数据。
2026-04-18 11:28:03
227
原创 “INMS: Memory Sharing for Large Language Model based Agents“ 论文笔记
这种“思考 → 执行 → 反馈 → 再思考”的循环机制,让复杂问题被自然拆解成一连串可验证的小步骤,也让错误变成系统的一部分,而不是失败的终点。OpenAI的Codex CLI就是这一趋势的典型代表——一个跨平台的本地软件代理,能够在用户的机器上安全高效地生成高质量的软件变更。这就是 unrolling the loop 的含义:把模型原本“在脑子里一次性完成的思考”,拆成一轮一轮、可执行、可观察的步骤。把“刚刚发生的现实结果”,翻译成模型能理解的文字,再塞回 Prompt。
2026-04-17 11:07:54
230
原创 CKKS 同态加密数学基础推导
StreamJsonRpc 是微软官方维护的用于 .NET 和 TypeScript 的 JSON-RPC 通信库,以其强大的类型安全、自动代理生成和成熟的异常处理机制著称。在实现 ACP 的流式 Prompt 响应时,应直接使用?检查现有的动态代理生成逻辑,确定 StreamJsonRpc 无法识别的根本原因(通常是因为代理对象没有公开实际的方法签名,或者使用了 StreamJsonRpc 不支持的参数类型)。确保该组件显式实现 StreamJsonRpc 的代理接口,将 ACP 协议定义的方法(如?
2026-04-17 11:07:11
177
原创 “INMS: Memory Sharing for Large Language Model based Agents“ 论文笔记
这种“思考 → 执行 → 反馈 → 再思考”的循环机制,让复杂问题被自然拆解成一连串可验证的小步骤,也让错误变成系统的一部分,而不是失败的终点。OpenAI的Codex CLI就是这一趋势的典型代表——一个跨平台的本地软件代理,能够在用户的机器上安全高效地生成高质量的软件变更。这就是 unrolling the loop 的含义:把模型原本“在脑子里一次性完成的思考”,拆成一轮一轮、可执行、可观察的步骤。把“刚刚发生的现实结果”,翻译成模型能理解的文字,再塞回 Prompt。
2026-04-16 11:56:33
186
原创 CKKS 同态加密数学基础推导
StreamJsonRpc 是微软官方维护的用于 .NET 和 TypeScript 的 JSON-RPC 通信库,以其强大的类型安全、自动代理生成和成熟的异常处理机制著称。在实现 ACP 的流式 Prompt 响应时,应直接使用?检查现有的动态代理生成逻辑,确定 StreamJsonRpc 无法识别的根本原因(通常是因为代理对象没有公开实际的方法签名,或者使用了 StreamJsonRpc 不支持的参数类型)。确保该组件显式实现 StreamJsonRpc 的代理接口,将 ACP 协议定义的方法(如?
2026-04-16 11:55:50
162
原创 RAG 还是 Lucene:私有化部署客服系统的 AI 知识库架构选型
在之前的文章中,我们花了大量的篇幅,从记录后端pod真实ip开始说起,然后引入envoy,再解决了各种各样的需求:配置自动重载、流量劫持、sidecar自动注入,到envoy的各种能力:熔断、流控、分流、透明代理、可观测性等等,已经可以支撑起一个完整的服务治理框架了。控制面istiod主要的职责:将配置下发到每一个envoy去。而今天介绍的istio,正是前面提到的这些所有功能的集大成者,从本文开始,我们将详细介绍istio,并且与之前手搓的功能做一个详细的对比,为大家以后选择服务治理的某个功能提供参考。
2026-04-15 09:26:23
314
原创 Calico IPIP 使用指南
// 工作流信息。} // 父检查点。} // 目标 Executor ID。} // 源 Executor ID。var workflow = new WorkflowBuilder(startExecutor) // 指定起点。.WithName("订单处理工作流") // 设置名称。} // 边的具体数据。
2026-04-15 09:25:41
293
原创 Calico IPIP 使用指南
// 工作流信息。} // 父检查点。} // 目标 Executor ID。} // 源 Executor ID。var workflow = new WorkflowBuilder(startExecutor) // 指定起点。.WithName("订单处理工作流") // 设置名称。} // 边的具体数据。
2026-04-14 11:07:25
347
原创 值类型与引用类型:别再只背“栈和堆”了,看这 个实际影响
将 Excel 转换为 TXT 不仅是格式的简单转换,更是实现数据自动化流程的重要环节。数据清洗与预处理: 将复杂格式的 Excel 数据转换为 TXT,作为其他数据分析工具(如Spark、Hadoop)的输入源,进行更深层次的处理。配置管理: 将 Excel 中维护的系统配置、参数表等导出为 TXT 格式,便于脚本直接读取,同时更适合使用 Git 等工具进行版本管理。自动化报告生成: 从 Excel 模板中提取数据,生成纯文本格式的报告摘要,方便邮件发送或系统集成。# 将工作表内容保存为TXT文件。
2026-04-14 11:06:42
37
原创 在超大数据集下 DuckDB 与 MySQL 查询速度对比庸
print(f"错误信息: {response.data.decode('utf-8')}")urllib3 是一个用于处理 HTTP 请求和连接池的强大、用户友好的 Python 库。状态码: {response.status}")状态码: {response.status}")print(f"连接失败或重试次数超出限制: {e}")print(f"无法建立连接: {e}")print(f"发生未知错误: {e}")自动化测试: 模拟HTTP请求,测试Web服务。print("响应数据:")
2026-04-13 11:16:42
221
原创 DDD难落地?就让AI干吧! - cleanddd-skills介绍喝
其底层数据存储在对象存储中(S3、COS、OSS、ceph),在用户和对象存储层中加一个中间层,作为文件系统层,负责将文件系统与对象存储的操作进行翻译转换,从而实现POSIX兼容。在介绍之前,首先需要理清楚文件系统与对象存储的区别是什么,文件系统对接对象存储需要做哪些工作,之后才考虑性能的优化与可靠性的优化。操作接口:基于RESTful API(HTTP),主要操作是PUT(上传/覆盖),GET(下载),DELETE(删除),HEAD(获取元数据),不支持seek或部分写入。无法修改对象的中间部分。
2026-04-13 11:15:59
235
原创 Nginx 学习总结祷
这个要看资源的定义:如果只是管理内存资源,那么这样做是没有问题的,至少是安全的。而关于拷贝语义,绝大多数 C++ 程序员应该都知道这个问题:当在类对象中管理资源时,编译器生成的默认拷贝行为是“浅拷贝”,可能导致双重释放、内存泄漏等问题,因此需要自定义拷贝构造函数和拷贝赋值运算符来实现“深拷贝”的行为。首先要说明的是,要做的不是完整的封装 Hugging Face tokenizers 的 C 的 FFI(Foreign Function Interface)接口,而是封装自己需要的接口就可以了。
2026-04-12 10:47:04
317
原创 你的终端神器之Oh My Zsh焙
注意:templateName、createAsContainerDatabase必須指定。修改db_install.rsp文件中以下内容。12.1.编辑dbca.rsp安装文件。1.7.关闭防火墙还有selinux。10.2.静默安装Oracle软件。1.6.解析/etc/hosts。6./etc/profile配置。10.静默安装Oracle数据库。查看是否安装有Oracle软件。4.配置Oracle的环境变量。以下在root用户下操作。oracle用户下操作。oracle用户下操作。
2026-04-12 10:46:21
211
原创 前端使用AI试水报告谆
在Word模板中,只需使用{{ rich_text_var }}引用该变量,即可渲染成包含多种格式的连续段落。由于Word文档 (.docx) 本质上是一个压缩包,其中的图片以二进制形式存储在word/media/目录下,且在某些Word版本中,图片文件名可能被自动重命名(例如改为 image1.png),与原始文件名无关。示例:{{ base_value_float|my_filterB(2) }} 中,base_value_float是变量,my_filterB是过滤器名,2是传递的参数。
2026-04-11 11:02:47
331
原创 Nginx 学习总结叛
这个要看资源的定义:如果只是管理内存资源,那么这样做是没有问题的,至少是安全的。而关于拷贝语义,绝大多数 C++ 程序员应该都知道这个问题:当在类对象中管理资源时,编译器生成的默认拷贝行为是“浅拷贝”,可能导致双重释放、内存泄漏等问题,因此需要自定义拷贝构造函数和拷贝赋值运算符来实现“深拷贝”的行为。首先要说明的是,要做的不是完整的封装 Hugging Face tokenizers 的 C 的 FFI(Foreign Function Interface)接口,而是封装自己需要的接口就可以了。
2026-04-11 11:02:05
296
原创 Nginx 学习总结怂
这个要看资源的定义:如果只是管理内存资源,那么这样做是没有问题的,至少是安全的。而关于拷贝语义,绝大多数 C++ 程序员应该都知道这个问题:当在类对象中管理资源时,编译器生成的默认拷贝行为是“浅拷贝”,可能导致双重释放、内存泄漏等问题,因此需要自定义拷贝构造函数和拷贝赋值运算符来实现“深拷贝”的行为。首先要说明的是,要做的不是完整的封装 Hugging Face tokenizers 的 C 的 FFI(Foreign Function Interface)接口,而是封装自己需要的接口就可以了。
2026-04-10 17:00:17
337
原创 你的终端神器之Oh My Zsh勾
注意:templateName、createAsContainerDatabase必須指定。修改db_install.rsp文件中以下内容。12.1.编辑dbca.rsp安装文件。1.7.关闭防火墙还有selinux。10.2.静默安装Oracle软件。1.6.解析/etc/hosts。6./etc/profile配置。10.静默安装Oracle数据库。查看是否安装有Oracle软件。4.配置Oracle的环境变量。以下在root用户下操作。oracle用户下操作。oracle用户下操作。
2026-04-10 16:59:31
189
原创 前端使用AI试水报告诠
在Word模板中,只需使用{{ rich_text_var }}引用该变量,即可渲染成包含多种格式的连续段落。由于Word文档 (.docx) 本质上是一个压缩包,其中的图片以二进制形式存储在word/media/目录下,且在某些Word版本中,图片文件名可能被自动重命名(例如改为 image1.png),与原始文件名无关。示例:{{ base_value_float|my_filterB(2) }} 中,base_value_float是变量,my_filterB是过滤器名,2是传递的参数。
2026-04-09 17:51:20
220
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅