🌘 Valhalla 的 LocalDate 扁平化疑雲:原始碼建置與早期預覽版差異解析
➤ 從 Valhalla 的 LocalDate 扁平化困境,看 Java 序列化的潛規則
https://horstmann.com/unblog/2025-11-08/index.html
本文探討了 Java Valhalla 專案中 LocalDate 物件扁平化(flattening)的效能問題。作者原以為 Valhalla 能將 LocalDate 陣列扁平化以提升效能,但在自行編譯 Valhalla JDK 時卻未見此優化效果。透過深入分析,作者發現差異源於早期預覽版對 LocalDate 的欄位表示方式進行了優化(將 month 和 day 的 short 改為 byte),使其能納入 Nullness 標記位元並符合扁平化條件。然而,此優化隨後被撤銷,原因竟是 LocalDate 的序列化機制。 LocalDate 的 writeReplace 機制雖能區隔內部表示與外部線路格式,但在序列化 Lo
#Java #Valhalla #LocalDate #效能優化 #序列化
Cay Horstmann’s Unblog

Mehr Zeit mit FreshMarker

Einer der Gründe für die Entwicklung der FreshMarker Bibliothek, war die fehlende Unterstützung der Java Time API in FreeMarker. Daher existierte schon in der ersten Implementierung neben der Unterstützung für java.util.Date, java.sql.Date und java.sql.Time auch eine Unterstützung f

https://schegge.de/2023/05/mehr-zeit-mit-freshmarker/

#BestPractices #Bibliotheken #Java #Format #FreeMarker #FreshMarker #Java #LocalDate #LocalTime #Template #Template-Engine

</Agile> Mehr Zeit mit FreshMarker

Einer der Gründe für die Entwicklung der FreshMarker Bibliothek, war die fehlende Unterstützung der Java Time API in FreeMarker. Daher existierte schon in der ersten Implementierung neben der Unter…

</Agile>
This must be the stupidest API ever.

How to convert from #java #sql #Date to java.util.Instant with #time and #zone.

Just getting the date from #MSSqlServer omits the time. So we have to read that separately, convert sql date and time to #LocalDate and #LocalTime, and then create an intermediary #CalendarBuilder to collect each #ChronoUnit, and then convert the result to milliseconds since #epoch.

Ugh.