On Mon, 20 Oct 2025 06:34:39 GMT, Shaojin Wen <[email protected]> wrote:
>> This PR refactors the Double.toHexString method to improve its performance
>> by eliminating the use of StringBuilder and regex operations. The new
>> implementation uses a direct byte array approach to construct the hex string
>> representation, which avoids the overhead of StringBuilder operations and
>> regex pattern matching.
>>
>> Existing tests in `java/lang/Double/ToHexString.java`.
>
> Shaojin Wen has updated the pull request incrementally with one additional
> commit since the last revision:
>
> from @jddarcy
src/java.base/share/classes/java/lang/Double.java line 712:
> 710: return Double.toString(d);
> 711: else {
> 712: boolean negative = Math.copySign(1.0, d) == -1.0;
Suggestion:
boolean negative = Math.copySign(1.0, d) < 0.0;
src/java.base/share/classes/java/lang/Double.java line 771:
> 769: // Shift right by (12 - i) * 4 positions and mask
> with 0xF
> 770: // Integer.digits maps values 0-15 to '0'-'f'
> characters
> 771: chars[index++] = Integer.digits[((int)(signifBits >>
> ((12 - i) << 2))) & 0xF];
Suggestion:
int digit = ((int)(signifBits >> ((12 - i) << 2))) & 0xF;
chars[index++] = digit + digit < 10 ? '0' : 'a';
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/27811#discussion_r2444259295
PR Review Comment: https://git.openjdk.org/jdk/pull/27811#discussion_r2444255702