> This PR introduces a new efficient API for appending two-digit integers to 
> StringBuilders and refactors DateTimeHelper to leverage this new 
> functionality.
> 
> Changes include:
> 
> 1. New `appendPair` method for efficient two-digit integer formatting (00-99):
>    - Added `AbstractStringBuilder.appendPair(int i)` with core implementation
>    - Added `JavaLangAccess.appendPair(StringBuilder, int)` for internal access
>    - Added `System.JavaLangAccessImpl.appendPair(StringBuilder, int)` bridge
>    - Added `DecimalDigits.appendPair(StringBuilder, int)` public static 
> utility method
>    - Enhanced Javadoc documentation for all new methods
> 
> 2. Refactored `DateTimeHelper` to use the new `DecimalDigits.appendPair`:
>    - Updated `DateTimeHelper.formatTo` methods for `LocalDate` and `LocalTime`
>    - Replaced manual formatting logic with the new efficient two-digit 
> appending
>    - Improved code clarity and consistency in date/time formatting
> 
> These changes improve code clarity and performance when formatting two-digit 
> numbers, particularly in date/time formatting scenarios.

Shaojin Wen has updated the pull request with a new target base due to a merge 
or a rebase. The pull request now contains 11 commits:

 - Merge remote-tracking branch 'upstream/master' into appendPair_202508
 - appendPair instead of appendLatin1(char, char)
 - Revert "appendPair instead of append(char, char)"
   
   This reverts commit d969a235e54da4ac96b7205982624f52305cae31.
 - appendPair instead of append(char, char)
 - Update test/jdk/jdk/internal/util/DecimalDigitsTest.java
   
   Co-authored-by: Chen Liang <[email protected]>
 - Merge remote-tracking branch 'upstream/master' into appendPair_202508
   
   # Conflicts:
   #    src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java
 - Add DecimalDigitsTest to verify appendPair method with LATIN1 and UTF16 
encoding
 - Use DecimalDigits.appendPair for formatting in time classes
   
   This change modifies the toString() methods in MonthDay, YearMonth, 
ZoneOffset, and ChronoLocalDateImpl to use DecimalDigits.appendPair for 
formatting two-digit numbers. This provides a more efficient and consistent way 
to format these values.
   
   Also added a comment in ChronoLocalDateImpl.toString() to explain why get() 
is used instead of getLong() for performance reasons, as the values are 
guaranteed to be within the int range for all chronologies.
   
   Co-authored-by: Qwen-Coder <[email protected]>
 - Optimize year formatting in DateTimeHelper by reducing modulo operation
   
   Co-authored-by: Qwen-Coder <[email protected]>
   
   Refactored the year formatting logic to use subtraction instead of modulo 
for calculating the lower two digits, which can be slightly more efficient. 
Added a comment to clarify the safety of the input range for 
DecimalDigits.appendPair.
 - Refactor DateTimeHelper to use DecimalDigits.appendPair for date/time 
formatting\n\nThis change updates DateTimeHelper.formatTo methods for LocalDate 
and LocalTime\nto use the new DecimalDigits.appendPair method for formatting 
month, day, hour,\nminute, and second components. This improves code clarity 
and leverages the\nnewly introduced efficient two-digit integer appending 
functionality.
   
   Co-authored-by: Qwen-Coder <[email protected]>
 - ... and 1 more: https://git.openjdk.org/jdk/compare/ef464d69...c480aebb

-------------

Changes: https://git.openjdk.org/jdk/pull/26911/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26911&range=08
  Stats: 192 lines in 10 files changed: 161 ins; 4 del; 27 mod
  Patch: https://git.openjdk.org/jdk/pull/26911.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26911/head:pull/26911

PR: https://git.openjdk.org/jdk/pull/26911

Reply via email to