老废物乐园 瓜子的技术笔记 · Java / AI / 金融科技

记一笔,地图就亮:一个离线旅行大屏的实现与取舍

用 Spring Boot 3.3.5 + Java 21 做了个旅行足迹大屏:6273 行代码、零外链的单文件前端、975 KB 离线底图,以及两个 AI 功能。 这篇不写教程,只写三件事 —— 我做了什么决定、付了什么代价、以及一次被"演示数据"掩盖的缺陷。 一句话背景 我做了个东西,解决的问题

遥望星星 遥望星星 发布于 2026-09-11

Java 模块化与原生化的最新进展

年初做技术盘点:Java 的启动性能和 AOT,现在到哪一步了 每年一月我会花几天时间把 Java 生态的重点项目过一遍,看看有哪些东西从「观望」变成了「可以用」。今年重点看了三块:Leyden 的进展、AOT 生态的成熟度、以及启动性能的现状。 结论先说:JDK 25 这一代,启动性能有了不需要改

遥望星星 遥望星星 发布于 2025-09-10

用 Java 实现一个 MCP Server 的完整过程

给公司内部的 CMDB 写了个 MCP Server 八月份我们决定把内部 CMDB、发布系统、监控平台接进 Agent。一开始想的是直接写 Function Calling,写了两周发现每个 Agent 框架(我们内部有 Spring AI 和 LangChain4j 两套)都要实现一遍,工具定义

遥望星星 遥望星星 发布于 2025-04-15

Java 在 AI 时代的定位与优势

组里的实习生问我"Java 是不是没前途了" 2025 年春节后回来的第一周,组里新来的实习生私下问我:"现在 AI 不都是 Python 写的吗,我学 Java 是不是选错方向了?" 这话我没法用一句"不会"糊弄过去,因为他说的是事实的一部分——过去两年所有模型层的创新确实都在 Python 生态

遥望星星 遥望星星 发布于 2025-02-20

Project Leyden 与 Java 启动性能的未来

冷启动 4.2 秒,函数计算按毫秒计费 我们有一部分服务跑在函数计算上(内部 FaaS 平台),按实际运行时间计费。其中一个是文档解析入口,Spring Boot 3.5 应用,冷启动实测 4.2 秒——也就是说每次冷启动,用户先付 4.2 秒的钱,其中真正干活的只有不到 1 秒。 去年我们试过 G

遥望星星 遥望星星 发布于 2025-02-05

MySQL JSON 字段的合理使用边界

CR 时跟同事吵了一架 上周做订单模块的代码评审,同事设计的新表里有个 ext_data 字段,类型 json,里面塞了发票信息、优惠券信息、配送偏好、渠道来源,一共十几个子字段。他的理由是"这些字段每个订单不一定都有,建十几个列太浪费"。 我在评论里提了反对意见,他回了一句"MySQL 8 原生支

遥望星星 遥望星星 发布于 2024-10-24

Structured Concurrency 第五次预览后的变化

做聚合服务时,要并发调三个下游再合并结果。最早我用 ExecutorService + Future,取消一个、异常处理、超时控制写得一团乱,线程泄漏还出了两次线上问题。JDK 23 的结构化并发(第五次预览,JEP 480)把这套"多任务协同"重新规范了一遍,值得认真看。 旧写法的乱 经典 Fut

遥望星星 遥望星星 发布于 2023-12-26

Java 字符串模板被撤回的反思

JDK 21 预览、JDK 22 二次预览的"字符串模板"(String Templates,JEP 430 / JEP 459),原本被寄望取代丑陋的 String.format 和拼接。结果后来被正式撤回。作为一个写了七年后端的人,我反而觉得这次"撤回"是语言演进里难得的清醒。 它想解决什么 传

遥望星星 遥望星星 发布于 2023-11-17

字符串模板预览特性体验

一个被语法糖耽误的拼接需求 上周我要拼一段带变量的 SQL 调试日志,里面混入三个变量。老写法要么是加号拼接,要么是 String.format,前者冗长后者位置参数容易错位。听同事说 JDK 21 的预览特性 String Templates 把这件事做漂亮了,我拉了 early-access 构

遥望星星 遥望星星 发布于 2023-01-03

Java 接入大模型的第一种方式:HTTP 调用与流式响应

问题代码:第一版大模型调用把线程池打满了 四月我们想给工单系统接一个大模型做自动摘要。第一版我图省事,用 RestTemplate 直接 POST 到 OpenAI 兼容接口,同步等返回。压测一上来就出问题:模型平均响应 3 秒,线程池 200 个线程 10 秒就被占满,QPS 卡在 60 上不去。

遥望星星 遥望星星 发布于 2022-07-30