On Tue, 28 Jan 2025 16:44:17 GMT, Shaojin Wen <s...@openjdk.org> wrote:
>> ZoneOffset.MINUTES_15_CACHE uses AtomicReferenceArray to replace >> ConcurrentMap to avoid object allocation caused by boxing from int to >> Integer during access. > > Shaojin Wen has updated the pull request incrementally with two additional > commits since the last revision: > > - simplify > - MINUTES_15_CACHE -> QUARTER_CACHE src/java.base/share/classes/java/time/ZoneOffset.java line 138: > 136: implements TemporalAccessor, TemporalAdjuster, > Comparable<ZoneOffset>, Serializable { > 137: > 138: /** Cache of time-zone offset by offset in seconds. */ Suggestion: /** Cache of time-zone offset by offset in quarters. */ src/java.base/share/classes/java/time/ZoneOffset.java line 431: > 429: int quarters = totalSeconds / SECONDS_PER_QUARTER; > 430: if (totalSeconds - quarters * SECONDS_PER_QUARTER == 0) { > 431: ZoneOffset result = QUARTER_CACHE.getOpaque(quarters & 0xff); For the ease of future maintenance, I recommend replacing `quarters & 0xFF` with a new variable `key`: // quarters range from -72 to 72. // & 0xFF maps them to 0-72 and 184-255. int key = quarters & 0xFF; ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/23337#discussion_r1932514778 PR Review Comment: https://git.openjdk.org/jdk/pull/23337#discussion_r1932526383