RFR: 8336706: Optimize LocalDate.toString with StringBuilder.repeat

Shaojin Wen duke at openjdk.org
Thu Jul 18 05:28:56 UTC 2024


class LocalDate {
    public String toString() {
        if (absYear < 1000) {
            if (yearValue < 0) {
                buf.append(yearValue - 10000).deleteCharAt(1);
            } else {
                buf.append(yearValue + 10000).deleteCharAt(0);
            }
       // ...
    }
}

Currently, LocalDate.toString causes an extra memory copy when processing years < 1000. This can be replaced by using StringBuilder.repeat, which is more concise and has better performance.

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

Commit messages:
 - use StringBuilder#repeat append zeros

Changes: https://git.openjdk.org/jdk/pull/20229/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20229&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8336706
  Stats: 6 lines in 1 file changed: 2 ins; 2 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/20229.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/20229/head:pull/20229

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


More information about the core-libs-dev mailing list