Hi, String::replace(CharSequence, CharSequence) does not use a regex, but String::replace(char, char) can still be slightly more efficient,
As this is relatively new code that wasn't around when 8044461 was done I'm sure we can get it cleaned up. Thanks! /Claes On 2017-01-24 20:33, Christoph Dreis wrote:
Hey, similar to https://bugs.openjdk.java.net/browse/JDK-8044461 I noticed two (newly introduced) places where we could avoid the regex overhead when replacing single chars. I'd be happy if this is sponsored. Cheers, Christoph =========== PATCH ============ # User Christoph Dreis < <mailto:christoph.dr...@freenet.de> christoph.dr...@freenet.de> Cleanup String.replace() occurences with single characters diff --git a/src/java.base/share/classes/jdk/internal/loader/ResourceHelper.java b/src/java.base/share/classes/jdk/internal/loader/ResourceHelper.java --- a/src/java.base/share/classes/jdk/internal/loader/ResourceHelper.java +++ b/src/java.base/share/classes/jdk/internal/loader/ResourceHelper.java @@ -39,7 +39,7 @@ public static String getPackageName(String name) { int index = name.lastIndexOf('/'); if (index != -1) { - return name.substring(0, index).replace("/", "."); + return name.substring(0, index).replace('/', '.'); } else { return ""; } diff --git a/src/java.base/share/classes/jdk/internal/module/ModulePath.java b/src/java.base/share/classes/jdk/internal/module/ModulePath.java --- a/src/java.base/share/classes/jdk/internal/module/ModulePath.java +++ b/src/java.base/share/classes/jdk/internal/module/ModulePath.java @@ -495,7 +495,7 @@ Attributes attrs = man.getMainAttributes(); String mainClass = attrs.getValue(Attributes.Name.MAIN_CLASS); if (mainClass != null) - builder.mainClass(mainClass.replace("/", ".")); + builder.mainClass(mainClass.replace('/', '.')); } return builder.build();