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

Reply via email to