在本期JEP Café中,我们挑战“十亿行挑战”,使用JDK 22的标准内存API展示如何高效处理二进制数据,包括选择Arena实现、创建内存段、定义内存布局,以及使用VarHandles和并行流处理数据。
JEP 525 完成了即将发布的 JDK 26 的结构化并发第六次预览,旨在简化并发任务管理。新版本引入超时处理和自定义连接器,允许在超时情况下返回部分结果,同时对 API 进行了小幅改进,保持核心模型稳定,增强了相关任务的管理。
JEP 500已完成,旨在防止通过深度反射修改final字段,未来将默认抛出IllegalAccessException。JDK 26引入警告机制,允许开发者选择反射行为,以支持更强的优化和可靠性。
Oracle Java团队成员分享了他们的新闻和观点。
JEP 526引入了“懒惰常量”,取代“稳定值”,提供计算常量的概念,支持工厂初始化,简化开发者使用。新API消除了对null的支持,确保初始化仅发生一次,提升性能和线程安全性,适合大型系统和模块化架构。
Oracle Java团队成员分享了他们的最新动态和观点。
甲骨文Java团队成员分享了他们的新闻和观点。
本文介绍了JDK 24和25中的Gatherers,重点讨论了映射、过滤、内部可变状态管理、流的中断、资源泄漏和竞争条件的避免,并探讨了并行Gatherers的使用,以帮助读者高效编写Gatherers。
项目Valhalla的初步扁平化依赖于四种属性值类型。随着对值类型的深入理解,发现某些属性不适合。JEP 401定义值类实例为无身份和(大部分)不可变。扁平化提高了内存密度,但也增加了访问成本和代码复杂性。C2编译的扁平数组表现最佳,而其他VM组件处理扁平值时可能导致性能下降。
Valhalla团队发布了早期访问的JDK构建,全面实现了JEP 401:值类和对象(预览)。值对象是仅包含最终字段且没有身份的类实例,使用值类可提升性能,JVM能够优化这些对象。用户可下载体验这一新特性。
本周Java动态报道了多个重要更新,包括OpenJDK的新JEP Lazy Constants和Structured Concurrency预览,BellSoft Liberica Native Image Toolkit 25,Spring AI 1.1.0的里程碑发布,以及JobRunr、LangChain4j和Quarkus的点版本更新,提升了并发编程的简化和性能。
本周Java动态包括JDK 25和GraalVM的GA发布,JDK 26的新JEP候选,Quarkus等的点版本更新,以及Hibernate Validator 9.1的第二个alpha版本。Oracle将GraalVM与Java发布分离,专注于非Java语言。JDK 25包含18个JEP特性,JDK 26的早期版本也有更新。
完成下面两步后,将自动完成登录并继续当前操作。