Cleanup String.replace() occurences with single characters
Claes Redestad
claes.redestad at oracle.com
Tue Jan 24 22:31:58 UTC 2017
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.dreis at freenet.de>
> christoph.dreis at 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();
>
More information about the core-libs-dev
mailing list