RFR: 8285521: Minor improvements in java.net.URI
Сергей Цыпанов
duke at openjdk.java.net
Tue Apr 26 12:44:48 UTC 2022
On Tue, 26 Apr 2022 11:35:10 GMT, Daniel Fuchs <dfuchs at openjdk.org> wrote:
>> - use `String.equalsIgnoreCase()` instead of hand-written code relying on `String.charAt()`
>> - use `String.compareToIgnoreCase()` instead of hand-written code relying on `String.charAt()`
>> - drop branches that are never executed
>> - drop unused argument from `URI.resolvePath()`
>> - simplify String-related operations
>
> src/java.base/share/classes/java/net/URI.java line 1921:
>
>> 1919: return sn - tn;
>> 1920: int val = 0;
>> 1921: int n = Math.min(sn, tn);
>
> Can we drop this change? I wouldn't like `java.net.URI` to gratuitously trigger the loading of the Math class.
> For the rest of the proposed changes, I will need to study them carefully and that may take some time.
> Thanks!
@dfuch I've looked into class loading order and I see this:
...
[0.179s][info][class,init] 38 Initializing 'java/util/ImmutableCollections$MapN'(no method) (0x000000080013d4b8)
[0.180s][info][class,init] 39 Initializing 'java/lang/StringLatin1' (0x0000000800021cb8)
[0.180s][info][class,init] 40 Initializing 'java/lang/Math' (0x0000000800022828)
[0.180s][info][class,init] 41 Initializing 'java/lang/Number'(no method) (0x0000000800030080)
[0.180s][info][class,init] 42 Initializing 'java/lang/Float' (0x000000080002fe10)
...
[0.234s][info][class,init] 194 Initializing 'java/lang/module/ModuleDescriptor$Requires$Modifier' (0x00000008001def98)
[0.234s][info][class,init] 195 Initializing 'java/lang/module/ModuleDescriptor$Provides'(no method) (0x00000008001dd800)
[0.235s][info][class,init] 196 Initializing 'java/net/URI' (0x0000000800142ff0)
[0.236s][info][class,init] 197 Initializing 'java/net/URI$1'(no method) (0x00000008001f4368)
[0.236s][info][class,init] 198 Initializing 'jdk/internal/module/SystemModuleFinders$2'(no method) (0x00000008001d4790)
[0.236s][info][class,init] 199 Initializing 'jdk/internal/module/SystemModuleFinders$3'(no method) (0x00000008001d50b0)
I.e. `Math` is loaded far before `URI`. Am I missing something?
-------------
PR: https://git.openjdk.java.net/jdk/pull/8397
More information about the net-dev
mailing list