{"id":335898,"date":"2022-07-19T15:00:20","date_gmt":"2022-07-19T15:00:20","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=335898"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=335898","title":{"rendered":"<span>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c: \u043d\u044e\u0430\u043d\u0441\u044b \u043f\u0440\u043e\u0442\u0438\u0432 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0435\u0439. JDK edition<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u044d\u0442\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 <a href=\"https:\/\/habr.com\/ru\/post\/518744\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u044c\u0438<\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b \u0440\u0430\u0437\u043d\u044b\u0435 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0435 \u0432\u0435\u0449\u0438 \u0438\u0437 \u043c\u0438\u0440\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0431\u0443\u0434\u0435\u043c \u043a\u043e\u043f\u0430\u0442\u044c \u0435\u0449\u0451 \u0433\u043b\u0443\u0431\u0436\u0435, \u0445\u043e\u0442\u044c \u0438 \u043d\u0430\u0447\u043d\u0451\u043c \u0441 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432. \u0418 \u0434\u0430, \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043f\u0440\u043e \u0441\u0442\u0440\u043e\u043a\u0438. \u0414\u0430, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 <a href=\"https:\/\/www.youtube.com\/watch?v=SZFe3m1DV1A\" rel=\"noopener noreferrer nofollow\">&#171;\u041a\u0430\u0442\u0435\u0445\u0438\u0437\u0438\u0441 java.lang.String&#187;<\/a>, <a href=\"https:\/\/www.youtube.com\/watch?v=v2XLg4SvCF8\" rel=\"noopener noreferrer nofollow\">&#171;The Lord of the Strings: Two Scours&#187;<\/a> \u0438 \u043f\u0430\u0440\u044b \u043c\u043e\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 (<a href=\"https:\/\/habr.com\/ru\/post\/489554\" rel=\"noopener noreferrer nofollow\">\u0440\u0430\u0437<\/a>, <a href=\"https:\/\/habr.com\/ru\/post\/511244\" rel=\"noopener noreferrer nofollow\">\u0434\u0432\u0430<\/a>, <a href=\"https:\/\/habr.com\/ru\/post\/529962\/\" rel=\"noopener noreferrer nofollow\">\u0442\u0440\u0438<\/a>) \u0442\u0430\u043c \u0432\u0441\u0451 \u0435\u0449\u0451 \u0435\u0441\u0442\u044c \u043a\u0443\u0434\u0430 \u043a\u043e\u043f\u0430\u0442\u044c \ud83d\ude42<\/p>\n<h2>\u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0435 \u2014 \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0435<\/h2>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0441\u0442\u044b \u0438 <em>\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e<\/em> \u043f\u043e\u043b\u0435\u0437\u043d\u044b, \u0447\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0439 \u0432\u0440\u0435\u0434 \u043e\u0442 \u043d\u0438\u0445 \u043d\u0435 \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0433\u043e\u043b\u043e\u0432\u0435. \u0412\u043e\u0437\u044c\u043c\u0451\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0434\u043e \u043d\u0435\u043f\u0440\u0438\u043b\u0438\u0447\u0438\u044f \u043a\u043e\u0434 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043d\u0435\u0433\u043e \u0432 &#171;\u0418\u0434\u0435\u0435&#187;:<\/p>\n<pre><code class=\"java\">&lt;T> List&lt;T> toList(Set&lt;T> set) {   var list = new ArrayList&lt;T>();   for (T item : set) {     list.add(item);   }   return list; }<\/code><\/pre>\n<p>\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0442\u0443\u0442 \u0436\u0435 \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u0438\u0442 <code>strings.add(item)<\/code> \u0438 \u043f\u043e\u0434\u0441\u043a\u0430\u0436\u0435\u0442, \u0447\u0442\u043e &#171;Iteration can be replaced with bulk &#8216;Collection.addAll()&#8217; call&#187;. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435, \u043c\u043e\u0436\u043d\u043e \u0443\u0436\u0430\u0442\u044c \u0442\u0435\u043b\u043e \u043c\u0435\u0442\u043e\u0434\u0430:<\/p>\n<pre><code class=\"java\">var list = new ArrayList&lt;T>(); list.addAll(set); return list;<\/code><\/pre>\n<p>&#171;\u0418\u0434\u0435\u044f&#187; \u043d\u0435 \u0443\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e &#171;&#8216;addAll()&#8217; can be replaced with parametrized constructor call&#187;, \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044f (\u0438 \u0443\u0441\u043a\u043e\u0440\u044f\u044f) \u0442\u0435\u043b\u043e \u043c\u0435\u0442\u043e\u0434\u0430:<\/p>\n<pre><code class=\"java\">return new ArrayList&lt;>(set);<\/code><\/pre>\n<p>\u042d\u0442\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u0438\u043c\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u044d\u0442\u043e \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0430\u043c\u0438. \u0414\u043b\u044f \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u0432\u043f\u0440\u043e\u0447\u0435\u043c, \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u043d\u0435 \u0441\u0442\u043e\u043b\u044c \u0432\u0435\u043b\u0438\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f <code>ArrayDeque<\/code>, \u0438 \u0432\u0438\u043d\u043e\u0439 \u0432\u0441\u0435\u043c\u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0451 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p>\u0437\u0430\u043f\u0440\u0435\u0442 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 <code>null<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u0437\u0430\u043f\u0430\u0441\u043e\u043c.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0438\u0437 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 <code>ArrayList<\/code>-\u0430 \u0438 \u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0441\u044f \u0440\u0443\u0447\u043d\u044b\u043c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c:<\/p>\n<pre><code class=\"java\">public ArrayDeque(Collection&lt;? extends E> c) {   this(c.size());   copyElements(c); }  public ArrayDeque(int numElements) {   elements = new Object[(numElements &lt; 1) ? 1 :       (numElements == Integer.MAX_VALUE) ? Integer.MAX_VALUE :        numElements + 1]; }  private void copyElements(Collection&lt;? extends E> c) {   c.forEach(this::addLast); }<\/code><\/pre>\n<p>\u0418 \u0432\u0441\u0451 \u0436\u0435 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u0435\u0441\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0432 \u0440\u0430\u0437\u043e\u0432\u043e\u043c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0451\u043c\u0430 \u043f\u0430\u043c\u044f\u0442\u0438. &#171;\u0418 \u0433\u0434\u0435 \u0436\u0435 \u0437\u0434\u0435\u0441\u044c \u043e\u0431\u0435\u0449\u0430\u043d\u043d\u0430\u044f \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c?&#187;, \u2014 \u0432\u043e\u043f\u0440\u043e\u0448\u0430\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c.<\/p>\n<p>\u041d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 <code>jdk.internal.loader.URLClassPath<\/code>. \u041f\u043e\u043f\u0440\u043e\u0448\u0443 \u043f\u043e\u043a\u0430 \u043d\u0435 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u2014 \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u043e\u0434\u0438\u043d \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u043b:<\/p>\n<pre><code class=\"java\">URLClassPath(String cp, boolean skipEmptyElements) {     ArrayList&lt;URL> path = new ArrayList&lt;>();     \/\/...      \/\/ \u0437\u0434\u0435\u0441\u044c \u0431\u044b\u043b \u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439     int size = path.size();     ArrayDeque&lt;URL> unopenedUrls = new ArrayDeque&lt;>(size);     for (int i = 0; i &lt; size; i++)         unopenedUrls.add(path.get(i));      this.unopenedUrls = unopenedUrls;     \/\/... }<\/code><\/pre>\n<p>\u041d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u044d\u0442\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442 \u043d\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u043d\u0438\u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u043c\u0435\u0448\u0430\u0435\u0442 \u043d\u0430\u043c \u0443\u0436\u0430\u0442\u044c 5 \u0441\u0442\u0440\u043e\u043a \u0432 1:<\/p>\n<pre><code class=\"java\">this.unopenedUrls = new ArrayDeque&lt;>(path);<\/code><\/pre>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u043f\u043e\u0440\u0430\u0437\u043c\u044b\u0448\u043b\u044f\u0435\u043c, \u043c\u043e\u0436\u0435\u0442 \u043b\u0438 \u0437\u0434\u0435\u0441\u044c \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0439\u0442\u0438 \u043d\u0435\u0442 \u0442\u0430\u043a? \u041a\u043e\u0434 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f <strong>\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/strong> JDK \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u044b\u0448\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u043f\u0440\u0430\u0432\u0434\u0430\u043d\u043d\u043e. \u0418 \u0432\u0441\u0451 \u043e\u0431\u0441\u0442\u043e\u0438\u0442 \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f <strong>\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430<\/strong> JDK:<\/p>\n<pre><code class=\"java\">URLClassPath(String cp, boolean skipEmptyElements) {     ArrayList&lt;URL> path = new ArrayList&lt;>();     \/\/...      \/\/ can't use ArrayDeque#addAll or new ArrayDeque(Collection);     \/\/ it's too early in the bootstrap to trigger use of lambdas     int size = path.size();     ArrayDeque&lt;URL> unopenedUrls = new ArrayDeque&lt;>(size);     for (int i = 0; i &lt; size; i++)         unopenedUrls.add(path.get(i));      this.unopenedUrls = unopenedUrls;     \/\/... }<\/code><\/pre>\n<p>\u041b\u044f\u043c\u0431\u0434\u0430 (\u0442\u043e\u0447\u043d\u0435\u0435 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043c\u0435\u0442\u043e\u0434) \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 <code>copyElements<\/code>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0435\u043c\u0441\u044f \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 <code>ArrayDeque<\/code>. \u0414\u043b\u044f <strong>\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/strong> JDK \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u0430 \u0434\u043b\u044f <strong>\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430<\/strong> JDK \u044d\u0442\u043e \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0441\u0442\u044c, \u0432\u0435\u0434\u044c \u043b\u044f\u043c\u0431\u0434\u044b \u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e, \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u0437\u0430\u0442\u0440\u0430\u0442 \u2014 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0438 \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043d\u0430 \u0440\u0430\u043d\u043d\u0438\u0445 \u044d\u0442\u0430\u043f\u0430\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b.<\/p>\n<p>\u0423\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u0432\u044b\u0432\u043e\u0434\u044f\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044e Java \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043a\u043b\u0430\u0441\u0441\u043e\u0432:<\/p>\n<pre><code class=\"bash\">java -Xlog:class+init -version<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 JDK \u0438\u043c\u0435\u0435\u043c \u0432\u043e\u0442 \u044d\u0442\u043e:<\/p>\n<details class=\"spoiler\">\n<summary>Hidden text<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>[0.018s][info][class,init] 0 Initializing 'java\/lang\/Object'(no method) (0x0000000800000e60) [0.018s][info][class,init] 1 Initializing 'java\/lang\/CharSequence'(no method) (0x0000000800009210) [0.018s][info][class,init] 2 Initializing 'java\/lang\/String' (0x00000008000089b8) [0.018s][info][class,init] 3 Initializing 'java\/util\/Comparator'(no method) (0x00000008000eb588) [0.018s][info][class,init] 4 Initializing 'java\/lang\/String$CaseInsensitiveComparator'(no method) (0x000000080010dff8) [0.018s][info][class,init] 5 Initializing 'java\/lang\/System' (0x0000000800002b68) [0.019s][info][class,init] 6 Initializing 'java\/lang\/reflect\/AnnotatedElement'(no method) (0x0000000800013cd0) [0.019s][info][class,init] 7 Initializing 'java\/lang\/reflect\/Type'(no method) (0x0000000800015210) [0.019s][info][class,init] 8 Initializing 'java\/lang\/Class' (0x00000008000139e0) [0.019s][info][class,init] 9 Initializing 'java\/lang\/ThreadGroup' (0x00000008000281b0) [0.019s][info][class,init] 10 Initializing 'jdk\/internal\/misc\/VM' (0x000000080000ac28) [0.019s][info][class,init] 11 Initializing 'java\/lang\/Thread' (0x000000080000f370) [0.019s][info][class,init] 12 Initializing 'java\/security\/AccessController' (0x00000008000631c8) [0.019s][info][class,init] 13 Initializing 'java\/security\/AccessControlContext' (0x0000000800061b08) [0.019s][info][class,init] 14 Initializing 'java\/lang\/Thread$FieldHolder'(no method) (0x00000008000278b0) [0.019s][info][class,init] 15 Initializing 'java\/lang\/Module' (0x000000080001e8e0) [0.019s][info][class,init] 16 Initializing 'java\/lang\/Module$ArchivedData' (0x000000080016c040) [0.019s][info][class,init] 17 Initializing 'jdk\/internal\/misc\/CDS' (0x0000000800035b90) [0.019s][info][class,init] 18 Initializing 'java\/lang\/Iterable'(no method) (0x0000000800073d88) [0.019s][info][class,init] 19 Initializing 'java\/util\/Collection'(no method) (0x00000008000741f8) [0.019s][info][class,init] 20 Initializing 'java\/util\/AbstractCollection'(no method) (0x00000008000760e8) [0.019s][info][class,init] 21 Initializing 'java\/util\/ImmutableCollections$AbstractImmutableCollection'(no method) (0x000000080015aed8) [0.019s][info][class,init] 22 Initializing 'java\/util\/Set'(no method) (0x000000080000af30) [0.019s][info][class,init] 23 Initializing 'java\/util\/ImmutableCollections$AbstractImmutableSet'(no method) (0x000000080015cc10) [0.019s][info][class,init] 24 Initializing 'java\/util\/ImmutableCollections$Set12'(no method) (0x00000008001b53a0) [0.019s][info][class,init] 25 Initializing 'jdk\/internal\/misc\/UnsafeConstants' (0x000000080009a4a8) [0.019s][info][class,init] 26 Initializing 'java\/lang\/reflect\/AccessibleObject' (0x0000000800049da8) [0.019s][info][class,init] 27 Initializing 'java\/lang\/reflect\/ReflectAccess'(no method) (0x000000080016c608) [0.019s][info][class,init] 28 Initializing 'jdk\/internal\/access\/SharedSecrets'(no method) (0x0000000800004540) [0.019s][info][class,init] 29 Initializing 'jdk\/internal\/reflect\/ReflectionFactory$GetReflectionFactoryAction'(no method) (0x000000080011b780) [0.019s][info][class,init] 30 Initializing 'jdk\/internal\/reflect\/Reflection' (0x0000000800063be0) [0.019s][info][class,init] 31 Initializing 'java\/util\/Objects'(no method) (0x0000000800072850) [0.019s][info][class,init] 32 Initializing 'java\/util\/ImmutableCollections' (0x000000080015a2e0) [0.019s][info][class,init] 33 Initializing 'java\/util\/List'(no method) (0x0000000800074d38) [0.019s][info][class,init] 34 Initializing 'java\/util\/ImmutableCollections$AbstractImmutableList'(no method) (0x000000080015b240) [0.019s][info][class,init] 35 Initializing 'java\/util\/ImmutableCollections$ListN'(no method) (0x000000080015c0c0) [0.019s][info][class,init] 36 Initializing 'java\/util\/ImmutableCollections$SetN'(no method) (0x000000080015c810) [0.020s][info][class,init] 37 Initializing 'java\/util\/Map'(no method) (0x00000008000048d0) [0.020s][info][class,init] 38 Initializing 'java\/util\/AbstractMap'(no method) (0x000000080007f0c8) [0.020s][info][class,init] 39 Initializing 'java\/util\/ImmutableCollections$AbstractImmutableMap'(no method) (0x000000080015d680) [0.020s][info][class,init] 40 Initializing 'java\/util\/ImmutableCollections$MapN'(no method) (0x000000080015d2e8) [0.020s][info][class,init] 41 Initializing 'java\/lang\/StringLatin1' (0x00000008000223c8) [0.020s][info][class,init] 42 Initializing 'java\/lang\/Math' (0x0000000800022f18) [0.020s][info][class,init] 43 Initializing 'java\/lang\/Number'(no method) (0x0000000800037aa8) [0.020s][info][class,init] 44 Initializing 'java\/lang\/Float' (0x0000000800037838) [0.020s][info][class,init] 45 Initializing 'java\/lang\/Double' (0x0000000800039308) [0.020s][info][class,init] 46 Initializing 'jdk\/internal\/reflect\/ReflectionFactory' (0x0000000800113bf8) [0.020s][info][class,init] 47 Initializing 'java\/lang\/Record'(no method) (0x000000080007a218) [0.020s][info][class,init] 48 Initializing 'jdk\/internal\/reflect\/ReflectionFactory$Config'(no method) (0x00000008001be668) [0.020s][info][class,init] 49 Initializing 'java\/lang\/ref\/Reference' (0x00000008000460e8) [0.020s][info][class,init] 50 Initializing 'java\/lang\/ref\/Reference$1'(no method) (0x000000080013dd08) [0.020s][info][class,init] 51 Initializing 'java\/lang\/reflect\/Executable'(no method) (0x000000080004c1f0) [0.020s][info][class,init] 52 Initializing 'java\/lang\/reflect\/Method'(no method) (0x000000080004b7f0) [0.020s][info][class,init] 53 Initializing 'java\/lang\/ref\/FinalReference'(no method) (0x0000000800047e90) [0.020s][info][class,init] 54 Initializing 'java\/lang\/ref\/Finalizer' (0x00000008000487b8) [0.020s][info][class,init] 55 Initializing 'java\/lang\/ref\/ReferenceQueue' (0x0000000800049498) [0.020s][info][class,init] 56 Initializing 'java\/lang\/ref\/ReferenceQueue$Null'(no method) (0x00000008001bf578) [0.020s][info][class,init] 57 Initializing 'java\/lang\/ref\/NativeReferenceQueue'(no method) (0x0000000800049250) [0.020s][info][class,init] 58 Initializing 'java\/lang\/ref\/NativeReferenceQueue$Lock'(no method) (0x00000008001bedc0) [0.020s][info][class,init] 59 Initializing 'java\/lang\/System$2'(no method) (0x00000008000104e0) [0.020s][info][class,init] 60 Initializing 'jdk\/internal\/util\/SystemProps' (0x0000000800006988) [0.020s][info][class,init] 61 Initializing 'jdk\/internal\/util\/SystemProps$Raw'(no method) (0x00000008001c00d8) [0.029s][info][class,init] 62 Initializing 'java\/util\/HashMap'(no method) (0x00000008000abde0) [0.029s][info][class,init] 63 Initializing 'java\/lang\/Integer' (0x000000080003d6d0) [0.029s][info][class,init] 64 Initializing 'java\/util\/HashMap$Node'(no method) (0x00000008001c0a50) [0.029s][info][class,init] 65 Initializing 'java\/lang\/StringConcatHelper' (0x0000000800023190) [0.029s][info][class,init] 66 Initializing 'jdk\/internal\/misc\/Unsafe' (0x000000080000dde8) [0.030s][info][class,init] 67 Initializing 'java\/lang\/Byte' (0x000000080003a888) [0.030s][info][class,init] 68 Initializing 'java\/lang\/VersionProps' (0x0000000800006b98) [0.030s][info][class,init] 69 Initializing 'java\/lang\/Runtime' (0x000000080012d7c0) [0.030s][info][class,init] 70 Initializing 'jdk\/internal\/util\/Preconditions' (0x0000000800072f08) [0.030s][info][class,init] 71 Initializing 'java\/util\/function\/Function'(no method) (0x0000000800104360) [0.030s][info][class,init] 72 Initializing 'jdk\/internal\/util\/Preconditions$1'(no method) (0x00000008001c8a30) [0.030s][info][class,init] 73 Initializing 'java\/util\/function\/BiFunction'(no method) (0x0000000800159e68) [0.030s][info][class,init] 74 Initializing 'jdk\/internal\/util\/Preconditions$4'(no method) (0x00000008001c8578) [0.030s][info][class,init] 75 Initializing 'jdk\/internal\/util\/Preconditions$2'(no method) (0x00000008001c8e78) [0.030s][info][class,init] 76 Initializing 'jdk\/internal\/util\/Preconditions$3'(no method) (0x00000008001c92c0) [0.030s][info][class,init] 77 Initializing 'java\/util\/Arrays' (0x00000008000233b8) [0.030s][info][class,init] 78 Initializing 'java\/lang\/Character' (0x0000000800031c90) [0.030s][info][class,init] 79 Initializing 'java\/lang\/CharacterData'(no method) (0x0000000800036220) [0.030s][info][class,init] 80 Initializing 'java\/lang\/CharacterDataLatin1' (0x0000000800035ec0) [0.030s][info][class,init] 81 Initializing 'java\/util\/Dictionary'(no method) (0x00000008000072b8) [0.030s][info][class,init] 82 Initializing 'java\/util\/Hashtable'(no method) (0x00000008000074e8) [0.030s][info][class,init] 83 Initializing 'java\/util\/Properties' (0x0000000800006e68) [0.030s][info][class,init] 84 Initializing 'java\/util\/concurrent\/ConcurrentMap'(no method) (0x0000000800080cd8) [0.030s][info][class,init] 85 Initializing 'java\/util\/concurrent\/ConcurrentHashMap' (0x000000080007eb30) [0.030s][info][class,init] 86 Initializing 'java\/io\/ObjectStreamField'(no method) (0x000000080010cd20) [0.030s][info][class,init] 87 Initializing 'java\/util\/AbstractSet'(no method) (0x0000000800100a68) [0.030s][info][class,init] 88 Initializing 'java\/util\/HashMap$EntrySet'(no method) (0x00000008001c3548) [0.030s][info][class,init] 89 Initializing 'java\/util\/HashMap$HashIterator'(no method) (0x00000008001c56c0) [0.030s][info][class,init] 90 Initializing 'java\/util\/Iterator'(no method) (0x000000080000b1d8) [0.030s][info][class,init] 91 Initializing 'java\/util\/HashMap$EntryIterator'(no method) (0x00000008001c5488) [0.030s][info][class,init] 92 Initializing 'java\/util\/concurrent\/ConcurrentHashMap$Node'(no method) (0x000000080019e128) [0.031s][info][class,init] 93 Initializing 'java\/nio\/charset\/Charset' (0x000000080000a190) [0.031s][info][class,init] 94 Initializing 'java\/nio\/charset\/spi\/CharsetProvider'(no method) (0x00000008001d1260) [0.031s][info][class,init] 95 Initializing 'sun\/nio\/cs\/StandardCharsets' (0x00000008001d2088) [0.031s][info][class,init] 96 Initializing 'sun\/nio\/cs\/Unicode'(no method) (0x000000080000a3e0) [0.031s][info][class,init] 97 Initializing 'sun\/nio\/cs\/UTF_8' (0x0000000800009f20) [0.031s][info][class,init] 98 Initializing 'jdk\/internal\/util\/StaticProperty' (0x000000080000b858) [0.031s][info][class,init] 99 Initializing 'sun\/security\/action\/GetPropertyAction'(no method) (0x0000000800139ab8) [0.031s][info][class,init] 100 Initializing 'java\/io\/InputStream'(no method) (0x000000080000bda8) [0.031s][info][class,init] 101 Initializing 'java\/io\/FileInputStream' (0x000000080000bb00) [0.031s][info][class,init] 102 Initializing 'java\/io\/FileDescriptor' (0x000000080000c5b8) [0.031s][info][class,init] 103 Initializing 'java\/io\/FileDescriptor$1'(no method) (0x00000008001d4b88) [0.031s][info][class,init] 104 Initializing 'java\/io\/OutputStream'(no method) (0x0000000800004f20) [0.031s][info][class,init] 105 Initializing 'java\/io\/FileOutputStream' (0x000000080000c840) [0.031s][info][class,init] 106 Initializing 'java\/io\/FilterInputStream'(no method) (0x000000080000cfc0) [0.031s][info][class,init] 107 Initializing 'java\/io\/BufferedInputStream' (0x000000080000cd18) [0.031s][info][class,init] 108 Initializing 'jdk\/internal\/misc\/InternalLock' (0x000000080012ead0) [0.031s][info][class,init] 109 Initializing 'java\/util\/concurrent\/locks\/ReentrantLock'(no method) (0x00000008001a16c0) [0.031s][info][class,init] 110 Initializing 'java\/util\/concurrent\/locks\/AbstractOwnableSynchronizer'(no method) (0x000000080008bf20) [0.031s][info][class,init] 111 Initializing 'java\/util\/concurrent\/locks\/AbstractQueuedSynchronizer' (0x00000008001ce8c8) [0.031s][info][class,init] 112 Initializing 'java\/util\/concurrent\/locks\/ReentrantLock$Sync'(no method) (0x00000008001cf9f8) [0.031s][info][class,init] 113 Initializing 'java\/util\/concurrent\/locks\/ReentrantLock$NonfairSync'(no method) (0x00000008001ce690) [0.031s][info][class,init] 114 Initializing 'java\/io\/FilterOutputStream'(no method) (0x0000000800005188) [0.031s][info][class,init] 115 Initializing 'java\/io\/PrintStream' (0x0000000800004b78) [0.031s][info][class,init] 116 Initializing 'java\/io\/PrintStream$1'(no method) (0x00000008001d69c0) [0.031s][info][class,init] 117 Initializing 'java\/io\/BufferedOutputStream'(no method) (0x0000000800009aa0) [0.031s][info][class,init] 118 Initializing 'sun\/nio\/cs\/US_ASCII' (0x00000008000e1d68) [0.031s][info][class,init] 119 Initializing 'java\/io\/Writer'(no method) (0x00000008001509a0) [0.031s][info][class,init] 120 Initializing 'java\/io\/OutputStreamWriter'(no method) (0x0000000800152068) [0.031s][info][class,init] 121 Initializing 'sun\/nio\/cs\/StreamEncoder' (0x00000008001d77d8) [0.031s][info][class,init] 122 Initializing 'java\/nio\/charset\/CharsetEncoder' (0x00000008000e2840) [0.031s][info][class,init] 123 Initializing 'sun\/nio\/cs\/US_ASCII$Encoder' (0x00000008001d6d50) [0.031s][info][class,init] 124 Initializing 'java\/nio\/charset\/CodingErrorAction' (0x00000008000e23c8) [0.031s][info][class,init] 125 Initializing 'sun\/nio\/cs\/Surrogate$Parser' (0x00000008001d9360) [0.032s][info][class,init] 126 Initializing 'java\/nio\/charset\/CoderResult' (0x00000008000ea620) [0.032s][info][class,init] 127 Initializing 'java\/nio\/Buffer' (0x00000008000711b8) [0.032s][info][class,init] 128 Initializing 'jdk\/internal\/misc\/ScopedMemoryAccess' (0x000000080009a8d0) [0.032s][info][class,init] 129 Initializing 'java\/nio\/Buffer$1'(no method) (0x00000008001ae650) [0.032s][info][class,init] 130 Initializing 'java\/nio\/ByteBuffer' (0x00000008000e4100) [0.032s][info][class,init] 131 Initializing 'java\/nio\/HeapByteBuffer' (0x00000008001deb80) [0.032s][info][class,init] 132 Initializing 'java\/nio\/ByteOrder' (0x00000008001da348) [0.032s][info][class,init] 133 Initializing 'java\/io\/BufferedWriter'(no method) (0x00000008001506b0) [0.032s][info][class,init] 134 Initializing 'java\/lang\/Terminator' (0x000000080000d6f8) [0.032s][info][class,init] 135 Initializing 'java\/lang\/Terminator$1'(no method) (0x00000008001e1d08) [0.032s][info][class,init] 136 Initializing 'jdk\/internal\/misc\/Signal' (0x00000008000776e0) [0.032s][info][class,init] 137 Initializing 'java\/lang\/Integer$IntegerCache' (0x000000080003fef8) [0.032s][info][class,init] 138 Initializing 'java\/util\/Hashtable$Entry'(no method) (0x00000008001586b8) [0.032s][info][class,init] 139 Initializing 'jdk\/internal\/misc\/Signal$Handler' (0x00000008001e1f20) [0.032s][info][class,init] 140 Initializing 'jdk\/internal\/misc\/Signal$NativeHandler'(no method) (0x00000008001e2478) [0.032s][info][class,init] 141 Initializing 'jdk\/internal\/misc\/OSEnvironment'(no method) (0x00000008001b4ca8) [0.032s][info][class,init] 142 Initializing 'java\/lang\/Enum'(no method) (0x00000008000a9410) [0.032s][info][class,init] 143 Initializing 'java\/lang\/Thread$State' (0x0000000800142c60) [0.032s][info][class,init] 144 Initializing 'java\/lang\/ref\/Reference$ReferenceHandler'(no method) (0x000000080013d830) [0.032s][info][class,init] 145 Initializing 'java\/lang\/Thread$ThreadIdentifiers' (0x0000000800140590) [0.033s][info][class,init] 146 Initializing 'java\/lang\/ref\/Finalizer$FinalizerThread'(no method) (0x0000000800048ed8) [0.033s][info][class,init] 147 Initializing 'java\/lang\/ref\/PhantomReference'(no method) (0x0000000800048348) [0.033s][info][class,init] 148 Initializing 'java\/lang\/Throwable' (0x000000080002e058) [0.033s][info][class,init] 149 Initializing 'jdk\/internal\/ref\/Cleaner' (0x000000080013d118) [0.033s][info][class,init] 150 Initializing 'jdk\/internal\/misc\/Blocker' (0x00000008000e1620) [0.033s][info][class,init] 151 Initializing 'java\/util\/concurrent\/locks\/AbstractQueuedSynchronizer$ConditionObject'(no method) (0x00000008001d0390) [0.033s][info][class,init] 152 Initializing 'java\/util\/Collections' (0x00000008000b4088) [0.033s][info][class,init] 153 Initializing 'java\/util\/Collections$EmptySet'(no method) (0x00000008001f0b38) [0.033s][info][class,init] 154 Initializing 'java\/util\/AbstractList'(no method) (0x00000008000738c8) [0.033s][info][class,init] 155 Initializing 'java\/util\/Collections$EmptyList'(no method) (0x00000008001f15c0) [0.033s][info][class,init] 156 Initializing 'java\/util\/Collections$EmptyMap'(no method) (0x00000008001f23f8) [0.033s][info][class,init] 157 Initializing 'java\/lang\/Error'(no method) (0x000000080002fd20) [0.033s][info][class,init] 158 Initializing 'java\/lang\/VirtualMachineError'(no method) (0x0000000800089268) [0.033s][info][class,init] 159 Initializing 'java\/lang\/OutOfMemoryError'(no method) (0x000000080008a310) [0.033s][info][class,init] 160 Initializing 'java\/lang\/Exception'(no method) (0x0000000800084dd0) [0.033s][info][class,init] 161 Initializing 'java\/lang\/RuntimeException'(no method) (0x0000000800085308) [0.033s][info][class,init] 162 Initializing 'java\/lang\/NullPointerException'(no method) (0x0000000800088680) [0.033s][info][class,init] 163 Initializing 'java\/lang\/ClassCastException'(no method) (0x0000000800085d80) [0.033s][info][class,init] 164 Initializing 'java\/lang\/ArrayStoreException'(no method) (0x00000008000859b8) [0.033s][info][class,init] 165 Initializing 'java\/lang\/ArithmeticException'(no method) (0x0000000800084b80) [0.033s][info][class,init] 166 Initializing 'java\/lang\/StackOverflowError'(no method) (0x000000080008a8b8) [0.033s][info][class,init] 167 Initializing 'java\/lang\/IllegalMonitorStateException'(no method) (0x00000008000871f0) [0.033s][info][class,init] 168 Initializing 'java\/lang\/IllegalArgumentException'(no method) (0x0000000800086d30) [0.034s][info][class,init] 169 Initializing 'java\/lang\/invoke\/MethodHandle' (0x00000008000a9fa0) [0.034s][info][class,init] 170 Initializing 'java\/lang\/invoke\/MethodHandleStatics' (0x00000008000a9a70) [0.034s][info][class,init] 171 Initializing 'java\/lang\/Boolean' (0x0000000800030fb8) [0.034s][info][class,init] 172 Initializing 'java\/lang\/invoke\/ResolvedMethodName'(no method) (0x00000008000c82a8) [0.034s][info][class,init] 173 Initializing 'java\/lang\/invoke\/MemberName' (0x00000008000c4970) [0.034s][info][class,init] 174 Initializing 'java\/lang\/invoke\/MethodHandleNatives' (0x00000008000c85a0) [0.034s][info][class,init] 175 Initializing 'jdk\/internal\/module\/ModuleBootstrap' (0x000000080000db00) [0.034s][info][class,init] 176 Initializing 'java\/lang\/invoke\/MethodHandles' (0x00000008000b2900) [0.034s][info][class,init] 177 Initializing 'java\/lang\/invoke\/MemberName$Factory' (0x000000080016f250) [0.034s][info][class,init] 178 Initializing 'java\/lang\/invoke\/MethodHandles$Lookup' (0x00000008000b4318) [0.034s][info][class,init] 179 Initializing 'java\/lang\/StrictMath' (0x000000080008c300) [0.034s][info][class,init] 180 Initializing 'java\/util\/ImmutableCollections$MapN$1'(no method) (0x00000008001b6b80) [0.035s][info][class,init] 181 Initializing 'java\/util\/ImmutableCollections$MapN$MapNIterator'(no method) (0x00000008001b64e0) [0.035s][info][class,init] 182 Initializing 'java\/util\/KeyValueHolder'(no method) (0x000000080015eed8) [0.035s][info][class,init] 183 Initializing 'sun\/invoke\/util\/VerifyAccess' (0x0000000800171958) [0.035s][info][class,init] 184 Initializing 'java\/lang\/reflect\/Modifier'(no method) (0x0000000800111a58) [0.035s][info][class,init] 185 Initializing 'java\/lang\/module\/ModuleDescriptor' (0x0000000800116ca0) [0.035s][info][class,init] 186 Initializing 'java\/lang\/module\/ModuleDescriptor$1'(no method) (0x00000008001feed0) [0.035s][info][class,init] 187 Initializing 'java\/io\/File' (0x000000080006d560) [0.035s][info][class,init] 188 Initializing 'java\/io\/DefaultFileSystem'(no method) (0x000000080020a2f0) [0.035s][info][class,init] 189 Initializing 'java\/io\/FileSystem' (0x0000000800207978) [0.035s][info][class,init] 190 Initializing 'java\/io\/UnixFileSystem' (0x000000080020a598) [0.035s][info][class,init] 191 Initializing 'java\/lang\/AbstractStringBuilder' (0x00000008000572d8) [0.035s][info][class,init] 192 Initializing 'java\/lang\/StringBuilder'(no method) (0x000000080005c620) [0.035s][info][class,init] 193 Initializing 'jdk\/internal\/util\/ArraysSupport' (0x0000000800095a20) [0.035s][info][class,init] 194 Initializing 'jdk\/internal\/module\/ModulePatcher' (0x000000080019acf8) [0.035s][info][class,init] 195 Initializing 'java\/util\/HashSet' (0x0000000800100668) [0.035s][info][class,init] 196 Initializing 'jdk\/internal\/module\/ModuleBootstrap$Counters' (0x00000008001f37a8) [0.035s][info][class,init] 197 Initializing 'jdk\/internal\/module\/ArchivedBootLayer' (0x00000008001f4058) [0.035s][info][class,init] 198 Initializing 'java\/lang\/ModuleLayer' (0x0000000800135690) [0.035s][info][class,init] 199 Initializing 'java\/lang\/module\/Configuration' (0x0000000800160768) [0.035s][info][class,init] 200 Initializing 'jdk\/internal\/loader\/AbstractClassLoaderValue' (0x000000080022fe90) [0.035s][info][class,init] 201 Initializing 'jdk\/internal\/loader\/ClassLoaderValue'(no method) (0x000000080022fc58) [0.035s][info][class,init] 202 Initializing 'java\/util\/ImmutableCollections$List12'(no method) (0x000000080015aa10) [0.035s][info][class,init] 203 Initializing 'java\/lang\/module\/ResolvedModule'(no method) (0x0000000800161dd8) [0.035s][info][class,init] 204 Initializing 'java\/lang\/module\/ModuleReference'(no method) (0x00000008001627b0) [0.035s][info][class,init] 205 Initializing 'jdk\/internal\/module\/ModuleReferenceImpl'(no method) (0x00000008001f6ac8) [0.035s][info][class,init] 206 Initializing 'java\/lang\/module\/ModuleDescriptor$Version'(no method) (0x000000080015f618) [0.035s][info][class,init] 207 Initializing 'java\/util\/ArrayList' (0x00000008000dec90) [0.035s][info][class,init] 208 Initializing 'java\/lang\/module\/ModuleDescriptor$Requires' (0x0000000800200328) [0.035s][info][class,init] 209 Initializing 'java\/lang\/module\/ModuleDescriptor$Provides'(no method) (0x00000008001ff900) [0.035s][info][class,init] 210 Initializing 'java\/net\/URI' (0x0000000800162e58) [0.036s][info][class,init] 211 Initializing 'java\/net\/URI$1'(no method) (0x00000008002164e0) [0.036s][info][class,init] 212 Initializing 'jdk\/internal\/module\/SystemModuleFinders$2'(no method) (0x00000008001f67d0) [0.036s][info][class,init] 213 Initializing 'jdk\/internal\/module\/SystemModuleFinders$3'(no method) (0x00000008001f70f0) [0.036s][info][class,init] 214 Initializing 'java\/lang\/module\/ModuleDescriptor$Exports'(no method) (0x0000000800137fd8) [0.036s][info][class,init] 215 Initializing 'jdk\/internal\/module\/ModuleTarget'(no method) (0x00000008002114d8) [0.036s][info][class,init] 216 Initializing 'jdk\/internal\/module\/ModuleHashes'(no method) (0x00000008001f62c8) [0.036s][info][class,init] 217 Initializing 'java\/util\/Collections$UnmodifiableMap'(no method) (0x00000008001e68c8) [0.036s][info][class,init] 218 Initializing 'java\/lang\/module\/ModuleDescriptor$Opens'(no method) (0x0000000800137430) [0.036s][info][class,init] 219 Initializing 'java\/lang\/ClassLoader' (0x000000080000e418) [0.036s][info][class,init] 220 Initializing 'java\/security\/SecureClassLoader' (0x0000000800066f80) [0.036s][info][class,init] 221 Initializing 'java\/lang\/ClassLoader$ParallelLoaders' (0x00000008001265b8) [0.036s][info][class,init] 222 Initializing 'java\/util\/WeakHashMap' (0x0000000800122e68) [0.036s][info][class,init] 223 Initializing 'java\/util\/Collections$SetFromMap'(no method) (0x00000008001ee308) [0.036s][info][class,init] 224 Initializing 'java\/util\/WeakHashMap$KeySet'(no method) (0x0000000800221210) [0.036s][info][class,init] 225 Initializing 'java\/lang\/ref\/WeakReference'(no method) (0x0000000800047910) [0.036s][info][class,init] 226 Initializing 'java\/util\/WeakHashMap$Entry'(no method) (0x0000000800220818) [0.036s][info][class,init] 227 Initializing 'jdk\/internal\/loader\/BuiltinClassLoader' (0x00000008000816a0) [0.036s][info][class,init] 228 Initializing 'jdk\/internal\/loader\/ArchivedClassLoaders' (0x00000008000ddba8) [0.036s][info][class,init] 229 Initializing 'jdk\/internal\/loader\/ClassLoaders$BootClassLoader'(no method) (0x00000008000ddfd8) [0.036s][info][class,init] 230 Initializing 'java\/security\/ProtectionDomain' (0x0000000800065d08) [0.036s][info][class,init] 231 Initializing 'java\/security\/ProtectionDomain$JavaSecurityAccessImpl'(no method) (0x000000080013a1b8) [0.036s][info][class,init] 232 Initializing 'java\/security\/CodeSource'(no method) (0x0000000800064958) [0.036s][info][class,init] 233 Initializing 'java\/security\/Principal'(no method) (0x0000000800138e68) [0.036s][info][class,init] 234 Initializing 'java\/security\/ProtectionDomain$Key'(no method) (0x0000000800138b80) [0.036s][info][class,init] 235 Initializing 'jdk\/internal\/loader\/NativeLibraries' (0x000000080007dd78) [0.036s][info][class,init] 236 Initializing 'jdk\/internal\/loader\/ClassLoaderHelper' (0x0000000800080ec8) [0.036s][info][class,init] 237 Initializing 'java\/util\/concurrent\/ConcurrentHashMap$CollectionView'(no method) (0x0000000800157490) [0.036s][info][class,init] 238 Initializing 'java\/util\/concurrent\/ConcurrentHashMap$KeySetView'(no method) (0x00000008001570c0) [0.036s][info][class,init] 239 Initializing 'jdk\/internal\/loader\/ClassLoaders$PlatformClassLoader' (0x00000008000846a0) [0.036s][info][class,init] 240 Initializing 'jdk\/internal\/module\/ServicesCatalog' (0x0000000800112fe8) [0.036s][info][class,init] 241 Initializing 'java\/util\/concurrent\/CopyOnWriteArrayList'(no method) (0x000000080022ccf8) [0.036s][info][class,init] 242 Initializing 'jdk\/internal\/module\/ServicesCatalog$ServiceProvider'(no method) (0x000000080022f570) [0.036s][info][class,init] 243 Initializing 'jdk\/internal\/loader\/BuiltinClassLoader$LoadedModule'(no method) (0x0000000800198438) [0.036s][info][class,init] 244 Initializing 'jdk\/internal\/loader\/ClassLoaders$AppClassLoader' (0x0000000800083e30) [0.036s][info][class,init] 245 Initializing 'jdk\/internal\/loader\/BootLoader' (0x00000008001126a0) [0.036s][info][class,init] 246 Initializing 'jdk\/internal\/loader\/ClassLoaders' (0x00000008000dd4c0) [0.036s][info][class,init] 247 Initializing 'jdk\/internal\/loader\/URLClassPath' (0x00000008000de360) [0.036s][info][class,init] 248 Initializing 'java\/net\/URL' (0x0000000800067848) [0.036s][info][class,init] 249 Initializing 'java\/net\/URL$DefaultFactory' (0x000000080018d4a8) [0.036s][info][class,init] 250 Initializing 'java\/net\/URL$3'(no method) (0x000000080018da88) [0.036s][info][class,init] 251 Initializing 'java\/io\/File$PathStatus' (0x00000008002089b8) [0.037s][info][class,init] 252 Initializing 'sun\/net\/www\/ParseUtil' (0x00000008000785d8) [0.037s][info][class,init] 253 Initializing 'java\/util\/HexFormat' (0x0000000800079520) [0.037s][info][class,init] 254 Initializing 'java\/net\/URLStreamHandler'(no method) (0x000000080018c1c0) [0.037s][info][class,init] 255 Initializing 'sun\/net\/www\/protocol\/file\/Handler'(no method) (0x0000000800228420) [0.037s][info][class,init] 256 Initializing 'sun\/net\/util\/IPAddressUtil' (0x000000080018a918) [0.037s][info][class,init] 257 Initializing 'java\/util\/ArrayDeque'(no method) (0x0000000800221a40) [0.037s][info][class,init] 258 Initializing 'java\/lang\/invoke\/StringConcatFactory' (0x000000080000e0e8) [0.037s][info][class,init] 259 Initializing 'java\/lang\/invoke\/StringConcatFactory$1'(no method) (0x0000000800234cc8) [0.037s][info][class,init] 260 Initializing 'java\/lang\/invoke\/StringConcatFactory$2'(no method) (0x0000000800235208) [0.037s][info][class,init] 261 Initializing 'java\/lang\/invoke\/StringConcatFactory$3'(no method) (0x00000008002356e0) [0.038s][info][class,init] 262 Initializing 'java\/nio\/CharBuffer' (0x00000008000e7330) [0.038s][info][class,init] 263 Initializing 'java\/nio\/HeapCharBuffer' (0x000000080026cd00) [0.038s][info][class,init] 264 Initializing 'java\/lang\/StringCoding'(no method) (0x000000080008f4c0) [0.038s][info][class,init] 265 Initializing 'java\/lang\/Shutdown' (0x00000008000457e0) [0.038s][info][class,init] 266 Initializing 'java\/lang\/Shutdown$Lock'(no method) (0x000000080023a838)<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u0441\u043b\u0435 &#171;\u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f&#187; \u043a\u043e\u0434\u0430  <code>URLClassPath<\/code> \u044d\u0442\u0430 \u0436\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432\u044b\u0434\u0430\u0441\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u0434\u043b\u0438\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a:<\/p>\n<details class=\"spoiler\">\n<summary>Hidden text<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>[0.016s][info][class,init] 0 Initializing 'java\/lang\/Object'(no method) (0x0000000800000e60) [0.016s][info][class,init] 1 Initializing 'java\/lang\/CharSequence'(no method) (0x0000000800009210) [0.016s][info][class,init] 2 Initializing 'java\/lang\/String' (0x00000008000089b8) [0.016s][info][class,init] 3 Initializing 'java\/util\/Comparator'(no method) (0x00000008000eb588) [0.016s][info][class,init] 4 Initializing 'java\/lang\/String$CaseInsensitiveComparator'(no method) (0x000000080010dff8) [0.016s][info][class,init] 5 Initializing 'java\/lang\/System' (0x0000000800002b68) [0.016s][info][class,init] 6 Initializing 'java\/lang\/reflect\/AnnotatedElement'(no method) (0x0000000800013cd0) [0.016s][info][class,init] 7 Initializing 'java\/lang\/reflect\/Type'(no method) (0x0000000800015210) [0.016s][info][class,init] 8 Initializing 'java\/lang\/Class' (0x00000008000139e0) [0.016s][info][class,init] 9 Initializing 'java\/lang\/ThreadGroup' (0x00000008000281b0) [0.016s][info][class,init] 10 Initializing 'jdk\/internal\/misc\/VM' (0x000000080000ac28) [0.017s][info][class,init] 11 Initializing 'java\/lang\/Thread' (0x000000080000f370) [0.017s][info][class,init] 12 Initializing 'java\/security\/AccessController' (0x00000008000631c8) [0.017s][info][class,init] 13 Initializing 'java\/security\/AccessControlContext' (0x0000000800061b08) [0.017s][info][class,init] 14 Initializing 'java\/lang\/Thread$FieldHolder'(no method) (0x00000008000278b0) [0.017s][info][class,init] 15 Initializing 'java\/lang\/Module' (0x000000080001e8e0) [0.017s][info][class,init] 16 Initializing 'java\/lang\/Module$ArchivedData' (0x000000080016c040) [0.017s][info][class,init] 17 Initializing 'jdk\/internal\/misc\/CDS' (0x0000000800035b90) [0.017s][info][class,init] 18 Initializing 'java\/lang\/Iterable'(no method) (0x0000000800073d88) [0.017s][info][class,init] 19 Initializing 'java\/util\/Collection'(no method) (0x00000008000741f8) [0.017s][info][class,init] 20 Initializing 'java\/util\/AbstractCollection'(no method) (0x00000008000760e8) [0.017s][info][class,init] 21 Initializing 'java\/util\/ImmutableCollections$AbstractImmutableCollection'(no method) (0x000000080015aed8) [0.017s][info][class,init] 22 Initializing 'java\/util\/Set'(no method) (0x000000080000af30) [0.017s][info][class,init] 23 Initializing 'java\/util\/ImmutableCollections$AbstractImmutableSet'(no method) (0x000000080015cc10) [0.017s][info][class,init] 24 Initializing 'java\/util\/ImmutableCollections$Set12'(no method) (0x00000008001b53a0) [0.017s][info][class,init] 25 Initializing 'jdk\/internal\/misc\/UnsafeConstants' (0x000000080009a4a8) [0.017s][info][class,init] 26 Initializing 'java\/lang\/reflect\/AccessibleObject' (0x0000000800049da8) [0.017s][info][class,init] 27 Initializing 'java\/lang\/reflect\/ReflectAccess'(no method) (0x000000080016c608) [0.017s][info][class,init] 28 Initializing 'jdk\/internal\/access\/SharedSecrets'(no method) (0x0000000800004540) [0.017s][info][class,init] 29 Initializing 'jdk\/internal\/reflect\/ReflectionFactory$GetReflectionFactoryAction'(no method) (0x000000080011b780) [0.018s][info][class,init] 30 Initializing 'jdk\/internal\/reflect\/Reflection' (0x0000000800063be0) [0.018s][info][class,init] 31 Initializing 'java\/util\/Objects'(no method) (0x0000000800072850) [0.018s][info][class,init] 32 Initializing 'java\/util\/ImmutableCollections' (0x000000080015a2e0) [0.018s][info][class,init] 33 Initializing 'java\/util\/List'(no method) (0x0000000800074d38) [0.018s][info][class,init] 34 Initializing 'java\/util\/ImmutableCollections$AbstractImmutableList'(no method) (0x000000080015b240) [0.018s][info][class,init] 35 Initializing 'java\/util\/ImmutableCollections$ListN'(no method) (0x000000080015c0c0) [0.018s][info][class,init] 36 Initializing 'java\/util\/ImmutableCollections$SetN'(no method) (0x000000080015c810) [0.018s][info][class,init] 37 Initializing 'java\/util\/Map'(no method) (0x00000008000048d0) [0.018s][info][class,init] 38 Initializing 'java\/util\/AbstractMap'(no method) (0x000000080007f0c8) [0.018s][info][class,init] 39 Initializing 'java\/util\/ImmutableCollections$AbstractImmutableMap'(no method) (0x000000080015d680) [0.018s][info][class,init] 40 Initializing 'java\/util\/ImmutableCollections$MapN'(no method) (0x000000080015d2e8) [0.018s][info][class,init] 41 Initializing 'java\/lang\/StringLatin1' (0x00000008000223c8) [0.018s][info][class,init] 42 Initializing 'java\/lang\/Math' (0x0000000800022f18) [0.018s][info][class,init] 43 Initializing 'java\/lang\/Number'(no method) (0x0000000800037aa8) [0.018s][info][class,init] 44 Initializing 'java\/lang\/Float' (0x0000000800037838) [0.018s][info][class,init] 45 Initializing 'java\/lang\/Double' (0x0000000800039308) [0.018s][info][class,init] 46 Initializing 'jdk\/internal\/reflect\/ReflectionFactory' (0x0000000800113bf8) [0.018s][info][class,init] 47 Initializing 'java\/lang\/Record'(no method) (0x000000080007a218) [0.018s][info][class,init] 48 Initializing 'jdk\/internal\/reflect\/ReflectionFactory$Config'(no method) (0x00000008001be668) [0.018s][info][class,init] 49 Initializing 'java\/lang\/ref\/Reference' (0x00000008000460e8) [0.018s][info][class,init] 50 Initializing 'java\/lang\/ref\/Reference$1'(no method) (0x000000080013dd08) [0.018s][info][class,init] 51 Initializing 'java\/lang\/reflect\/Executable'(no method) (0x000000080004c1f0) [0.018s][info][class,init] 52 Initializing 'java\/lang\/reflect\/Method'(no method) (0x000000080004b7f0) [0.018s][info][class,init] 53 Initializing 'java\/lang\/ref\/FinalReference'(no method) (0x0000000800047e90) [0.018s][info][class,init] 54 Initializing 'java\/lang\/ref\/Finalizer' (0x00000008000487b8) [0.019s][info][class,init] 55 Initializing 'java\/lang\/ref\/ReferenceQueue' (0x0000000800049498) [0.019s][info][class,init] 56 Initializing 'java\/lang\/ref\/ReferenceQueue$Null'(no method) (0x00000008001bf578) [0.019s][info][class,init] 57 Initializing 'java\/lang\/ref\/NativeReferenceQueue'(no method) (0x0000000800049250) [0.019s][info][class,init] 58 Initializing 'java\/lang\/ref\/NativeReferenceQueue$Lock'(no method) (0x00000008001bedc0) [0.019s][info][class,init] 59 Initializing 'java\/lang\/System$2'(no method) (0x00000008000104e0) [0.019s][info][class,init] 60 Initializing 'jdk\/internal\/util\/SystemProps' (0x0000000800006988) [0.019s][info][class,init] 61 Initializing 'jdk\/internal\/util\/SystemProps$Raw'(no method) (0x00000008001c00d8) [0.027s][info][class,init] 62 Initializing 'java\/util\/HashMap'(no method) (0x00000008000abde0) [0.027s][info][class,init] 63 Initializing 'java\/lang\/Integer' (0x000000080003d6d0) [0.027s][info][class,init] 64 Initializing 'java\/util\/HashMap$Node'(no method) (0x00000008001c0a50) [0.028s][info][class,init] 65 Initializing 'java\/lang\/StringConcatHelper' (0x0000000800023190) [0.028s][info][class,init] 66 Initializing 'jdk\/internal\/misc\/Unsafe' (0x000000080000dde8) [0.028s][info][class,init] 67 Initializing 'java\/lang\/Byte' (0x000000080003a888) [0.028s][info][class,init] 68 Initializing 'java\/lang\/VersionProps' (0x0000000800006b98) [0.028s][info][class,init] 69 Initializing 'java\/lang\/Runtime' (0x000000080012d7c0) [0.028s][info][class,init] 70 Initializing 'jdk\/internal\/util\/Preconditions' (0x0000000800072f08) [0.028s][info][class,init] 71 Initializing 'java\/util\/function\/Function'(no method) (0x0000000800104360) [0.028s][info][class,init] 72 Initializing 'jdk\/internal\/util\/Preconditions$1'(no method) (0x00000008001c8a30) [0.028s][info][class,init] 73 Initializing 'java\/util\/function\/BiFunction'(no method) (0x0000000800159e68) [0.028s][info][class,init] 74 Initializing 'jdk\/internal\/util\/Preconditions$4'(no method) (0x00000008001c8578) [0.028s][info][class,init] 75 Initializing 'jdk\/internal\/util\/Preconditions$2'(no method) (0x00000008001c8e78) [0.028s][info][class,init] 76 Initializing 'jdk\/internal\/util\/Preconditions$3'(no method) (0x00000008001c92c0) [0.028s][info][class,init] 77 Initializing 'java\/util\/Arrays' (0x00000008000233b8) [0.028s][info][class,init] 78 Initializing 'java\/lang\/Character' (0x0000000800031c90) [0.028s][info][class,init] 79 Initializing 'java\/lang\/CharacterData'(no method) (0x0000000800036220) [0.028s][info][class,init] 80 Initializing 'java\/lang\/CharacterDataLatin1' (0x0000000800035ec0) [0.028s][info][class,init] 81 Initializing 'java\/util\/Dictionary'(no method) (0x00000008000072b8) [0.028s][info][class,init] 82 Initializing 'java\/util\/Hashtable'(no method) (0x00000008000074e8) [0.028s][info][class,init] 83 Initializing 'java\/util\/Properties' (0x0000000800006e68) [0.028s][info][class,init] 84 Initializing 'java\/util\/concurrent\/ConcurrentMap'(no method) (0x0000000800080cd8) [0.028s][info][class,init] 85 Initializing 'java\/util\/concurrent\/ConcurrentHashMap' (0x000000080007eb30) [0.028s][info][class,init] 86 Initializing 'java\/io\/ObjectStreamField'(no method) (0x000000080010cd20) [0.029s][info][class,init] 87 Initializing 'java\/util\/AbstractSet'(no method) (0x0000000800100a68) [0.029s][info][class,init] 88 Initializing 'java\/util\/HashMap$EntrySet'(no method) (0x00000008001c3548) [0.029s][info][class,init] 89 Initializing 'java\/util\/HashMap$HashIterator'(no method) (0x00000008001c56c0) [0.029s][info][class,init] 90 Initializing 'java\/util\/Iterator'(no method) (0x000000080000b1d8) [0.029s][info][class,init] 91 Initializing 'java\/util\/HashMap$EntryIterator'(no method) (0x00000008001c5488) [0.029s][info][class,init] 92 Initializing 'java\/util\/concurrent\/ConcurrentHashMap$Node'(no method) (0x000000080019e128) [0.029s][info][class,init] 93 Initializing 'java\/nio\/charset\/Charset' (0x000000080000a190) [0.029s][info][class,init] 94 Initializing 'java\/nio\/charset\/spi\/CharsetProvider'(no method) (0x00000008001d1260) [0.029s][info][class,init] 95 Initializing 'sun\/nio\/cs\/StandardCharsets' (0x00000008001d2088) [0.029s][info][class,init] 96 Initializing 'sun\/nio\/cs\/Unicode'(no method) (0x000000080000a3e0) [0.029s][info][class,init] 97 Initializing 'sun\/nio\/cs\/UTF_8' (0x0000000800009f20) [0.029s][info][class,init] 98 Initializing 'jdk\/internal\/util\/StaticProperty' (0x000000080000b858) [0.029s][info][class,init] 99 Initializing 'sun\/security\/action\/GetPropertyAction'(no method) (0x0000000800139ab8) [0.029s][info][class,init] 100 Initializing 'java\/io\/InputStream'(no method) (0x000000080000bda8) [0.029s][info][class,init] 101 Initializing 'java\/io\/FileInputStream' (0x000000080000bb00) [0.029s][info][class,init] 102 Initializing 'java\/io\/FileDescriptor' (0x000000080000c5b8) [0.029s][info][class,init] 103 Initializing 'java\/io\/FileDescriptor$1'(no method) (0x00000008001d4b88) [0.029s][info][class,init] 104 Initializing 'java\/io\/OutputStream'(no method) (0x0000000800004f20) [0.029s][info][class,init] 105 Initializing 'java\/io\/FileOutputStream' (0x000000080000c840) [0.029s][info][class,init] 106 Initializing 'java\/io\/FilterInputStream'(no method) (0x000000080000cfc0) [0.029s][info][class,init] 107 Initializing 'java\/io\/BufferedInputStream' (0x000000080000cd18) [0.029s][info][class,init] 108 Initializing 'jdk\/internal\/misc\/InternalLock' (0x000000080012ead0) [0.029s][info][class,init] 109 Initializing 'java\/util\/concurrent\/locks\/ReentrantLock'(no method) (0x00000008001a16c0) [0.029s][info][class,init] 110 Initializing 'java\/util\/concurrent\/locks\/AbstractOwnableSynchronizer'(no method) (0x000000080008bf20) [0.029s][info][class,init] 111 Initializing 'java\/util\/concurrent\/locks\/AbstractQueuedSynchronizer' (0x00000008001ce8c8) [0.029s][info][class,init] 112 Initializing 'java\/util\/concurrent\/locks\/ReentrantLock$Sync'(no method) (0x00000008001cf9f8) [0.029s][info][class,init] 113 Initializing 'java\/util\/concurrent\/locks\/ReentrantLock$NonfairSync'(no method) (0x00000008001ce690) [0.029s][info][class,init] 114 Initializing 'java\/io\/FilterOutputStream'(no method) (0x0000000800005188) [0.030s][info][class,init] 115 Initializing 'java\/io\/PrintStream' (0x0000000800004b78) [0.030s][info][class,init] 116 Initializing 'java\/io\/PrintStream$1'(no method) (0x00000008001d69c0) [0.030s][info][class,init] 117 Initializing 'java\/io\/BufferedOutputStream'(no method) (0x0000000800009aa0) [0.030s][info][class,init] 118 Initializing 'sun\/nio\/cs\/US_ASCII' (0x00000008000e1d68) [0.030s][info][class,init] 119 Initializing 'java\/io\/Writer'(no method) (0x00000008001509a0) [0.030s][info][class,init] 120 Initializing 'java\/io\/OutputStreamWriter'(no method) (0x0000000800152068) [0.030s][info][class,init] 121 Initializing 'sun\/nio\/cs\/StreamEncoder' (0x00000008001d77d8) [0.030s][info][class,init] 122 Initializing 'java\/nio\/charset\/CharsetEncoder' (0x00000008000e2840) [0.030s][info][class,init] 123 Initializing 'sun\/nio\/cs\/US_ASCII$Encoder' (0x00000008001d6d50) [0.030s][info][class,init] 124 Initializing 'java\/nio\/charset\/CodingErrorAction' (0x00000008000e23c8) [0.030s][info][class,init] 125 Initializing 'sun\/nio\/cs\/Surrogate$Parser' (0x00000008001d9360) [0.030s][info][class,init] 126 Initializing 'java\/nio\/charset\/CoderResult' (0x00000008000ea620) [0.030s][info][class,init] 127 Initializing 'java\/nio\/Buffer' (0x00000008000711b8) [0.030s][info][class,init] 128 Initializing 'jdk\/internal\/misc\/ScopedMemoryAccess' (0x000000080009a8d0) [0.030s][info][class,init] 129 Initializing 'java\/nio\/Buffer$1'(no method) (0x00000008001ae650) [0.030s][info][class,init] 130 Initializing 'java\/nio\/ByteBuffer' (0x00000008000e4100) [0.030s][info][class,init] 131 Initializing 'java\/nio\/HeapByteBuffer' (0x00000008001deb80) [0.030s][info][class,init] 132 Initializing 'java\/nio\/ByteOrder' (0x00000008001da348) [0.030s][info][class,init] 133 Initializing 'java\/io\/BufferedWriter'(no method) (0x00000008001506b0) [0.030s][info][class,init] 134 Initializing 'java\/lang\/Terminator' (0x000000080000d6f8) [0.030s][info][class,init] 135 Initializing 'java\/lang\/Terminator$1'(no method) (0x00000008001e1d08) [0.030s][info][class,init] 136 Initializing 'jdk\/internal\/misc\/Signal' (0x00000008000776e0) [0.031s][info][class,init] 137 Initializing 'java\/lang\/Integer$IntegerCache' (0x000000080003fef8) [0.031s][info][class,init] 138 Initializing 'java\/util\/Hashtable$Entry'(no method) (0x00000008001586b8) [0.031s][info][class,init] 139 Initializing 'jdk\/internal\/misc\/Signal$Handler' (0x00000008001e1f20) [0.031s][info][class,init] 140 Initializing 'jdk\/internal\/misc\/Signal$NativeHandler'(no method) (0x00000008001e2478) [0.031s][info][class,init] 141 Initializing 'jdk\/internal\/misc\/OSEnvironment'(no method) (0x00000008001b4ca8) [0.031s][info][class,init] 142 Initializing 'java\/lang\/Enum'(no method) (0x00000008000a9410) [0.031s][info][class,init] 143 Initializing 'java\/lang\/Thread$State' (0x0000000800142c60) [0.031s][info][class,init] 144 Initializing 'java\/lang\/ref\/Reference$ReferenceHandler'(no method) (0x000000080013d830) [0.031s][info][class,init] 145 Initializing 'java\/lang\/Thread$ThreadIdentifiers' (0x0000000800140590) [0.031s][info][class,init] 146 Initializing 'java\/lang\/ref\/Finalizer$FinalizerThread'(no method) (0x0000000800048ed8) [0.031s][info][class,init] 147 Initializing 'java\/lang\/ref\/PhantomReference'(no method) (0x0000000800048348) [0.031s][info][class,init] 148 Initializing 'jdk\/internal\/ref\/Cleaner' (0x000000080013d118) [0.031s][info][class,init] 149 Initializing 'java\/util\/concurrent\/locks\/AbstractQueuedSynchronizer$ConditionObject'(no method) (0x00000008001d0390) [0.031s][info][class,init] 150 Initializing 'java\/lang\/Throwable' (0x000000080002e058) [0.031s][info][class,init] 151 Initializing 'jdk\/internal\/misc\/Blocker' (0x00000008000e1620) [0.031s][info][class,init] 152 Initializing 'java\/util\/Collections' (0x00000008000b4088) [0.031s][info][class,init] 153 Initializing 'java\/util\/Collections$EmptySet'(no method) (0x00000008001f0b38) [0.031s][info][class,init] 154 Initializing 'java\/util\/AbstractList'(no method) (0x00000008000738c8) [0.031s][info][class,init] 155 Initializing 'java\/util\/Collections$EmptyList'(no method) (0x00000008001f15c0) [0.031s][info][class,init] 156 Initializing 'java\/util\/Collections$EmptyMap'(no method) (0x00000008001f23f8) [0.031s][info][class,init] 157 Initializing 'java\/lang\/Error'(no method) (0x000000080002fd20) [0.031s][info][class,init] 158 Initializing 'java\/lang\/VirtualMachineError'(no method) (0x0000000800089268) [0.031s][info][class,init] 159 Initializing 'java\/lang\/OutOfMemoryError'(no method) (0x000000080008a310) [0.031s][info][class,init] 160 Initializing 'java\/lang\/Exception'(no method) (0x0000000800084dd0) [0.031s][info][class,init] 161 Initializing 'java\/lang\/RuntimeException'(no method) (0x0000000800085308) [0.031s][info][class,init] 162 Initializing 'java\/lang\/NullPointerException'(no method) (0x0000000800088680) [0.032s][info][class,init] 163 Initializing 'java\/lang\/ClassCastException'(no method) (0x0000000800085d80) [0.032s][info][class,init] 164 Initializing 'java\/lang\/ArrayStoreException'(no method) (0x00000008000859b8) [0.032s][info][class,init] 165 Initializing 'java\/lang\/ArithmeticException'(no method) (0x0000000800084b80) [0.032s][info][class,init] 166 Initializing 'java\/lang\/StackOverflowError'(no method) (0x000000080008a8b8) [0.032s][info][class,init] 167 Initializing 'java\/lang\/IllegalMonitorStateException'(no method) (0x00000008000871f0) [0.032s][info][class,init] 168 Initializing 'java\/lang\/IllegalArgumentException'(no method) (0x0000000800086d30) [0.032s][info][class,init] 169 Initializing 'java\/lang\/invoke\/MethodHandle' (0x00000008000a9fa0) [0.032s][info][class,init] 170 Initializing 'java\/lang\/invoke\/MethodHandleStatics' (0x00000008000a9a70) [0.032s][info][class,init] 171 Initializing 'java\/lang\/Boolean' (0x0000000800030fb8) [0.032s][info][class,init] 172 Initializing 'java\/lang\/invoke\/ResolvedMethodName'(no method) (0x00000008000c82a8) [0.032s][info][class,init] 173 Initializing 'java\/lang\/invoke\/MemberName' (0x00000008000c4970) [0.033s][info][class,init] 174 Initializing 'java\/lang\/invoke\/MethodHandleNatives' (0x00000008000c85a0) [0.033s][info][class,init] 175 Initializing 'jdk\/internal\/module\/ModuleBootstrap' (0x000000080000db00) [0.033s][info][class,init] 176 Initializing 'java\/lang\/invoke\/MethodHandles' (0x00000008000b2900) [0.033s][info][class,init] 177 Initializing 'java\/lang\/invoke\/MemberName$Factory' (0x000000080016f250) [0.033s][info][class,init] 178 Initializing 'java\/lang\/invoke\/MethodHandles$Lookup' (0x00000008000b4318) [0.033s][info][class,init] 179 Initializing 'java\/lang\/StrictMath' (0x000000080008c300) [0.033s][info][class,init] 180 Initializing 'java\/util\/ImmutableCollections$MapN$1'(no method) (0x00000008001b6b80) [0.033s][info][class,init] 181 Initializing 'java\/util\/ImmutableCollections$MapN$MapNIterator'(no method) (0x00000008001b64e0) [0.033s][info][class,init] 182 Initializing 'java\/util\/KeyValueHolder'(no method) (0x000000080015eed8) [0.033s][info][class,init] 183 Initializing 'sun\/invoke\/util\/VerifyAccess' (0x0000000800171958) [0.033s][info][class,init] 184 Initializing 'java\/lang\/reflect\/Modifier'(no method) (0x0000000800111a58) [0.033s][info][class,init] 185 Initializing 'java\/lang\/module\/ModuleDescriptor' (0x0000000800116ca0) [0.033s][info][class,init] 186 Initializing 'java\/lang\/module\/ModuleDescriptor$1'(no method) (0x00000008001feed0) [0.033s][info][class,init] 187 Initializing 'java\/io\/File' (0x000000080006d560) [0.033s][info][class,init] 188 Initializing 'java\/io\/DefaultFileSystem'(no method) (0x000000080020a2f0) [0.034s][info][class,init] 189 Initializing 'java\/io\/FileSystem' (0x0000000800207978) [0.034s][info][class,init] 190 Initializing 'java\/io\/UnixFileSystem' (0x000000080020a598) [0.034s][info][class,init] 191 Initializing 'java\/lang\/AbstractStringBuilder' (0x00000008000572d8) [0.034s][info][class,init] 192 Initializing 'java\/lang\/StringBuilder'(no method) (0x000000080005c620) [0.034s][info][class,init] 193 Initializing 'jdk\/internal\/util\/ArraysSupport' (0x0000000800095a20) [0.034s][info][class,init] 194 Initializing 'jdk\/internal\/module\/ModulePatcher' (0x000000080019acf8) [0.034s][info][class,init] 195 Initializing 'java\/util\/HashSet' (0x0000000800100668) [0.034s][info][class,init] 196 Initializing 'jdk\/internal\/module\/ModuleBootstrap$Counters' (0x00000008001f37a8) [0.034s][info][class,init] 197 Initializing 'jdk\/internal\/module\/ArchivedBootLayer' (0x00000008001f4058) [0.034s][info][class,init] 198 Initializing 'java\/lang\/ModuleLayer' (0x0000000800135690) [0.034s][info][class,init] 199 Initializing 'java\/lang\/module\/Configuration' (0x0000000800160768) [0.034s][info][class,init] 200 Initializing 'jdk\/internal\/loader\/AbstractClassLoaderValue' (0x000000080024d958) [0.034s][info][class,init] 201 Initializing 'jdk\/internal\/loader\/ClassLoaderValue'(no method) (0x000000080024d720) [0.034s][info][class,init] 202 Initializing 'java\/util\/ImmutableCollections$List12'(no method) (0x000000080015aa10) [0.034s][info][class,init] 203 Initializing 'java\/lang\/module\/ResolvedModule'(no method) (0x0000000800161dd8) [0.034s][info][class,init] 204 Initializing 'java\/lang\/module\/ModuleReference'(no method) (0x00000008001627b0) [0.034s][info][class,init] 205 Initializing 'jdk\/internal\/module\/ModuleReferenceImpl'(no method) (0x00000008001f6ac8) [0.034s][info][class,init] 206 Initializing 'java\/lang\/module\/ModuleDescriptor$Version'(no method) (0x000000080015f618) [0.034s][info][class,init] 207 Initializing 'java\/util\/ArrayList' (0x00000008000dec90) [0.034s][info][class,init] 208 Initializing 'java\/lang\/module\/ModuleDescriptor$Requires' (0x0000000800200328) [0.034s][info][class,init] 209 Initializing 'java\/lang\/module\/ModuleDescriptor$Exports'(no method) (0x0000000800137fd8) [0.034s][info][class,init] 210 Initializing 'java\/lang\/module\/ModuleDescriptor$Provides'(no method) (0x00000008001ff900) [0.034s][info][class,init] 211 Initializing 'java\/net\/URI' (0x0000000800162e58) [0.034s][info][class,init] 212 Initializing 'java\/net\/URI$1'(no method) (0x00000008002164e0) [0.034s][info][class,init] 213 Initializing 'jdk\/internal\/module\/SystemModuleFinders$2'(no method) (0x00000008001f67d0) [0.034s][info][class,init] 214 Initializing 'jdk\/internal\/module\/SystemModuleFinders$3'(no method) (0x00000008001f70f0) [0.034s][info][class,init] 215 Initializing 'jdk\/internal\/module\/ModuleTarget'(no method) (0x00000008002114d8) [0.034s][info][class,init] 216 Initializing 'jdk\/internal\/module\/ModuleHashes'(no method) (0x00000008001f62c8) [0.034s][info][class,init] 217 Initializing 'java\/util\/Collections$UnmodifiableMap'(no method) (0x00000008001e68c8) [0.034s][info][class,init] 218 Initializing 'java\/lang\/module\/ModuleDescriptor$Opens'(no method) (0x0000000800137430) [0.034s][info][class,init] 219 Initializing 'java\/lang\/ClassLoader' (0x000000080000e418) [0.034s][info][class,init] 220 Initializing 'java\/security\/SecureClassLoader' (0x0000000800066f80) [0.034s][info][class,init] 221 Initializing 'java\/lang\/ClassLoader$ParallelLoaders' (0x00000008001265b8) [0.034s][info][class,init] 222 Initializing 'java\/util\/WeakHashMap' (0x0000000800122e68) [0.034s][info][class,init] 223 Initializing 'java\/util\/Collections$SetFromMap'(no method) (0x00000008001ee308) [0.034s][info][class,init] 224 Initializing 'java\/util\/WeakHashMap$KeySet'(no method) (0x0000000800221210) [0.034s][info][class,init] 225 Initializing 'java\/lang\/ref\/WeakReference'(no method) (0x0000000800047910) [0.035s][info][class,init] 226 Initializing 'java\/util\/WeakHashMap$Entry'(no method) (0x0000000800220818) [0.035s][info][class,init] 227 Initializing 'jdk\/internal\/loader\/BuiltinClassLoader' (0x00000008000816a0) [0.035s][info][class,init] 228 Initializing 'jdk\/internal\/loader\/ArchivedClassLoaders' (0x00000008000ddba8) [0.035s][info][class,init] 229 Initializing 'jdk\/internal\/loader\/ClassLoaders$BootClassLoader'(no method) (0x00000008000ddfd8) [0.035s][info][class,init] 230 Initializing 'java\/security\/ProtectionDomain' (0x0000000800065d08) [0.035s][info][class,init] 231 Initializing 'java\/security\/ProtectionDomain$JavaSecurityAccessImpl'(no method) (0x000000080013a1b8) [0.035s][info][class,init] 232 Initializing 'java\/security\/CodeSource'(no method) (0x0000000800064958) [0.035s][info][class,init] 233 Initializing 'java\/security\/Principal'(no method) (0x0000000800138e68) [0.035s][info][class,init] 234 Initializing 'java\/security\/ProtectionDomain$Key'(no method) (0x0000000800138b80) [0.035s][info][class,init] 235 Initializing 'jdk\/internal\/loader\/NativeLibraries' (0x000000080007dd78) [0.035s][info][class,init] 236 Initializing 'jdk\/internal\/loader\/ClassLoaderHelper' (0x0000000800080ec8) [0.035s][info][class,init] 237 Initializing 'java\/util\/concurrent\/ConcurrentHashMap$CollectionView'(no method) (0x0000000800157490) [0.035s][info][class,init] 238 Initializing 'java\/util\/concurrent\/ConcurrentHashMap$KeySetView'(no method) (0x00000008001570c0) [0.035s][info][class,init] 239 Initializing 'jdk\/internal\/loader\/ClassLoaders$PlatformClassLoader' (0x00000008000846a0) [0.035s][info][class,init] 240 Initializing 'jdk\/internal\/module\/ServicesCatalog' (0x0000000800112fe8) [0.035s][info][class,init] 241 Initializing 'java\/util\/concurrent\/CopyOnWriteArrayList'(no method) (0x000000080024a7c0) [0.035s][info][class,init] 242 Initializing 'jdk\/internal\/module\/ServicesCatalog$ServiceProvider'(no method) (0x000000080024d038) [0.035s][info][class,init] 243 Initializing 'jdk\/internal\/loader\/BuiltinClassLoader$LoadedModule'(no method) (0x0000000800198438) [0.035s][info][class,init] 244 Initializing 'jdk\/internal\/loader\/ClassLoaders$AppClassLoader' (0x0000000800083e30) [0.035s][info][class,init] 245 Initializing 'jdk\/internal\/loader\/BootLoader' (0x00000008001126a0) [0.035s][info][class,init] 246 Initializing 'jdk\/internal\/loader\/ClassLoaders' (0x00000008000dd4c0) [0.035s][info][class,init] 247 Initializing 'jdk\/internal\/loader\/URLClassPath' (0x00000008000de360) [0.035s][info][class,init] 248 Initializing 'java\/net\/URL' (0x0000000800067848) [0.035s][info][class,init] 249 Initializing 'java\/net\/URL$DefaultFactory' (0x000000080018d4a8) [0.035s][info][class,init] 250 Initializing 'java\/net\/URL$3'(no method) (0x000000080018da88) [0.035s][info][class,init] 251 Initializing 'java\/io\/File$PathStatus' (0x00000008002089b8) [0.035s][info][class,init] 252 Initializing 'sun\/net\/www\/ParseUtil' (0x00000008000785d8) [0.035s][info][class,init] 253 Initializing 'java\/util\/HexFormat' (0x0000000800079520) [0.036s][info][class,init] 254 Initializing 'java\/net\/URLStreamHandler'(no method) (0x000000080018c1c0) [0.036s][info][class,init] 255 Initializing 'sun\/net\/www\/protocol\/file\/Handler'(no method) (0x0000000800228420) [0.036s][info][class,init] 256 Initializing 'sun\/net\/util\/IPAddressUtil' (0x000000080018a918) [0.036s][info][class,init] 257 Initializing 'java\/util\/ArrayDeque'(no method) (0x0000000800221a40) [0.036s][info][class,init] 258 Initializing 'java\/lang\/invoke\/MethodType' (0x00000008000ab1e8) [0.036s][info][class,init] 259 Initializing 'java\/lang\/invoke\/MethodType$ConcurrentWeakInternSet'(no method) (0x0000000800182500) [0.036s][info][class,init] 260 Initializing 'java\/lang\/Void' (0x00000008000ae890) [0.036s][info][class,init] 261 Initializing 'java\/lang\/Long' (0x0000000800040480) [0.036s][info][class,init] 262 Initializing 'java\/lang\/invoke\/MethodTypeForm' (0x00000008000b08e0) [0.036s][info][class,init] 263 Initializing 'java\/lang\/invoke\/MethodType$ConcurrentWeakInternSet$WeakEntry'(no method) (0x0000000800182b58) [0.036s][info][class,init] 264 Initializing 'java\/lang\/invoke\/DirectMethodHandle' (0x00000008000be6f8) [0.037s][info][class,init] 265 Initializing 'sun\/invoke\/util\/Wrapper' (0x000000080011faa0) [0.037s][info][class,init] 266 Initializing 'sun\/invoke\/util\/Wrapper$Format' (0x0000000800121148) [0.037s][info][class,init] 267 Initializing 'java\/lang\/Short' (0x000000080003bf68) [0.037s][info][class,init] 268 Initializing 'java\/lang\/invoke\/DirectMethodHandle$Holder'(no method) (0x00000008000d5088) [0.037s][info][class,init] 269 Initializing 'java\/lang\/invoke\/LambdaMetafactory' (0x0000000800101360) [0.037s][info][class,init] 270 Initializing 'java\/lang\/invoke\/LambdaForm$Kind' (0x00000008000b2188) [0.037s][info][class,init] 271 Initializing 'java\/lang\/invoke\/LambdaForm' (0x00000008000af8f0) [0.037s][info][class,init] 272 Initializing 'java\/lang\/invoke\/LambdaForm$BasicType' (0x00000008000acf88) [0.037s][info][class,init] 273 Initializing 'java\/lang\/reflect\/Array'(no method) (0x0000000800055378) [0.037s][info][class,init] 274 Initializing 'java\/lang\/invoke\/LambdaForm$Name' (0x00000008000b0d30) [0.038s][info][class,init] 275 Initializing 'java\/lang\/invoke\/LambdaForm$Holder'(no method) (0x00000008000d9888) [0.038s][info][class,init] 276 Initializing 'java\/lang\/invoke\/LambdaForm$NamedFunction' (0x00000008000b1268) [0.038s][info][class,init] 277 Initializing 'java\/lang\/invoke\/InvokerBytecodeGenerator' (0x0000000800172d00) [0.038s][info][class,init] 278 Initializing 'java\/lang\/invoke\/InvokerBytecodeGenerator$2' (0x0000000800236640) [0.038s][info][class,init] 279 Initializing 'java\/lang\/invoke\/MethodHandleImpl$Intrinsic' (0x00000008000b1cd8) [0.038s][info][class,init] 280 Initializing 'java\/lang\/ref\/SoftReference'(no method) (0x00000008000472a8) [0.038s][info][class,init] 281 Initializing 'java\/lang\/invoke\/CallSite' (0x00000008000bce48) [0.038s][info][class,init] 282 Initializing 'java\/lang\/invoke\/BootstrapMethodInvoker' (0x0000000800182ff0) [0.038s][info][class,init] 283 Initializing 'java\/lang\/invoke\/Invokers' (0x00000008000c9948) [0.038s][info][class,init] 284 Initializing 'java\/lang\/invoke\/VarHandle$AccessMode' (0x0000000800178908) [0.039s][info][class,init] 285 Initializing 'java\/lang\/invoke\/VarHandle$AccessType' (0x00000008001795e8) [0.039s][info][class,init] 286 Initializing 'java\/lang\/invoke\/Invokers$Holder'(no method) (0x00000008000d3b78) [0.039s][info][class,init] 287 Initializing 'java\/lang\/invoke\/MethodHandleImpl' (0x00000008000a69e8) [0.039s][info][class,init] 288 Initializing 'java\/lang\/invoke\/MethodHandleImpl$1'(no method) (0x00000008000b4658) [0.039s][info][class,init] 289 Initializing 'java\/lang\/invoke\/AbstractValidatingLambdaMetafactory'(no method) (0x000000080022cf08) [0.039s][info][class,init] 290 Initializing 'java\/lang\/invoke\/InnerClassLambdaMetafactory' (0x000000080022ccf8) [0.039s][info][class,init] 291 Initializing 'jdk\/internal\/org\/objectweb\/asm\/Type' (0x0000000800205a48) [0.039s][info][class,init] 292 Initializing 'java\/util\/concurrent\/atomic\/AtomicInteger' (0x0000000800185f28) [0.039s][info][class,init] 293 Initializing 'sun\/security\/action\/GetBooleanAction'(no method) (0x000000080023cb58) [0.039s][info][class,init] 294 Initializing 'jdk\/internal\/org\/objectweb\/asm\/Handle'(no method) (0x000000080023d0c8) [0.039s][info][class,init] 295 Initializing 'sun\/invoke\/util\/BytecodeDescriptor'(no method) (0x0000000800181538) [0.039s][info][class,init] 296 Initializing 'jdk\/internal\/org\/objectweb\/asm\/ConstantDynamic'(no method) (0x000000080023d900) [0.040s][info][class,init] 297 Initializing 'java\/lang\/invoke\/MethodHandleInfo'(no method) (0x00000008001780e0) [0.040s][info][class,init] 298 Initializing 'java\/lang\/invoke\/InfoFromMemberName' (0x0000000800206b30) [0.040s][info][class,init] 299 Initializing 'jdk\/internal\/org\/objectweb\/asm\/ClassVisitor'(no method) (0x0000000800166538) [0.040s][info][class,init] 300 Initializing 'jdk\/internal\/org\/objectweb\/asm\/ClassWriter'(no method) (0x0000000800166230) [0.040s][info][class,init] 301 Initializing 'jdk\/internal\/org\/objectweb\/asm\/SymbolTable'(no method) (0x000000080023e240) [0.040s][info][class,init] 302 Initializing 'jdk\/internal\/org\/objectweb\/asm\/ByteVector'(no method) (0x000000080023feb0) [0.040s][info][class,init] 303 Initializing 'java\/lang\/invoke\/LambdaProxyClassArchive'(no method) (0x000000080023afe8) [0.040s][info][class,init] 304 Initializing 'java\/util\/function\/Consumer'(no method) (0x00000008001001a8) [0.040s][info][class,init] 305 Initializing 'java\/util\/ArrayDeque$$Lambda$1+0x800000001'(no method) (0x0000000800249d30) [0.040s][info][class,init] 306 Initializing 'java\/lang\/invoke\/DirectMethodHandle$Constructor' (0x0000000800171178) [0.040s][info][class,init] 307 Initializing 'java\/lang\/invoke\/ConstantCallSite' (0x00000008000be0b0) [0.040s][info][class,init] 308 Initializing 'sun\/invoke\/util\/VerifyType'(no method) (0x00000008000aeaa0) [0.040s][info][class,init] 309 Initializing 'java\/lang\/invoke\/MethodHandleNatives$CallSiteContext'(no method) (0x00000008000cb150) [0.040s][info][class,init] 310 Initializing 'jdk\/internal\/ref\/CleanerFactory' (0x00000008001856a0) [0.040s][info][class,init] 311 Initializing 'jdk\/internal\/ref\/CleanerFactory$1'(no method) (0x00000008001859a0) [0.040s][info][class,init] 312 Initializing 'java\/lang\/ref\/Cleaner' (0x0000000800184208) [0.040s][info][class,init] 313 Initializing 'java\/lang\/ref\/Cleaner$1'(no method) (0x00000008001851d8) [0.040s][info][class,init] 314 Initializing 'jdk\/internal\/ref\/CleanerImpl' (0x00000008001845e8) [0.040s][info][class,init] 315 Initializing 'jdk\/internal\/ref\/PhantomCleanable'(no method) (0x0000000800184af8) [0.040s][info][class,init] 316 Initializing 'jdk\/internal\/ref\/CleanerImpl$PhantomCleanableRef'(no method) (0x0000000800184888) [0.040s][info][class,init] 317 Initializing 'jdk\/internal\/ref\/CleanerImpl$CleanerCleanable'(no method) (0x000000080024a400) [0.040s][info][class,init] 318 Initializing 'jdk\/internal\/misc\/InnocuousThread' (0x000000080014d9d0) [0.041s][info][class,init] 319 Initializing 'java\/util\/concurrent\/TimeUnit' (0x000000080013f2e8) [0.041s][info][class,init] 320 Initializing 'java\/util\/concurrent\/locks\/AbstractQueuedSynchronizer$Node' (0x00000008001d5400) [0.041s][info][class,init] 321 Initializing 'java\/util\/concurrent\/locks\/AbstractQueuedSynchronizer$ConditionNode'(no method) (0x00000008001d5b38) [0.041s][info][class,init] 322 Initializing 'java\/util\/concurrent\/locks\/LockSupport' (0x00000008001a89d8) [0.041s][info][class,init] 323 Initializing 'java\/lang\/invoke\/StringConcatFactory' (0x000000080000e0e8) [0.041s][info][class,init] 324 Initializing 'java\/lang\/invoke\/StringConcatFactory$1'(no method) (0x0000000800252790) [0.041s][info][class,init] 325 Initializing 'java\/lang\/invoke\/StringConcatFactory$2'(no method) (0x0000000800252cd0) [0.041s][info][class,init] 326 Initializing 'java\/lang\/invoke\/StringConcatFactory$3'(no method) (0x00000008002531a8) [0.042s][info][class,init] 327 Initializing 'java\/nio\/CharBuffer' (0x00000008000e7330) [0.042s][info][class,init] 328 Initializing 'java\/nio\/HeapCharBuffer' (0x0000000800278290) [0.042s][info][class,init] 329 Initializing 'java\/lang\/StringCoding'(no method) (0x000000080008f4c0) [0.042s][info][class,init] 330 Initializing 'java\/lang\/Shutdown' (0x00000008000457e0) [0.042s][info][class,init] 331 Initializing 'java\/lang\/Shutdown$Lock'(no method) (0x00000008002575c8)<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043c\u0435\u0442\u043e\u0434 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 65 (!) \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u0435\u0442 \u0441 0,038 \u0434\u043e 0,042 \u0441\u0435\u043a\u0443\u043d\u0434 (Intel\u00a0Core\u00a0i7, LPDDR4X, SSD).<\/p>\n<p>\u042d\u0442\u043e \u043d\u0435\u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043a\u043e\u0434\u0435 \u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043e \u0432\u0440\u0435\u0434\u0435 \u0432\u0440\u043e\u0434\u0435 \u0431\u044b \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0438 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f. \u0412\u044b\u0438\u0433\u0440\u044b\u0448 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u0438 \u0441\u043e\u0442\u0435\u043d \u043d\u0430\u043d\u043e\u0441\u0435\u043a\u0443\u043d\u0434 \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u043c\u0438 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u043c\u0438 \u0440\u0430\u0441\u0445\u043e\u0434\u0430\u043c\u0438, \u0447\u0442\u043e \u0438\u0433\u0440\u0430 \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0441\u0432\u0435\u0447.<\/p>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432 \u043a\u043e\u0434\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 <code>BuiltinClassLoader.findClassOnClassPathOrNull()<\/code> \u0438 <code>BuiltinClassLoader.moduleReaderFor()<\/code> (<a href=\"https:\/\/github.com\/openjdk\/jdk\/blob\/master\/src\/java.base\/share\/classes\/jdk\/internal\/loader\/BuiltinClassLoader.java#L767\" rel=\"noopener noreferrer nofollow\">\u0441\u0441\u044b\u043b\u044c1<\/a> \u0438 <a href=\"https:\/\/github.com\/openjdk\/jdk\/blob\/87340fd5408d89d9343541ff4fcabde83548a598\/src\/java.base\/share\/classes\/jdk\/internal\/loader\/BuiltinClassLoader.java#L1019\" rel=\"noopener noreferrer nofollow\">\u0441\u0441\u044b\u043b\u044c2<\/a>).<\/p>\n<p>\u0412\u044b\u0432\u043e\u0434 \u0438\u0437 \u044d\u0442\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0441\u043e\u0437\u0432\u0443\u0447\u0435\u043d \u0441\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u043c \u043c\u043d\u043e\u0439 \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u043e\u0432\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f (\u0440\u0430\u0437\u0434\u0435\u043b &#171;\u041d\u044e\u0430\u043d\u0441\u044b \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f&#187;): \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0445 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u0435\u043d <strong>\u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442<\/strong>.<\/p>\n<h3>\u0421\u043a\u043b\u0435\u0438\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a<\/h3>\n<p>\u041e\u0434\u043d\u0430\u0436\u0434\u044b \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u044f \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u043b\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u044c <code>Class.getResource()<\/code> \u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u0432 \u043d\u0451\u043c \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a <code>Class.resolveName()<\/code> \u0441 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c:<\/p>\n<pre><code class=\"java\">private String resolveName(String name) {   if (!name.startsWith(\"\/\")) {     String baseName = getPackageName();     if (!baseName.isEmpty()) {       int len = baseName.length() + 1 + name.length();       StringBuilder sb = new StringBuilder(len);       name = sb.append(baseName.replace('.', '\/'))           .append('\/')           .append(name)           .toString();     }   } else {     name = name.substring(1);   }   return name; }<\/code><\/pre>\n<p>\u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u044f \u043d\u0435 \u043c\u043e\u0433 \u043f\u0440\u043e\u0439\u0442\u0438 \u043c\u0438\u043c\u043e \u0442\u0430\u043a\u043e\u0439 \u0432\u043a\u0443\u0441\u043d\u044f\u0448\u043a\u0438 \ud83d\ude42<\/p>\n<p>\u041d\u0443 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e, 2022 \u0433\u043e\u0434 \u043d\u0430 \u0434\u0432\u043e\u0440\u0435, \u0430 \u0442\u0443\u0442 \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u0434\u043b\u044f \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u0442\u0440\u0451\u0445 \u0441\u0442\u0440\u043e\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <code>StringBuilder<\/code>, \u043d\u0435\u043f\u043e\u0440\u044f\u0434\u043e\u043a. <em>\u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e <\/em>\u0436\u0435, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043e\u0440\u043e\u0447\u0435 \u0438 \u043b\u0443\u0447\u0448\u0435:<\/p>\n<pre><code class=\"java\">private String resolveName(String name) {   if (!name.startsWith(\"\/\")) {     String baseName = getPackageName();     if (!baseName.isEmpty()) {       name = baseName.replace('.', '\/') + '\/' + name;     }   } else {     name = name.substring(1);   }   return name; }<\/code><\/pre>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043a\u043e\u0434 \u0431\u044b\u043b \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d \u0432\u0441\u0442\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441 \u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u0438 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0438\u0437\u0432\u043d\u0435 <code>j.l.Class<\/code> \u043d\u0435\u043b\u044c\u0437\u044f (\u0434\u0430\u0436\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u0438 \u2014 \u0433\u0430\u0439\u043a\u0438 \u0442\u0430\u043c \u0437\u0430\u043a\u0440\u0443\u0447\u0435\u043d\u044b \u0442\u0443\u0433\u043e), \u044f \u0440\u0435\u0448\u0438\u043b \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u0438\u0437\u044f\u0449\u043d\u044b\u043c (\u043a\u0430\u043a \u043c\u043d\u0435 \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c) \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c:<\/p>\n<pre><code class=\"java\">@State(Scope.Thread) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @Fork(jvmArgsAppend = {\"-Xms2g\", \"-Xmx2g\"}) public class ResolveNameBenchmark {    private final Class&lt;? extends ResolveNameBenchmark> klazz = getClass();    @Benchmark   public Object original() {     return original(\"com\/tsypanov\/ovn\/ResolveNameBenchmark.class\");   }    @Benchmark   public Object patched() {     return patched(\"com\/tsypanov\/ovn\/ResolveNameBenchmark.class\");   }    private String original(String name) {     if (!name.startsWith(\"\/\")) {       String baseName = getPackageName();       if (!baseName.isEmpty()) {         int len = baseName.length() + 1 + name.length();         StringBuilder sb = new StringBuilder(len);         name = sb.append(baseName.replace('.', '\/'))                 .append('\/')                 .append(name)                 .toString();       }     } else {       name = name.substring(1);     }     return name;   }    private String patched(String name) {     if (!name.startsWith(\"\/\")) {       String baseName = getPackageName();       if (!baseName.isEmpty()) {         return baseName.replace('.', '\/') + '\/' + name;       }       return name;     }     return name.substring(1);   }    private String getPackageName() {     return klazz.getPackageName();   } }<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432\u0441\u0451 \u043b\u043e\u0433\u0438\u0447\u043d\u043e: \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u043d\u043e \u043c\u043e\u0436\u0435\u043c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0435\u0433\u043e, \u0432\u044b\u0437\u044b\u0432\u0430\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u0438\u0437\u0432\u043d\u0435 <code>getPackageName()<\/code>. \u041f\u0440\u043e\u0433\u043e\u043d \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u043e\u0449\u0443\u0442\u0438\u043c\u044b\u0439 \u043f\u0440\u0438\u0440\u043e\u0441\u0442 \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438:<\/p>\n<pre><code>                                            Mode  Cnt     Score     Error   Units  original                                    avgt   50    57.974 \u00b1   0.365   ns\/op original:\u00b7gc.alloc.rate                     avgt   50  3419.447 \u00b1  21.154  MB\/sec original:\u00b7gc.alloc.rate.norm                avgt   50   312.006 \u00b1   0.001    B\/op original:\u00b7gc.churn.G1_Eden_Space            avgt   50  3399.396 \u00b1 149.836  MB\/sec original:\u00b7gc.churn.G1_Eden_Space.norm       avgt   50   310.198 \u00b1  13.628    B\/op original:\u00b7gc.churn.G1_Survivor_Space        avgt   50     0.004 \u00b1   0.001  MB\/sec original:\u00b7gc.churn.G1_Survivor_Space.norm   avgt   50    \u2248 10\u207b\u00b3              B\/op original:\u00b7gc.count                          avgt   50   208.000            counts original:\u00b7gc.time                           avgt   50   224.000                ms  patched                                     avgt   50    44.367 \u00b1   0.162   ns\/op patched:\u00b7gc.alloc.rate                      avgt   50  2749.265 \u00b1  10.014  MB\/sec patched:\u00b7gc.alloc.rate.norm                 avgt   50   192.004 \u00b1   0.001    B\/op patched:\u00b7gc.churn.G1_Eden_Space             avgt   50  2729.221 \u00b1 193.552  MB\/sec patched:\u00b7gc.churn.G1_Eden_Space.norm        avgt   50   190.615 \u00b1  13.539    B\/op patched:\u00b7gc.churn.G1_Survivor_Space         avgt   50     0.003 \u00b1   0.001  MB\/sec patched:\u00b7gc.churn.G1_Survivor_Space.norm    avgt   50    \u2248 10\u207b\u2074              B\/op patched:\u00b7gc.count                           avgt   50   167.000            counts patched:\u00b7gc.time                            avgt   50   181.000                ms<\/code><\/pre>\n<p>\u0421\u0440\u0430\u0437\u0443 \u0436\u0435 \u0431\u044b\u043b \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d <a href=\"https:\/\/github.com\/openjdk\/jdk\/pull\/3464\" rel=\"noopener noreferrer nofollow\">\u041f\u0420<\/a>, \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0432\u043a\u0440\u0430\u0434\u0447\u0438\u0432\u043e <a href=\"https:\/\/github.com\/openjdk\/jdk\/pull\/3464#issuecomment-818827786\" rel=\"noopener noreferrer nofollow\">\u0441\u043f\u0440\u043e\u0441\u0438\u043b\u0438<\/a> &#171;\u0430 \u0442\u0430\u043c \u0442\u043e\u0447\u043d\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u0440\u043e\u0441\u0442?&#187; \u041f\u0440\u043e\u0438\u0437\u043e\u0448\u0451\u043b \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440:<\/p>\n<blockquote>\n<p>&#8212; \u0412\u043e\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0434\u0430\u044e\u0449\u0438\u0439 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442!<\/p>\n<p>&#8212; \u0410 \u043e\u043d \u0442\u0430\u043c \u0442\u043e\u0447\u043d\u043e \u0435\u0441\u0442\u044c?<\/p>\n<p>&#8212; \u041d\u0443 \u0434\u0430, \u044f \u0432\u043e\u0442 \u0438 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043b!<\/p>\n<p>&#8212; \u041e\u043d \u043c\u0435\u0440\u044f\u0435\u0442 \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e.<\/p>\n<p>&#8212; \u041a\u043e\u0434-\u0442\u043e \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435. \u0420\u0430\u0437\u0432\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043d\u0438\u0446\u0430?<\/p>\n<p>&#8212; \u0410 \u0442\u044b \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0432\u0435\u0440\u044c \u0438 \u0443\u0437\u043d\u0430\u0435\u0448\u044c ?.<\/p>\n<\/blockquote>\n<p>\u0412\u0432\u0438\u0434\u0443 \u0437\u0430\u0440\u043e\u0434\u0438\u0432\u0448\u0438\u0445\u0441\u044f \u0441\u043e\u043c\u043d\u0435\u043d\u0438\u0439 \u0432\u0441\u0442\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441: \u0430 \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u0438 \u0438 \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0439 JDK \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0434\u0430\u0451\u0442 \u0434\u043e\u0441\u0442\u0443\u0447\u0430\u0442\u044c\u0441\u044f?<\/p>\n<p>\u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u044f \u0441\u0434\u0435\u043b\u0430\u043b, \u2014 \u043e\u0431\u044a\u044f\u0432\u0438\u043b \u043c\u0435\u0442\u043e\u0434 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u043c \u0438 \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0440\u0430\u043b JDK. \u041d\u0435 \u0442\u0443\u0442 \u0442\u043e \u0431\u044b\u043b\u043e! \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0440\u0443\u0433\u0430\u043b\u0441\u044f, \u043c\u043e\u043b, &#8216;resolveName&#8217; has private access in &#8216;java.lang.Class&#8217; (\u0445\u043e\u0442\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 &#171;\u0418\u0434\u0435\u0438&#187; \u043a\u043b\u044f\u043b\u0441\u044f, \u0447\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0435\u0442). \u0412\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u0430\u043a\u0436\u0435 \u043e\u0434\u0438\u043d \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c <code>*.sym.txt<\/code>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u0441\u0442\u0430\u0432\u0448\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c\u0438 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 JDK. \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435  \u044d\u0442\u043e \u0431\u044b\u043b <code>jdk\/src\/jdk.compiler\/share\/data\/symbols\/java.base-H.sym.txt<\/code> (\u0437\u0434\u0435\u0441\u044c <code>jdk\/<\/code> \u2014 \u043a\u043e\u0440\u043d\u0435\u0432\u0430\u044f \u043f\u0430\u043f\u043a\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432):<\/p>\n<pre><code>class name java\/lang\/Class -method name isSealed descriptor ()Z -method name getPermittedSubclasses descriptor ()[Ljava\/lang\/Class; method name getPermittedSubclasses descriptor ()[Ljava\/lang\/Class; flags 1 signature ()[Ljava\/lang\/Class&lt;*>; runtimeAnnotations @Ljdk\/internal\/reflect\/CallerSensitive; method name isSealed descriptor ()Z flags 1<\/code><\/pre>\n<p>\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u043b\u0435 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u0441 <code>-method name getPermittedSubclasses<\/code>  \u044f \u0434\u043e\u043f\u0438\u0441\u0430\u043b<\/p>\n<pre><code>-method name resolveName descriptor (Ljava\/lang\/String)Ljava\/lang\/String; flags 1<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"java\">@State(Scope.Thread) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @Fork(jvmArgsAppend = {\"-Xms2g\", \"-Xmx2g\"}) public class GetResourceBenchmark {   private final Class&lt;?> klazz = getClass();    @Benchmark   public String resolveName() {     return klazz.resolveName(\"com\/tsypanov\/ovn\/GetResourceBenchmark.class\");   } }<\/code><\/pre>\n<p>\u0418 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f (<code>StringBuilder<\/code> -> <code>+<\/code>) \u043d\u0435 \u0443\u043b\u0443\u0447\u0448\u0430\u044e\u0442, \u0430 <strong>\u0443\u0445\u0443\u0434\u0448\u0430\u044e\u0442<\/strong> \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c:<\/p>\n<pre><code>\u0434\u043e                                               Mode  Cnt     Score     Error   Units resolveName                                   avgt   50    51,487 \u00b1   3,357   ns\/op resolveName:\u00b7gc.alloc.rate                    avgt   50  4680,362 \u00b1 241,137  MB\/sec resolveName:\u00b7gc.alloc.rate.norm               avgt   50   312,006 \u00b1   0,001    B\/op resolveName:\u00b7gc.churn.G1_Eden_Space           avgt   50  4698,863 \u00b1 258,117  MB\/sec resolveName:\u00b7gc.churn.G1_Eden_Space.norm      avgt   50   313,425 \u00b1   7,379    B\/op resolveName:\u00b7gc.churn.G1_Survivor_Space       avgt   50     0,004 \u00b1   0,001  MB\/sec resolveName:\u00b7gc.churn.G1_Survivor_Space.norm  avgt   50    \u2248 10\u207b\u2074              B\/op resolveName:\u00b7gc.count                         avgt   50   480,000            counts resolveName:\u00b7gc.time                          avgt   50   757,000                ms  \u043f\u043e\u0441\u043b\u0435                                               Mode  Cnt     Score     Error   Units resolveName                                   avgt   50    72,647 \u00b1   3,354   ns\/op resolveName:\u00b7gc.alloc.rate                    avgt   50  4228,087 \u00b1 178,777  MB\/sec resolveName:\u00b7gc.alloc.rate.norm               avgt   50   400,008 \u00b1   0,001    B\/op resolveName:\u00b7gc.churn.G1_Eden_Space           avgt   50  4217,788 \u00b1 200,576  MB\/sec resolveName:\u00b7gc.churn.G1_Eden_Space.norm      avgt   50   399,001 \u00b1   8,514    B\/op resolveName:\u00b7gc.churn.G1_Survivor_Space       avgt   50     0,003 \u00b1   0,001  MB\/sec resolveName:\u00b7gc.churn.G1_Survivor_Space.norm  avgt   50    \u2248 10\u207b\u00b3              B\/op resolveName:\u00b7gc.count                         avgt   50   431,000            counts resolveName:\u00b7gc.time                          avgt   50   678,000                ms<\/code><\/pre>\n<p>\u0418 \u0434\u0430, \u0435\u0441\u043b\u0438 \u0431\u044b \u044f \u043d\u0435 \u0443\u043c\u043d\u0438\u0447\u0430\u043b, \u0430 \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u043c\u0435\u0442\u043e\u0434\u0430 <code>resolveName()<\/code>, \u0442\u043e \u0443\u0432\u0438\u0434\u0435\u043b \u0431\u044b <a href=\"https:\/\/github.com\/openjdk\/jdk\/pull\/2212\" rel=\"noopener noreferrer nofollow\">\u0442\u0430\u043c<\/a> \u044d\u0442\u043e:<\/p>\n<details class=\"spoiler\">\n<summary>\u0412\u043d\u0435\u0437\u0430\u043f\u043d\u043e<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2f9\/1ed\/082\/2f91ed0825e9422205c128fe70ed0b60.png\" width=\"1394\" height=\"460\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2f9\/1ed\/082\/2f91ed0825e9422205c128fe70ed0b60.png\"\/><figcaption><\/figcaption><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/3ae\/280\/39b\/3ae28039b5b8bd510070838a2d932bae.jpeg\" width=\"895\" height=\"503\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3ae\/280\/39b\/3ae28039b5b8bd510070838a2d932bae.jpeg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041e\u0431\u044b\u0447\u043d\u043e \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445 \u043e\u0440\u0430\u043a\u043b\u043e\u0438\u0434\u044b \u0441\u043c\u043e\u0442\u0440\u044f\u0442 \u043d\u0430 \u0442\u0435\u0431\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<details class=\"spoiler\">\n<summary>?<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/152\/1c6\/b4c\/1521c6b4cf7584a602321be2c213f8a3.jpeg\" width=\"700\" height=\"388\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/152\/1c6\/b4c\/1521c6b4cf7584a602321be2c213f8a3.jpeg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u043a\u043e\u0434 (\u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0438\u0437 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438) \u0432\u0435\u0434\u0451\u0442 \u0441\u0435\u0431\u044f \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443 \u0432\u043d\u0443\u0442\u0440\u0438 JDK \u0438 \u0437\u0430 \u0435\u0433\u043e \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438. \u041d\u043e \u0434\u0430\u0436\u0435 \u043d\u0435 \u044d\u0442\u043e \u0443\u0434\u0438\u0432\u0438\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e. \u0412 \u0432\u044b\u0441\u0448\u0435\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a \u0447\u0435\u0440\u0435\u0437 &#171;+&#187; \u0432 JDK \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 <strong>\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435<\/strong>, \u0447\u0435\u043c \u0437\u0430 \u0435\u0433\u043e \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438.<\/p>\n<p>\u042d\u0442\u043e \u0432\u0434\u0432\u043e\u0439\u043d\u0435 \u0441\u0442\u0440\u0430\u043d\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0442\u0430\u043c \u0432\u043d\u0443\u0442\u0440\u0438 \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0433\u043e &#171;\u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u0435\u0439&#187;, \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0441\u043c\u0435\u0440\u0442\u043d\u044b\u043c:<\/p>\n<ul>\n<li>\n<p><code>Unsafe.allocateUninitializedArray(Class, int)<\/code><\/p>\n<\/li>\n<li>\n<p><code>Class.getInterfaces(boolean)<\/code><\/p>\n<\/li>\n<li>\n<p><code>StringLatin1.getChar(int)<\/code><\/p>\n<\/li>\n<li>\n<p><code>String.newStringNoRepl(byte[], Charset)<\/code><\/p>\n<\/li>\n<li>\n<p><code>@Stable<\/code><\/p>\n<\/li>\n<\/ul>\n<p><code>Unsafe.allocateUninitializedArray<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u043c\u0438\u043d\u0443\u044f <a href=\"https:\/\/docs.oracle.com\/javase\/specs\/jls\/se7\/html\/jls-10.html#jls-10.6\" rel=\"noopener noreferrer nofollow\">\u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0435 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0435\u0439<\/a> \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u0430\u043d\u0443\u043b\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0435\u0433\u043e \u044f\u0447\u0435\u0435\u043a, \u0447\u0442\u043e \u0434\u0430\u0451\u0442 \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u043f\u0440\u0438 \u043f\u043e\u043b\u043d\u043e\u043c \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0441\u0432\u0435\u0436\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.<\/p>\n<p><code>Class.getInterfaces(false)<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0431\u0435\u0437 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438, <code>StringLatin1.getChar(int)<\/code> \u0432\u043c\u0435\u0441\u0442\u043e <code>String.charAt(int)<\/code> \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0432\u044b\u0445\u043e\u0434\u0430 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0441\u0442\u0440\u043e\u043a\u0438, \u0430 <code>String.newStringNoRepl(byte[], Charset)<\/code> \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0431\u0435\u0437 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0447\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u0435\u0433\u043e \u043d\u0435\u0443\u0442\u0435\u043a\u0430\u043d\u0438\u044f \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u043c\u0435\u0442\u043e\u0434\u0430. <code>@Stable<\/code> \u2014 \u044d\u0442\u043e \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f <a href=\"https:\/\/github.com\/openjdk\/jdk\/pull\/9143#discussion_r911643770\" rel=\"noopener noreferrer nofollow\">\u0443\u0441\u043a\u043e\u0440\u044f\u044e\u0449\u0430\u044f \u0434\u043e\u0441\u0442\u0443\u043f<\/a> \u043a \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u0438 \u0438\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u043c\u0443.<\/p>\n<p>\u041b\u043e\u0433\u0438\u0447\u043d\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c, \u0447\u0442\u043e \u043a\u043e\u0434 \u0432\u043d\u0443\u0442\u0440\u0438 <code>java.lang.Class<\/code> \u0431\u0443\u0434\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u0435\u0435. \u0423\u0432\u044b, \u043e\u0431\u044b\u0447\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 JDK \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0447\u0430\u0441\u0442\u044c \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u0434\u0430, \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u044e\u0449\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 &#171;+&#187; <\/p>\n<pre><code class=\"java\">return baseName.replace('.', '\/') + '\/' + name;<\/code><\/pre>\n<p>\u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432<\/p>\n<pre><code>INVOKEVIRTUAL java\/lang\/String.replace (CC)Ljava\/lang\/String; ALOAD 1 INVOKEDYNAMIC makeConcatWithConstants(Ljava\/lang\/String;Ljava\/lang\/String;)Ljava\/lang\/String; [   \/\/ handle kind 0x6 : INVOKESTATIC   java\/lang\/invoke\/StringConcatFactory.makeConcatWithConstants(Ljava\/lang\/invoke\/MethodHandles$Lookup;Ljava\/lang\/String;Ljava\/lang\/invoke\/MethodType;Ljava\/lang\/String;[Ljava\/lang\/Object;)Ljava\/lang\/invoke\/CallSite;   \/\/ arguments:   \"\\u0001\/\\u0001\" ] ARETURN<\/code><\/pre>\n<p>\u042d\u0442\u043e\u0442 \u0436\u0435 \u043a\u043e\u0434 \u0432\u043d\u0443\u0442\u0440\u0438 JDK \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0442\u0430\u043a:<\/p>\n<pre><code> INVOKESPECIAL java\/lang\/StringBuilder.&lt;init> (I)V  ASTORE 4 L7  LINENUMBER 3182 L7  ALOAD 4  ALOAD 2  BIPUSH 46  BIPUSH 47  INVOKEVIRTUAL java\/lang\/String.replace (CC)Ljava\/lang\/String;  INVOKEVIRTUAL java\/lang\/StringBuilder.append (Ljava\/lang\/String;)Ljava\/lang\/StringBuilder;  BIPUSH 47 L8  LINENUMBER 3183 L8  INVOKEVIRTUAL java\/lang\/StringBuilder.append (C)Ljava\/lang\/StringBuilder;  ALOAD 1 L9  LINENUMBER 3184 L9  INVOKEVIRTUAL java\/lang\/StringBuilder.append (Ljava\/lang\/String;)Ljava\/lang\/StringBuilder; L10  LINENUMBER 3185 L10  INVOKEVIRTUAL java\/lang\/StringBuilder.toString ()Ljava\/lang\/String;<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0434\u043b\u044f javac \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u0434\u043e\u043c <code>j.l.Class<\/code> \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u043c \u043a\u043e\u0434\u043e\u043c. \u041f\u043e\u043d\u044f\u0442\u044c \u043f\u0440\u0438\u0447\u0438\u043d\u0443 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0443\u0436\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0430\u044f \u043d\u0430\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0430: <code>java -Xlog:class+init -version<\/code>.<\/p>\n<p>\u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e <code>StringConcatFactory<\/code> \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u0430 \u0440\u0430\u043d\u043d\u0438\u0445 \u0441\u0442\u0430\u0434\u0438\u044f\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f <a href=\"https:\/\/stackoverflow.com\/questions\/71834059\/why-invokedynamic-based-string-concatenation-is-not-available-for-javac-in-java\" rel=\"noopener noreferrer nofollow\">\u0438\u0437-\u0437\u0430 \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439<\/a>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043b\u044e\u0431\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u044f <code>java.base<\/code> \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u0443\u044e \u043f\u043e \u0441\u0442\u0430\u0440\u044b\u043c \u0432\u0435\u0440\u0441\u0438\u044f\u043c Java \u0446\u0435\u043f\u043e\u0447\u043a\u0443 <code>new StringBuilder().append().toString()<\/code>, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u044b \u043c\u0435\u0442\u043e\u0434 \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0441\u044f \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c, \u043e\u043d \u0443\u0436\u0435 \u043d\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f.<\/p>\n<p>\u042d\u0442\u0430 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>\u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0437\u0430\u043c\u0435\u043d\u044b \u0446\u0435\u043f\u043e\u0447\u043a\u0438 <code>new StringBuilder().append().toString()<\/code> \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0430\u043c \u0432\u0434\u0430\u043b\u0431\u043b\u0438\u0432\u0430\u043b\u0438 \u043a\u0430\u043a \u043a\u043e\u043b \u0432 \u043f\u0435\u0447\u0435\u043d\u044c, \u043f\u0435\u0440\u0435\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 180 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432! \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0432\u043d\u0443\u0442\u0440\u0438 JDK \u043e\u043d\u043e <strong>\u0443\u0445\u0443\u0434\u0448\u0430\u0435\u0442<\/strong> \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c;<\/p>\n<\/li>\n<li>\n<p>\u0432\u043d\u0443\u0442\u0440\u0438 <code>java.base<\/code> \u043d\u0430 \u0433\u043e\u0440\u044f\u0447\u0438\u0445 \u0443\u0447\u0430\u0441\u0442\u043a\u0430\u0445 \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 &#171;+&#187; \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u044f\u0442\u044c \u0442\u043e\u0439 \u0441\u0430\u043c\u043e\u0439 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u043e\u0439 <code>new StringBuilder().append().toString()<\/code>, \u043f\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u044f \u0434\u043b\u0438\u043d\u0443 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440;<\/p>\n<\/li>\n<li>\n<p>\u0432\u0442\u043e\u0440\u043e\u0435 \u0434\u044b\u0445\u0430\u043d\u0438\u0435 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0443 \u043c\u0435\u0442\u043e\u0434\u0430 <code>String.concat()<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0421 \u043f\u0435\u0440\u0432\u044b\u043c \u0438 \u0432\u0442\u043e\u0440\u044b\u043c \u043f\u0443\u043d\u043a\u0442\u0430\u043c\u0438 \u0432\u0441\u0451 \u043f\u043e\u043d\u044f\u0442\u043d\u043e: \u0431\u0435\u0440\u0438 \u0438 <a href=\"https:\/\/github.com\/openjdk\/jdk\/pull\/3903\" rel=\"noopener noreferrer nofollow\">\u0434\u0435\u043b\u0430\u0439<\/a>.<\/p>\n<p>\u0422\u0440\u0435\u0442\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435: \u043c\u0435\u0442\u043e\u0434 <code>String.concat()<\/code> \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f (\u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u0441\u043b\u0435 <a href=\"https:\/\/bugs.openjdk.org\/browse\/JDK-8222484\" rel=\"noopener noreferrer nofollow\">JDK-8222484<\/a> \u0438 <a href=\"https:\/\/bugs.openjdk.org\/browse\/JDK-8247605\" rel=\"noopener noreferrer nofollow\">JDK-8247605<\/a>, \u043f\u0440\u043e \u0447\u0442\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u0434\u043e\u043a\u043b\u0430\u0434\u0435 <a href=\"https:\/\/youtu.be\/NXh98XRi2is?t=603\" rel=\"noopener noreferrer nofollow\">&#171;\u0415\u0449\u0451 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0439&#187;<\/a>), \u0442. \u043a. \u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u043a\u043e\u0434\u0435 \u043e\u043d \u0441\u0442\u0430\u043b \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u043c. \u0410 \u0432\u043e\u0442 \u0432 \u043a\u043e\u0434\u0435 JDK \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0441\u0432\u043e\u0435\u043c\u0443 \u0445\u0438\u0442\u0440\u043e\u043c\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443<\/p>\n<pre><code class=\"java\">public String concat(String str) {   if (str.isEmpty()) {     return this;   }   return StringConcatHelper.simpleConcat(this, str); }<\/code><\/pre>\n<p>\u043e\u043d \u043e\u0431\u0440\u0435\u0442\u0430\u0435\u0442 \u0432\u0442\u043e\u0440\u0443\u044e \u0436\u0438\u0437\u043d\u044c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0443\u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043e\u0442 <code>new StringBuilder().append()<\/code> \u043f\u0440\u0438 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0434\u0432\u0443\u0445 \u0441\u0442\u0440\u043e\u043a \u0438 \u0434\u0430\u0432\u0430\u044f \u043e\u0449\u0443\u0442\u0438\u043c\u044b\u0435 <a href=\"https:\/\/github.com\/openjdk\/jdk\/pull\/3627\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0438\u0440\u043e\u0441\u0442\u044b<\/a>. \u0422\u0430\u043a\u0436\u0435 \u043e\u043d \u0445\u043e\u0440\u043e\u0448\u043e \u043b\u043e\u0436\u0438\u0442\u0441\u044f \u0432 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u043d\u0438\u044f \u0442\u0440\u0451\u0445 \u0441\u0442\u0440\u043e\u043a, \u043e\u0434\u043d\u0430 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043f\u0443\u0441\u0442\u043e\u0439 \u0438 <a href=\"https:\/\/github.com\/openjdk\/jdk\/pull\/4526\/files#diff-0787f044656bc2f10ceb5e1b8bc43ab06a542339aa69e96e55518a71e43aaad2R262\" rel=\"noopener noreferrer nofollow\">\u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u043e\u0439 \u0438\u0437 \u0446\u0435\u043f\u043e\u0447\u043a\u0438<\/a>.<\/p>\n<p>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0430\u0447\u0435 \u0432\u0435\u0434\u0451\u0442 \u0441\u0435\u0431\u044f \u0438 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0439 <code>String.valueOf()<\/code>.<\/p>\n<p>\u0412 \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u043e\u043c &#171;\u041a\u0430\u0442\u0435\u0445\u0438\u0437\u0438\u0441\u0435 java.lang.String&#187; \u0431\u044b\u043b\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e <a href=\"https:\/\/youtu.be\/SZFe3m1DV1A?t=773\" rel=\"noopener noreferrer nofollow\">\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435<\/a> <code>\"\" + i<\/code> \u0438 <code>String.valueOf(i)<\/code> \u0438 \u0442\u043e\u0433\u0434\u0430 (\u0432 2015 \u0433\u043e\u0434\u0443) \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0438\u0437-\u0437\u0430 \u0445\u043e\u0440\u043e\u0448\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e <code>StringBuilder.append(int)<\/code>. \u041d\u043e \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f <code>StringConcatFactory<\/code>. \u0421 \u043d\u0438\u043c <code>\"\" + i<\/code> \u0432 \u043a\u043e\u043d\u0446\u0435-\u043a\u043e\u043d\u0446\u043e\u0432 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442 <code>String.valueOf(i)<\/code>, \u043d\u043e \u0443\u0436\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 <code>StringConcatHelper<\/code>:<\/p>\n<pre><code class=\"java\">static String simpleConcat(Object first, Object second) {   String s1 = stringOf(first);   String s2 = stringOf(second);   \/\/ ... }  static String stringOf(Object value) {   String s;   return (value == null || (s = value.toString()) == null) ? \"null\" : s; }<\/code><\/pre>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0441\u043b\u0438 \u043c\u044b \u0431\u0435\u0440\u0451\u043c \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a \u0438\u0437 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u043e\u0433\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u0430<\/p>\n<pre><code class=\"java\">@BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @Fork(jvmArgsAppend = {\"-Xms2g\", \"-Xmx2g\"}) public class ValueOfBenchmark {     @Benchmark     public String concat(Data data) {         return \"\" + data.value;     }      @Benchmark     public String valueOf(Data data) {         return String.valueOf(data.value);     }      @State(Scope.Thread)     public static class Data {         int value = 12345;     } }<\/code><\/pre>\n<p>\u0442\u043e \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0446\u0438\u0444\u0440\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0435 \u0436\u0435: <\/p>\n<pre><code>Java 11  Benchmark                Mode  Cnt     Score     Error   Units ValueOfBenchmark.concat  avgt   40     6,668 \u00b1   0,740   ns\/op ValueOfBenchmark.valueOf avgt   40     6,536 \u00b1   0,110   ns\/op<\/code><\/pre>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0435 \u0441\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c:<\/p>\n<pre><code class=\"java\">@BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @Fork(jvmArgsAppend = {\"-Xms2g\", \"-Xmx2g\"}) public class ValueOfBenchmark {    @Benchmark   public String concat(Data data) {     return \"\" + data.value;   }    @Benchmark   public String valueOf(Data data) {     return String.valueOf(data.value);   }    @State(Scope.Thread)   public static class Data {     Object value = new Object(){       @Override       public int hashCode() {         return 42; \/\/ \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430\u044f \u0434\u043b\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0441\u043c. Object.toString()       }     };   } }<\/code><\/pre>\n<p>&#171;+&#187; \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043e\u0449\u0443\u0442\u0438\u043c\u043e \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0442\u044c:<\/p>\n<pre><code>Java 11  Benchmark                 Mode  Cnt   Score   Error  Units ValueOfBenchmark.concat   avgt   40  54,070 \u00b1 3,225  ns\/op ValueOfBenchmark.valueOf  avgt   40  43,012 \u00b1 2,408  ns\/op<\/code><\/pre>\n<p>\u0412 Java 17 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u043f\u043e\u0447\u0442\u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f:<\/p>\n<pre><code>Java 17  Benchmark                 Mode  Cnt   Score   Error  Units ValueOfBenchmark.concat   avgt   40  41,501 \u00b1 0,806  ns\/op ValueOfBenchmark.valueOf  avgt   40  39,194 \u00b1 2,441  ns\/op<\/code><\/pre>\n<p>\u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u043e\u0439 \u044d\u0442\u043e\u043c\u0443 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435, \u043f\u0440\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u043e\u043c \u0434\u043e\u043a\u043b\u0430\u0434\u0435 <a href=\"https:\/\/youtu.be\/NXh98XRi2is?t=1218\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438<\/a>. \u0421\u0443\u0442\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u0438 \u0434\u0432\u0443\u0445 \u0441\u0442\u0440\u043e\u043a, \u043e\u0434\u043d\u0430 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0443\u0441\u0442\u0430\u044f, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 \u0431\u0435\u0437 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430.<\/p>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043a\u043e\u0433\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c javac <a href=\"https:\/\/bugs.openjdk.java.net\/browse\/JDK-8276951\" rel=\"noopener noreferrer nofollow\">\u043d\u0430\u0443\u0447\u0438\u0442\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435<\/a> \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043f\u043e\u043a\u0430 \u0436\u0435 \u044d\u0442\u043e <a href=\"https:\/\/github.com\/openjdk\/jdk\/pull\/6326\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0443\u043a\u0430\u043c\u0438<\/a> (\u0432 \u043d\u0443\u0436\u043d\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f).<\/p>\n<p>\u0412\u0438\u0434\u0438\u0442\u0435, \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a: \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0449\u0435, \u0432\u043e\u043f\u0440\u043e\u0441 100 \u0440\u0430\u0437 \u0440\u0430\u0441\u043a\u0440\u044b\u0442, \u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0434\u0435\u0441\u044c \u043d\u044e\u0430\u043d\u0441\u043e\u0432 \u0438 \u0442\u043e\u043d\u043a\u0438\u0445 \u0443\u0433\u043b\u043e\u0432\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432.<\/p>\n<p>\u041d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0432\u0441\u0451. \u041f\u0440\u0438\u0441\u044b\u043b\u0430\u0439\u0442\u0435 \u0432\u0430\u0448\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438, \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \ud83d\ude42<\/p>\n<p>\u0414\u043e \u043d\u043e\u0432\u044b\u0445 \u0432\u0441\u0442\u0440\u0435\u0447!<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/7ef\/5f0\/3bf\/7ef5f03bf940556f6a9f816e4b81e4f7.png\" width=\"auto\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/7ef\/5f0\/3bf\/7ef5f03bf940556f6a9f816e4b81e4f7.png\"\/><figcaption><\/figcaption><\/figure>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/672146\/\"> https:\/\/habr.com\/ru\/post\/672146\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u044d\u0442\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 <a href=\"https:\/\/habr.com\/ru\/post\/518744\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u044c\u0438<\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b \u0440\u0430\u0437\u043d\u044b\u0435 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0435 \u0432\u0435\u0449\u0438 \u0438\u0437 \u043c\u0438\u0440\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0431\u0443\u0434\u0435\u043c \u043a\u043e\u043f\u0430\u0442\u044c \u0435\u0449\u0451 \u0433\u043b\u0443\u0431\u0436\u0435, \u0445\u043e\u0442\u044c \u0438 \u043d\u0430\u0447\u043d\u0451\u043c \u0441 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432. \u0418 \u0434\u0430, \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043f\u0440\u043e \u0441\u0442\u0440\u043e\u043a\u0438. \u0414\u0430, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 <a href=\"https:\/\/www.youtube.com\/watch?v=SZFe3m1DV1A\" rel=\"noopener noreferrer nofollow\">&#171;\u041a\u0430\u0442\u0435\u0445\u0438\u0437\u0438\u0441 java.lang.String&#187;<\/a>, <a href=\"https:\/\/www.youtube.com\/watch?v=v2XLg4SvCF8\" rel=\"noopener noreferrer nofollow\">&#171;The Lord of the Strings: Two Scours&#187;<\/a> \u0438 \u043f\u0430\u0440\u044b \u043c\u043e\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 (<a href=\"https:\/\/habr.com\/ru\/post\/489554\" rel=\"noopener noreferrer nofollow\">\u0440\u0430\u0437<\/a>, <a href=\"https:\/\/habr.com\/ru\/post\/511244\" rel=\"noopener noreferrer nofollow\">\u0434\u0432\u0430<\/a>, <a href=\"https:\/\/habr.com\/ru\/post\/529962\/\" rel=\"noopener noreferrer nofollow\">\u0442\u0440\u0438<\/a>) \u0442\u0430\u043c \u0432\u0441\u0451 \u0435\u0449\u0451 \u0435\u0441\u0442\u044c \u043a\u0443\u0434\u0430 \u043a\u043e\u043f\u0430\u0442\u044c \ud83d\ude42<\/p>\n<h2>\u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0435 \u2014 \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0435<\/h2>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0441\u0442\u044b \u0438 <em>\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e<\/em> \u043f\u043e\u043b\u0435\u0437\u043d\u044b, \u0447\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0439 \u0432\u0440\u0435\u0434 \u043e\u0442 \u043d\u0438\u0445 \u043d\u0435 \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0433\u043e\u043b\u043e\u0432\u0435. \u0412\u043e\u0437\u044c\u043c\u0451\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0434\u043e \u043d\u0435\u043f\u0440\u0438\u043b\u0438\u0447\u0438\u044f \u043a\u043e\u0434 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043d\u0435\u0433\u043e \u0432 &#171;\u0418\u0434\u0435\u0435&#187;:<\/p>\n<pre><code class=\"java\">&lt;T> List&lt;T> toList(Set&lt;T> set) {   var list = new ArrayList&lt;T>();   for (T item : set) {     list.add(item);   }   return list; }<\/code><\/pre>\n<p>\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0442\u0443\u0442 \u0436\u0435 \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u0438\u0442 <code>strings.add(item)<\/code> \u0438 \u043f\u043e\u0434\u0441\u043a\u0430\u0436\u0435\u0442, \u0447\u0442\u043e &#171;Iteration can be replaced with bulk &#8216;Collection.addAll()&#8217; call&#187;. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435, \u043c\u043e\u0436\u043d\u043e \u0443\u0436\u0430\u0442\u044c \u0442\u0435\u043b\u043e \u043c\u0435\u0442\u043e\u0434\u0430:<\/p>\n<pre><code class=\"java\">var list = new ArrayList&lt;T>(); list.addAll(set); return list;<\/code><\/pre>\n<p>&#171;\u0418\u0434\u0435\u044f&#187; \u043d\u0435 \u0443\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e &#171;&#8216;addAll()&#8217; can be replaced with parametrized constructor call&#187;, \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044f (\u0438 \u0443\u0441\u043a\u043e\u0440\u044f\u044f) \u0442\u0435\u043b\u043e \u043c\u0435\u0442\u043e\u0434\u0430:<\/p>\n<pre><code class=\"java\">return new ArrayList&lt;>(set);<\/code><\/pre>\n<p>\u042d\u0442\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u0438\u043c\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u044d\u0442\u043e \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0430\u043c\u0438. \u0414\u043b\u044f \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u0432\u043f\u0440\u043e\u0447\u0435\u043c, \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u043d\u0435 \u0441\u0442\u043e\u043b\u044c \u0432\u0435\u043b\u0438\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f <code>ArrayDeque<\/code>, \u0438 \u0432\u0438\u043d\u043e\u0439 \u0432\u0441\u0435\u043c\u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0451 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p>\u0437\u0430\u043f\u0440\u0435\u0442 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 <code>null<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u0437\u0430\u043f\u0430\u0441\u043e\u043c.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0438\u0437 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 <code>ArrayList<\/code>-\u0430 \u0438 \u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0441\u044f \u0440\u0443\u0447\u043d\u044b\u043c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c:<\/p>\n<pre><code class=\"java\">public ArrayDeque(Collection&lt;? extends E> c) {   this(c.size());   copyElements(c); }  public ArrayDeque(int numElements) {   elements = new Object[(numElements &lt; 1) ? 1 :       (numElements == Integer.MAX_VALUE) ? Integer.MAX_VALUE :        numElements + 1]; }  private void copyElements(Collection&lt;? extends E> c) {   c.forEach(this::addLast); }<\/code><\/pre>\n<p>\u0418 \u0432\u0441\u0451 \u0436\u0435 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u0435\u0441\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0432 \u0440\u0430\u0437\u043e\u0432\u043e\u043c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0451\u043c\u0430 \u043f\u0430\u043c\u044f\u0442\u0438. &#171;\u0418 \u0433\u0434\u0435 \u0436\u0435 \u0437\u0434\u0435\u0441\u044c \u043e\u0431\u0435\u0449\u0430\u043d\u043d\u0430\u044f \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c?&#187;, \u2014 \u0432\u043e\u043f\u0440\u043e\u0448\u0430\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c.<\/p>\n<p>\u041d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 <code>jdk.internal.loader.URLClassPath<\/code>. \u041f\u043e\u043f\u0440\u043e\u0448\u0443 \u043f\u043e\u043a\u0430 \u043d\u0435 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u2014 \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u043e\u0434\u0438\u043d \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u043b:<\/p>\n<pre><code class=\"java\">URLClassPath(String cp, boolean skipEmptyElements) {     ArrayList&lt;URL> path = new ArrayList&lt;>();     \/\/...      \/\/ \u0437\u0434\u0435\u0441\u044c \u0431\u044b\u043b \u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439     int size = path.size();     ArrayDeque&lt;URL> unopenedUrls = new ArrayDeque&lt;>(size);     for (int i = 0; i &lt; size; i++)         unopenedUrls.add(path.get(i));      this.unopenedUrls = unopenedUrls;     \/\/... }<\/code><\/pre>\n<p>\u041d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u044d\u0442\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442 \u043d\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u043d\u0438\u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u043c\u0435\u0448\u0430\u0435\u0442 \u043d\u0430\u043c \u0443\u0436\u0430\u0442\u044c 5 \u0441\u0442\u0440\u043e\u043a \u0432 1:<\/p>\n<pre><code class=\"java\">this.unopenedUrls = new ArrayDeque&lt;>(path);<\/code><\/pre>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u043f\u043e\u0440\u0430\u0437\u043c\u044b\u0448\u043b\u044f\u0435\u043c, \u043c\u043e\u0436\u0435\u0442 \u043b\u0438 \u0437\u0434\u0435\u0441\u044c \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0439\u0442\u0438 \u043d\u0435\u0442 \u0442\u0430\u043a? \u041a\u043e\u0434 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f <strong>\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/strong> JDK \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u044b\u0448\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u043f\u0440\u0430\u0432\u0434\u0430\u043d\u043d\u043e. \u0418 \u0432\u0441\u0451 \u043e\u0431\u0441\u0442\u043e\u0438\u0442 \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f <strong>\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430<\/strong> JDK:<\/p>\n<pre><code class=\"java\">URLClassPath(String cp, boolean skipEmptyElements) {     ArrayList&lt;URL> path = new ArrayList&lt;>();     \/\/...      \/\/ can't use ArrayDeque#addAll or new ArrayDeque(Collection);     \/\/ it's too early in the bootstrap to trigger use of lambdas     int size = path.size();     ArrayDeque&lt;URL> unopenedUrls = new ArrayDeque&lt;>(size);     for (int i = 0; i &lt; size; i++)         unopenedUrls.add(path.get(i));      this.unopenedUrls = unopenedUrls;     \/\/... }<\/code><\/pre>\n<p>\u041b\u044f\u043c\u0431\u0434\u0430 (\u0442\u043e\u0447\u043d\u0435\u0435 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043c\u0435\u0442\u043e\u0434) \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 <code>copyElements<\/code>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0435\u043c\u0441\u044f \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 <code>ArrayDeque<\/code>. \u0414\u043b\u044f <strong>\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/strong> JDK \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u0430 \u0434\u043b\u044f <strong>\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430<\/strong> JDK \u044d\u0442\u043e \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0441\u0442\u044c, \u0432\u0435\u0434\u044c \u043b\u044f\u043c\u0431\u0434\u044b \u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e, \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u0437\u0430\u0442\u0440\u0430\u0442 \u2014 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0438 \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043d\u0430 \u0440\u0430\u043d\u043d\u0438\u0445 \u044d\u0442\u0430\u043f\u0430\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b.<\/p>\n<p>\u0423\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u0432\u044b\u0432\u043e\u0434\u044f\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044e Java \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043a\u043b\u0430\u0441\u0441\u043e\u0432:<\/p>\n<pre><code class=\"bash\">java -Xlog:class+init -version<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 JDK \u0438\u043c\u0435\u0435\u043c \u0432\u043e\u0442 \u044d\u0442\u043e:<\/p>\n<details class=\"spoiler\">\n<summary>Hidden text<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>[0.018s][info][class,init] 0 Initializing 'java\/lang\/Object'(no method) (0x0000000800000e60) [0.018s][info][class,init] 1 Initializing 'java\/lang\/CharSequence'(no method) (0x0000000800009210) [0.018s][info][class,init] 2 Initializing 'java\/lang\/String' (0x00000008000089b8) [0.018s][info][class,init] 3 Initializing 'java\/util\/Comparator'(no method) (0x00000008000eb588) [0.018s][info][class,init] 4 Initializing 'java\/lang\/String$CaseInsensitiveComparator'(no method) (0x000000080010dff8) [0.018s][info][class,init] 5 Initializing 'java\/lang\/System' (0x0000000800002b68) [0.019s][info][class,init] 6 Initializing 'java\/lang\/reflect\/AnnotatedElement'(no method) (0x0000000800013cd0) [0.019s][info][class,init] 7 Initializing 'java\/lang\/reflect\/Type'(no method) (0x0000000800015210) [0.019s][info][class,init] 8 Initializing 'java\/lang\/Class' (0x00000008000139e0) [0.019s][info][class,init] 9 Initializing 'java\/lang\/ThreadGroup' (0x00000008000281b0) [0.019s][info][class,init] 10 Initializing 'jdk\/internal\/misc\/VM' (0x000000080000ac28) [0.019s][info][class,init] 11 Initializing 'java\/lang\/Thread' (0x000000080000f370) [0.019s][info][class,init] 12 Initializing 'java\/security\/AccessController' (0x00000008000631c8) [0.019s][info][class,init] 13 Initializing 'java\/security\/AccessControlContext' (0x0000000800061b08) [0.019s][info][class,init] 14 Initializing 'java\/lang\/Thread$FieldHolder'(no method) (0x00000008000278b0) [0.019s][info][class,init] 15 Initializing 'java\/lang\/Module' (0x000000080001e8e0) [0.019s][info][class,init] 16 Initializing 'java\/lang\/Module$ArchivedData' (0x000000080016c040) [0.019s][info][class,init] 17 Initializing 'jdk\/internal\/misc\/CDS' (0x0000000800035b90) [0.019s][info][class,init] 18 Initializing 'java\/lang\/Iterable'(no method) (0x0000000800073d88) [0.019s][info][class,init] 19 Initializing 'java\/util\/Collection'(no method) (0x00000008000741f8) [0.019s][info][class,init] 20 Initializing 'java\/util\/AbstractCollection'(no method) (0x00000008000760e8) [0.019s][info][class,init] 21 Initializing 'java\/util\/ImmutableCollections$AbstractImmutableCollection'(no method) (0x000000080015aed8) [0.019s][info][class,init] 22 Initializing 'java\/util\/Set'(no method) (0x000000080000af30) [0.019s][info][class,init] 23 Initializing 'java\/util\/ImmutableCollections$AbstractImmutableSet'(no method) (0x000000080015cc10) [0.019s][info][class,init] 24 Initializing 'java\/util\/ImmutableCollections$Set12'(no method) (0x00000008001b53a0) [0.019s][info][class,init] 25 Initializing 'jdk\/internal\/misc\/UnsafeConstants' (0x000000080009a4a8) [0.019s][info][class,init] 26 Initializing 'java\/lang\/reflect\/AccessibleObject' (0x0000000800049da8) [0.019s][info][class,init] 27 Initializing 'java\/lang\/reflect\/ReflectAccess'(no method) (0x000000080016c608) [0.019s][info][class,init] 28 Initializing 'jdk\/internal\/access\/SharedSecrets'(no method) (0x0000000800004540) [0.019s][info][class,init] 29 Initializing 'jdk\/internal\/reflect\/ReflectionFactory$GetReflectionFactoryAction'(no method) (0x000000080011b780) [0.019s][info][class,init] 30 Initializing 'jdk\/internal\/reflect\/Reflection' (0x0000000800063be0) [0.019s][info][class,init] 31 Initializing 'java\/util\/Objects'(no method) (0x0000000800072850) [0.019s][info][class,init] 32 Initializing 'java\/util\/ImmutableCollections' (0x000000080015a2e0) [0.019s][info][class,init] 33 Initializing 'java\/util\/List'(no method) (0x0000000800074d38) [0.019s][info][class,init] 34 Initializing 'java\/util\/ImmutableCollections$AbstractImmutableList'(no method) (0x000000080015b240) [0.019s][info][class,init] 35 Initializing 'java\/util\/ImmutableCollections$ListN'(no method) (0x000000080015c0c0) [0.019s][info][class,init] 36 Initializing 'java\/util\/ImmutableCollections$SetN'(no method) (0x000000080015c810) [0.020s][info][class,init] 37 Initializing 'java\/util\/Map'(no method) (0x00000008000048d0) [0.020s][info][class,init] 38 Initializing 'java\/util\/AbstractMap'(no method) (0x000000080007f0c8) [0.020s][info][class,init] 39 Initializing 'java\/util\/ImmutableCollections$AbstractImmutableMap'(no method) (0x000000080015d680) [0.020s][info][class,init] 40 Initializing 'java\/util\/ImmutableCollections$MapN'(no method) (0x000000080015d2e8) [0.020s][info][class,init] 41 Initializing 'java\/lang\/StringLatin1' (0x00000008000223c8) [0.020s][info][class,init] 42 Initializing 'java\/lang\/Math' (0x0000000800022f18) [0.020s][info][class,init] 43 Initializing 'java\/lang\/Number'(no method) (0x0000000800037aa8) [0.020s][info][class,init] 44 Initializing 'java\/lang\/Float' (0x0000000800037838) [0.020s][info][class,init] 45 Initializing 'java\/lang\/Double' (0x0000000800039308) [0.020s][info][class,init] 46 Initializing 'jdk\/internal\/reflect\/ReflectionFactory' (0x0000000800113bf8) [0.020s][info][class,init] 47 Initializing 'java\/lang\/Record'(no method) (0x000000080007a218) [0.020s][info][class,init] 48 Initializing 'jdk\/internal\/reflect\/ReflectionFactory$Config'(no method) (0x00000008001be668) [0.020s][info][class,init] 49 Initializing 'java\/lang\/ref\/Reference' (0x00000008000460e8) [0.020s][info][class,init] 50 Initializing 'java\/lang\/ref\/Reference$1'(no method) (0x000000080013dd08) [0.020s][info][class,init] 51 Initializing 'java\/lang\/reflect\/Executable'(no method) (0x000000080004c1f0) [0.020s][info][class,init] 52 Initializing 'java\/lang\/reflect\/Method'(no method) (0x000000080004b7f0) [0.020s][info][class,init] 53 Initializing 'java\/lang\/ref\/FinalReference'(no method) (0x0000000800047e90) [0.020s][info][class,init] 54 Initializing 'java\/lang\/ref\/Finalizer' (0x00000008000487b8) [0.020s][info][class,init] 55 Initializing 'java\/lang\/ref\/ReferenceQueue' (0x0000000800049498) [0.020s][info][class,init] 56 Initializing 'java\/lang\/ref\/ReferenceQueue$Null'(no method) (0x00000008001bf578) [0.020s][info][class,init] 57 Initializing 'java\/lang\/ref\/NativeReferenceQueue'(no method) (0x0000000800049250) [0.020s][info][class,init] 58 Initializing 'java\/lang\/ref\/NativeReferenceQueue$Lock'(no method) (0x00000008001bedc0) [0.020s][info][class,init] 59<\/code><\/pre>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-335898","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/335898","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=335898"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/335898\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=335898"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=335898"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=335898"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}