On Tue, 26 Apr 2022 11:35:10 GMT, Daniel Fuchs <dfu...@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