Ohhnews

分类导航

foojay

JVM在Unikernel Nanos上的GC权衡与堆内存释放

文章在Unikernel Nanos上使用Eclipse Temurin 25复现Akamas的GC研究,通过Renaissance page-rank基准在Oracle Cloud ARM64环境测试Serial、Parallel、G1、ZGC和Shenandoah五种HotSpot垃圾回收器,并验证堆内存释放(uncommit)。结果显示五种回收器均可正常运行;相较G1,Parallel执行时间减少20.7%、峰值堆内存减少38.2%,Serial执行时间减少22.8%、峰值堆内存减少45%;ZGC最大暂停约0.04毫秒但峰值堆内存增加74.6%,Shenandoah暂停约1毫秒。G1在每轮Full GC后可释放未使用堆至约0.5GB,ZGC和Shenandoah在启用uncommit时也能释放内存;当-Xms等于-Xmx时释放被禁用。结论是没有通用最优GC,Nanos上仍可沿用熟悉的JVM调优策略。
#jvm#unikernel#垃圾回收#堆内存管理#nanos
$ more
foojay

免费Java暗藏风险:不受支持的OpenJDK为何成为安全赌博

文章指出,在AI加速漏洞利用的时代,企业自行维护无商业支持的OpenJDK已难以为继。AI代理可在漏洞披露后数小时内串联多个漏洞入侵系统,而组织修复已知漏洞的中位时间仍达43天。低危漏洞也可能被组合利用,最终获得完整控制权。调查称约20%企业仍在生产环境运行已终止支持的Java 6或7,面临新漏洞与合规、保险审查压力。文章还列出数据泄露成本上升、网络保险费率提高和审计举证负担加重等问题,并介绍Azul Core通过SLA安全补丁、稳定性更新和旧版本回溯支持来转移部分运维与响应负担。
#openjdk#java安全#漏洞修复#ai攻击#商业支持
$ more
foojay

Vitra发布:面向JavaFX的现代UI库

Vitra 是一个专为 JavaFX 打造的现代 UI 库,旨在降低 JavaFX 桌面应用在自定义窗口、玻璃质感表面、高级图表和缺失控件等方面的开发成本。它提供十多种生产级控件与皮肤,包括甘特图、看板、日历、Fluent 风格材质(Mica、Acrylic、Reveal)、自定义窗口与对话框、环形图与径向仪表、增强版 ScrollPane、ListView、TableView 和 TreeView 皮肤,以及玻璃拟态表面。所有控件遵循 Control-Skin 架构,支持运行时主题切换、完整 CSS、一致布局与焦点行为,且无外部依赖,可逐步集成到现有项目。该项目由 Libán Bande González 发布,并提供在线资料。
#vitra#javafx#ui组件库#桌面应用#界面设计
$ more
DZone Java

第4部分:多智能体编排——将Goose与Quarkus Flow状态机配对

本文是系列文章第4部分,探讨如何通过A2A协议、Quarkus Flow状态机和AGENTS.md治理文件构建受治理的多智能体编排系统。针对企业流程非单步的特点,系统实现了严格的状态机、最大迭代限制、人机协同审批等护栏。文章详细介绍了代理发现、治理规则定义(自动批准、需人工批准、禁止操作)、工作流状态机实现、人工审批门控,并演示了自动批准、需审批和禁止操作三种场景。最后讨论了生产环境考量,如任务存储、通知、治理规则引擎等。通过结合Goose与Quarkus,实现了多智能体编排与治理,无需修改现有MCP工具代码。
#多智能体编排#goose#quarkus#a2a协议#状态机
$ more
DZone Java

Error Prone 入门:如何在编译期捕获 Bug

Error Prone 是 Google 开源的 Java 静态分析工具,以 javac 插件形式在编译期运行,利用编译器生成的类型和符号信息,识别语法合法但很可能错误的代码,并报告为警告或错误。文章介绍了它能在构建阶段拦截集合类型不匹配、日期格式中误用 YYYY 等隐蔽 Bug,并常给出修复建议。除内置检查外,还可通过 Refaster 编写代码转换规则,或用 BugChecker API 实现团队自定义检查。作者认为,在 AI 编程助手加快代码产出速度的背景下,编译期捕获 Bug 的工具正从可选项变为必需品。
#error prone#java#静态分析#编译期检查#代码质量
$ more
Jetbrains Blog

JetBrains IDE内置终端改用libghostty引擎

JetBrains宣布自2026.3版本起,其IDE内置终端将采用驱动Ghostty的终端模拟库libghostty,取代沿用多年的JediTerm。新引擎负责解析与终端状态管理,IDE继续负责渲染与上层集成。改进包括:支持Kitty键盘协议和xterm的modifyOtherKeys,使Shift+Enter换行及Ctrl、Shift、Alt组合键能正常传递;终端可依据IDE主题回答深浅色查询,并在切换时通过2031模式通知Claude Code、Neovim、tmux等应用自动跟随主题,同时支持OSC 4调色板与Kitty OSC 21颜色查询;修复了近50个此前被忽略或误读的控制序列,如REP重复字符、冒号分隔SGR颜色、未知APC/SOS/PM字符串等,改善边框、分隔线与彩色输出。libghostty已能解析但IDE尚未实现的功能包括OSC 52剪贴板、桌面通知、进度条和Kitty图形,后续落地速度将快于以往。该引擎在2026.3 EAP中默认启用,用户可通过Registry关闭terminal.use.ghostty.emulator回退至JediTerm。
#jetbrains#libghostty#终端模拟#ghostty#ide
$ more
Spring Blog

Spring本周动态(2026年10月27日)

本期Spring周报由作者在西班牙巴塞罗那的Vaadin Create活动期间撰写。内容涵盖Spring AI相关文章,包括利用更快的嵌入加速RAG、使用MCP Apps渲染丰富UI;Netflix利用JetBrains IDE智能提升AI编码代理效率;与JetBrains的Anton Arhipov讨论AI开发;Quixotic AI可将推理模型作为普通Maven依赖加入Spring Boot应用。此外,大量新版本发布:Spring AI 2.1.0-RC1和2.0.2、Spring Boot 4.0.9/4.1.2/4.2.0-RC1、Spring Cloud 2025.1.4和2026.0.0-RC1、Spring LDAP、Spring Security、Spring Session、Spring Modulith、Spring Batch、Spring Data及Spring Web Services等多个版本。
#spring#spring ai#spring boot#人工智能#版本发布
$ more
foojay

Java虚拟线程服务中jstack会遗漏什么

文章以Spring Boot虚拟线程服务连接池等待为例,指出jstack和jcmd Thread.print主要显示平台线程与载体线程,无法列出大量处于等待状态的虚拟线程,因此可能出现CPU低、载体空闲但请求积压。建议在JDK 21及以上使用jcmd Thread.dump_to_file生成文本或JSON转储,分析请求堆栈、连接池等待和线程分组,并在约30秒后再次采样对比。文章还说明JDK 21至25的输出差异、JDK 24后synchronized导致线程固定的变化、可用JFR的jdk.VirtualThreadPinned事件分析间歇性固定,以及ThreadMine对转储格式的支持情况。
#java#虚拟线程#jstack#线程转储#性能诊断
$ more
foojay

Java新特性并非只为面试:Axelix的两个真实生产用例

Axelix技术负责人Mikhail Polivakha结合开源项目实践,介绍Java新特性在生产代码中的两个用例。其一,用ScopedValue将HTTP过滤器中的SecurityContext安全传递到传输层,绑定仅在受限执行范围内有效、调用方无法修改且结束后自动释放,避免ThreadLocal共享可变状态和上下文泄漏风险;但ScopedValue绑定与线程相关,不能自动传播到任意异步任务。其二,将McpEndpoint设为sealed接口,仅允许record实现,从而控制全部实现并保证不可变及稳定的equals/hashCode,避免可变HashMap键导致权限映射失效。作者强调,应先识别系统不变量,再选择能表达并保护该不变量的语言特性,而非为使用而使用。
#java#scopedvalue#密封接口#axelix#生产实践
$ more
foojay

DuckDB 2.0 正式发布:迄今最大版本,新增服务器模式与异步 I/O

DuckDB 2.0.0(代号 Cinnamon Teal)于2026年10月21日发布,是项目迄今最大功能版本,包含自1.5以来近2万次提交,并提供至少支持到2027年10月的长期支持。DuckDB 是面向列式分析的内嵌数据库,可直接读取 Parquet、CSV、JSON,查询 PostgreSQL、MySQL、SQLite 及 Iceberg、Delta 等数据。2.0 新增生产级服务器模式与 Quack 协议、异步 I/O、一等 VARIANT 类型、默认 PEG 解析器,以及 CREATE TRIGGER、NEAREST 连接等 SQL 能力。Java 用户可通过 JDBC 驱动使用,并用 COPY 语句完成格式转换。升级时需注意新默认存储格式无法被旧版本读取。
#duckdb#数据库#长期支持#服务器模式#异步i/o
$ more