<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>日常小工具</title><link>http://www.gotools.cn/</link><description>Good Luck To You!</description><item><title>Java21—分代ZGC和虚拟线程</title><link>http://www.gotools.cn/post/3.html</link><description>&lt;h1 id=&quot;一导语&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 28px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;一、导语&lt;/h1&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;几天前Oracle刚刚发布了Java21，&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;由于这是最新的LTS版本，引起了大家的关注。&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;我也第一时间在个人项目中进行了升级体验。&lt;/p&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;一探究竟，和大家分享。&lt;/p&gt;&lt;h1 id=&quot;二java21更新内容介绍&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 28px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;二、Java21更新内容介绍&lt;/h1&gt;&lt;h3 id=&quot;官方release公告&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 16px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;官方release公告：&lt;/h3&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a href=&quot;https://jdk.java.net/21/release-notes&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(0, 102, 204);&quot;&gt;https://jdk.java.net/21/release-notes&lt;/a&gt;&lt;/p&gt;&lt;h3 id=&quot;开源中国介绍&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 16px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;开源中国介绍：&lt;/h3&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a href=&quot;https://my.oschina.net/waylau/blog/10112170&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(0, 102, 204);&quot;&gt;https://my.oschina.net/waylau/blog/10112170&lt;/a&gt;&lt;/p&gt;&lt;h3 id=&quot;新特性一览&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 16px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;新特性一览：&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;margin-left: 30px; width: 547.95px; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;li&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;JEP 431：序列集合&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;JEP 439：分代 ZGC&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;JEP 440：记录模式&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;JEP 441：switch 模式匹配&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;JEP 444：虚拟线程&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;JEP 449：弃用 Windows 32 位 x86 移植&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;JEP 451：准备禁止动态加载代理&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;JEP 452：密钥封装机制 API&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;JEP 430：字符串模板（预览）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;JEP 442：外部函数和内存 API（第三次预览）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;JEP 443：未命名模式和变量（预览）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;JEP 445：未命名类和实例主方法（预览）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;JEP 446：作用域值（预览）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;JEP 453：结构化并发（预览）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;JEP 448：Vector API（孵化器第六阶段）&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;其中大家比较关注的是分代 ZGC和虚拟线程。&lt;/p&gt;&lt;h1 id=&quot;三开箱&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 28px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;三、开箱&lt;/h1&gt;&lt;h3 id=&quot;下载地址&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 16px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;下载地址：&lt;/h3&gt;&lt;blockquote style=&quot;margin: 10px 0px; padding: 5px 10px; background-image: none; border-top: none; border-right: none; border-bottom: none; border-left: 3px solid rgb(226, 223, 223); border-image: initial; color: rgb(85, 85, 85); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;OpenJDK 版本：&lt;a href=&quot;https://jdk.java.net/21/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(0, 102, 204);&quot;&gt;https://jdk.java.net/21/&lt;/a&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;Oracle 版本：&lt;a href=&quot;https://www.oracle.com/java/technologies/downloads/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(0, 102, 204);&quot;&gt;https://www.oracle.com/java/technologies/downloads/&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h3 id=&quot;对比17&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 16px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;对比17&lt;/h3&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;目录结构一致：&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;&lt;img src=&quot;https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2023-09-22-16-57uWUxzHdR4IiGA16.png&quot; alt=&quot;image.png&quot; loading=&quot;lazy&quot; class=&quot;medium-zoom-image&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; max-width: 100%; height: auto; cursor: zoom-in; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s !important;&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;模块数量比17少一个：&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;&lt;img src=&quot;https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2023-09-22-16-59NmOtraG30TLb7aOY.png&quot; alt=&quot;image.png&quot; loading=&quot;lazy&quot; class=&quot;medium-zoom-image&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; max-width: 100%; height: auto; cursor: zoom-in; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s !important;&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;整体大小从289MB增加到了320MB&lt;/p&gt;&lt;h1 id=&quot;四升级体验&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 28px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;四、升级体验&lt;/h1&gt;&lt;h3 id=&quot;下载&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 16px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;下载&lt;/h3&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;img src=&quot;https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2023-09-27-20-20KPkiWh20ANpwDaA6.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; class=&quot;medium-zoom-image&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; max-width: 100%; height: auto; cursor: zoom-in; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s !important;&quot;/&gt;&lt;/p&gt;&lt;h3 id=&quot;更新pom&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 16px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;更新pom&lt;/h3&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;img src=&quot;https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2023-09-22-17-02RcxH6JLt226patbA.png&quot; alt=&quot;image.png&quot; loading=&quot;lazy&quot; class=&quot;medium-zoom-image&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; max-width: 100%; height: auto; cursor: zoom-in; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s !important;&quot;/&gt;&lt;/p&gt;&lt;h3 id=&quot;尝试运行&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 16px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;尝试运行&lt;/h3&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;运行报错：&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;&lt;code style=&quot;margin: 0px 3px; padding: 0px 5px; font-family: &amp;quot;Courier New&amp;quot;, sans-serif; font-size: 12px; line-height: 1.8; display: inline-block; overflow-x: auto; vertical-align: middle; border-radius: 3px; background-color: rgb(246, 246, 246); color: rgb(232, 62, 140);&quot;&gt;java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field &amp;#39;com.sun.tools.javac.tree.JCTree qualid&amp;#39;&lt;/code&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;解决办法：&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;升级lombok至1.18.30&lt;/p&gt;&lt;blockquote style=&quot;margin: 10px 0px; padding: 5px 10px; background-image: none; border-top: none; border-right: none; border-bottom: none; border-left: 3px solid rgb(226, 223, 223); border-image: initial; color: rgb(85, 85, 85); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;原因：&lt;a href=&quot;https://github.com/projectlombok/lombok/issues/3393&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(0, 102, 204);&quot;&gt;https://github.com/projectlombok/lombok/issues/3393&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h3 id=&quot;兼容性检查&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 16px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;兼容性检查：&lt;/h3&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;由于我的项目以前用的JDK17，本次升级兼容性良好，只发现了一处：&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;系统托盘中 使用了PopupMenu，出现了字符集问题：&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;&lt;img src=&quot;https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2023-09-22-17-06rHX0SMC22KwSPUtW.png&quot; alt=&quot;image.png&quot; loading=&quot;lazy&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; max-width: 100%; height: auto;&quot;/&gt;&lt;/p&gt;&lt;h1 id=&quot;五分代zgc体验&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 28px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;五、分代ZGC体验&lt;/h1&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;ZGC在之前的JDK版本中也有，这次的分代ZGC更是被大家看好，官方的介绍如下：&lt;/p&gt;&lt;blockquote style=&quot;margin: 10px 0px; padding: 5px 10px; background-image: none; border-top: none; border-right: none; border-bottom: none; border-left: 3px solid rgb(226, 223, 223); border-image: initial; color: rgb(85, 85, 85); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;Applications running with Generational ZGC should enjoy:&lt;/p&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;Lower risks of allocations stalls,&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;Lower required heap memory overhead, and&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;Lower garbage collection CPU overhead.&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;Enable Generational ZGC with command line options -XX:+UseZGC -XX:+ZGenerational&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;性能测试参考：&lt;/p&gt;&lt;blockquote style=&quot;margin: 10px 0px; padding: 5px 10px; background-image: none; border-top: none; border-right: none; border-bottom: none; border-left: 3px solid rgb(226, 223, 223); border-image: initial; color: rgb(85, 85, 85); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;&lt;a href=&quot;https://inside.java/2023/09/03/roadto21-performance/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(0, 102, 204);&quot;&gt;https://inside.java/2023/09/03/roadto21-performance/&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h3 id=&quot;jvm参数-xxusezgc--xxzgenerational&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 16px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;JVM参数：-XX:+UseZGC -XX:+ZGenerational&lt;/h3&gt;&lt;h3 id=&quot;使用java21未使用zgc&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 16px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;使用Java21，未使用ZGC&lt;/h3&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;MooInfo内存占用查看&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;&lt;img src=&quot;https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2023-09-22-17-45N25MWZpD45tqShhci.png&quot; alt=&quot;image.png&quot; loading=&quot;lazy&quot; class=&quot;medium-zoom-image&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; max-width: 100%; height: auto; cursor: zoom-in; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s !important;&quot;/&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;&lt;img src=&quot;https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2023-09-22-17-45khK8C45WuuJ45JjQJ.png&quot; alt=&quot;image.png&quot; loading=&quot;lazy&quot; class=&quot;medium-zoom-image&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; max-width: 100%; height: auto; cursor: zoom-in; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s !important;&quot;/&gt;&lt;/p&gt;&lt;h3 id=&quot;使用java21使用分代zgc&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 16px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;使用Java21，使用分代ZGC&lt;/h3&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;MooInfo内存占用查看&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;&lt;img src=&quot;https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2023-09-22-17-42ffee940YYLl5lMh22.png&quot; alt=&quot;image.png&quot; loading=&quot;lazy&quot; class=&quot;medium-zoom-image&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; max-width: 100%; height: auto; cursor: zoom-in; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s !important;&quot;/&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;&lt;img src=&quot;https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2023-09-22-17-43Bhc0rCPJeIcKAzy.png&quot; alt=&quot;image.png&quot; loading=&quot;lazy&quot; class=&quot;medium-zoom-image&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; max-width: 100%; height: auto; cursor: zoom-in; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s !important;&quot;/&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;以上只是初步体验，关于ZGC的更多内容，如详细的分代回收情况后续进一步探索。&lt;/p&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;以上内存占用查看使用我之前做的一个工具，MooInfo：&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;&lt;a href=&quot;https://github.com/rememberber/MooInfo&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(0, 102, 204);&quot;&gt;https://github.com/rememberber/MooInfo&lt;/a&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;&lt;img src=&quot;https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2023-09-22-20-42hX9BCDG52V9Xx52LZ.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; class=&quot;medium-zoom-image&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; max-width: 100%; height: auto; cursor: zoom-in; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s !important;&quot;/&gt;&lt;/p&gt;&lt;h1 id=&quot;六虚拟线程探索&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 28px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;六、虚拟线程探索&lt;/h1&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;Virtual threads are lightweight threads that reduce the effort of writing, maintaining, and debugging high-throughput concurrent applications.&lt;/p&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;虚拟线程是轻量级线程，可以减少编写、维护和调试高吞吐量并发应用程序的工作量。&lt;/p&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;Oracle介绍原文：&lt;/p&gt;&lt;blockquote style=&quot;margin: 10px 0px; padding: 5px 10px; background-image: none; border-top: none; border-right: none; border-bottom: none; border-left: 3px solid rgb(226, 223, 223); border-image: initial; color: rgb(85, 85, 85); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;&lt;a href=&quot;https://docs.oracle.com/en/java/javase/20/core/virtual-threads.html#GUID-DC4306FC-D6C1-4BCC-AECE-48C32C1A8DAA&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(0, 102, 204);&quot;&gt;https://docs.oracle.com/en/java/javase/20/core/virtual-threads.html#GUID-DC4306FC-D6C1-4BCC-AECE-48C32C1A8DAA&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h3 id=&quot;平台线程&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 16px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;平台线程&lt;/h3&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;Oracle官方文档的机器翻译：&lt;/p&gt;&lt;blockquote style=&quot;margin: 10px 0px; padding: 5px 10px; background-image: none; border-top: none; border-right: none; border-bottom: none; border-left: 3px solid rgb(226, 223, 223); border-image: initial; color: rgb(85, 85, 85); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;平台线程是作为操作系统(OS)线程的瘦包装器实现的。&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;平台线程在其底层操作系统线程上运行Java代码，平台线程在平台线程的整个生命周期内捕获其操作系统线程。&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;因此，可用平台线程的数量受限于操作系统线程的数量。&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;平台线程通常有一个大的线程堆栈和其他由操作系统维护的资源。&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;平台线程支持线程局部变量。&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;平台线程适合运行所有类型的任务，但可能是有限的资源。&lt;/p&gt;&lt;/blockquote&gt;&lt;h3 id=&quot;虚拟线程&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 16px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;虚拟线程&lt;/h3&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;Oracle官方文档的机器翻译：&lt;/p&gt;&lt;blockquote style=&quot;margin: 10px 0px; padding: 5px 10px; background-image: none; border-top: none; border-right: none; border-bottom: none; border-left: 3px solid rgb(226, 223, 223); border-image: initial; color: rgb(85, 85, 85); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;与平台线程一样，虚拟线程也是 java.lang.Thread 的一个实例。&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;但是，虚拟线程并不依赖于特定的操作系统线程。&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;虚拟线程仍然在操作系统线程上运行代码。&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;但是，当虚拟线程中运行的代码调用阻塞 I/O 操作时，Java 运行时会挂起虚拟线程，直到可以恢复为止。&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;与挂起的虚拟线程关联的操作系统线程现在可以自由地为其他虚拟线程执行操作。&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;实现原理&lt;/p&gt;&lt;blockquote style=&quot;margin: 10px 0px; padding: 5px 10px; background-image: none; border-top: none; border-right: none; border-bottom: none; border-left: 3px solid rgb(226, 223, 223); border-image: initial; color: rgb(85, 85, 85); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;虚拟线程的实现方式与虚拟内存类似。&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;为了模拟大量内存，操作系统将较大的虚拟地址空间映射到有限的 RAM。&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;同样，为了模拟大量线程，Java运行时将大量虚拟线程映射到少量操作系统线程。&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote style=&quot;margin: 10px 0px; padding: 5px 10px; background-image: none; border-top: none; border-right: none; border-bottom: none; border-left: 3px solid rgb(226, 223, 223); border-image: initial; color: rgb(85, 85, 85); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;与平台线程不同，虚拟线程通常具有浅调用堆栈，只执行单个 HTTP 客户端调用或单个 JDBC 查询。&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;尽管虚拟线程支持线程局部变量，但您应该仔细考虑使用它们，因为单个 JVM 可能支持数百万个虚拟线程。&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;虚拟线程适合运行大部分时间处于阻塞状态、通常等待 I/O 操作完成的任务。&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;但是，它们不适用于长时间运行的 CPU 密集型操作。&lt;/strong&gt;&lt;/p&gt;&lt;h3 id=&quot;虚拟线程用法&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 16px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;虚拟线程用法&lt;/h3&gt;&lt;pre class=&quot;prism-highlight prism-language-java&quot; highlighted=&quot;true&quot; style=&quot;margin: 10px auto; padding: 0px; background-color: rgb(255, 255, 255); transition-duration: 0.2s; transition-property: background, font-size, border-color, border-radius, border-width, padding, margin, color; overflow: auto; color: rgb(17, 17, 17); font-size: 13px;&quot;&gt;Thread&amp;nbsp;thread&amp;nbsp;=&amp;nbsp;Thread.ofVirtual().start(()&amp;nbsp;-&amp;gt;&amp;nbsp;System.out.println(&amp;quot;Hello&amp;quot;));
thread.join();&lt;/pre&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;或者&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-java&quot; highlighted=&quot;true&quot; style=&quot;margin: 10px auto; padding: 0px; background-color: rgb(255, 255, 255); transition-duration: 0.2s; transition-property: background, font-size, border-color, border-radius, border-width, padding, margin, color; overflow: auto; color: rgb(17, 17, 17); font-size: 13px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread.Builder&amp;nbsp;builder&amp;nbsp;=&amp;nbsp;Thread.ofVirtual().name(&amp;quot;MyThread&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Runnable&amp;nbsp;task&amp;nbsp;=&amp;nbsp;()&amp;nbsp;-&amp;gt;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&amp;quot;Running&amp;nbsp;thread&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread&amp;nbsp;t&amp;nbsp;=&amp;nbsp;builder.start(task);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&amp;quot;Thread&amp;nbsp;t&amp;nbsp;name:&amp;nbsp;&amp;quot;&amp;nbsp;+&amp;nbsp;t.getName());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;t.join();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;catch&amp;nbsp;(InterruptedException&amp;nbsp;e)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;或者&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-java&quot; highlighted=&quot;true&quot; style=&quot;margin: 10px auto; padding: 0px; background-color: rgb(255, 255, 255); transition-duration: 0.2s; transition-property: background, font-size, border-color, border-radius, border-width, padding, margin, color; overflow: auto; color: rgb(17, 17, 17); font-size: 13px;&quot;&gt;public&amp;nbsp;class&amp;nbsp;CreateNamedThreadsWithBuilders&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;static&amp;nbsp;void&amp;nbsp;main(String[]&amp;nbsp;args)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread.Builder&amp;nbsp;builder&amp;nbsp;=
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread.ofVirtual().name(&amp;quot;worker-&amp;quot;,&amp;nbsp;0);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Runnable&amp;nbsp;task&amp;nbsp;=&amp;nbsp;()&amp;nbsp;-&amp;gt;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&amp;quot;Thread&amp;nbsp;ID:&amp;nbsp;&amp;quot;&amp;nbsp;+
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread.currentThread().threadId());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;name&amp;nbsp;&amp;quot;worker-0&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread&amp;nbsp;t1&amp;nbsp;=&amp;nbsp;builder.start(task);&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;t1.join();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(t1.getName()&amp;nbsp;+&amp;nbsp;&amp;quot;&amp;nbsp;terminated&amp;quot;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;name&amp;nbsp;&amp;quot;worker-1&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread&amp;nbsp;t2&amp;nbsp;=&amp;nbsp;builder.start(task);&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;t2.join();&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(t2.getName()&amp;nbsp;+&amp;nbsp;&amp;quot;&amp;nbsp;terminated&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;catch&amp;nbsp;(InterruptedException&amp;nbsp;e)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;或者&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-java&quot; highlighted=&quot;true&quot; style=&quot;margin: 10px auto; padding: 0px; background-color: rgb(255, 255, 255); transition-duration: 0.2s; transition-property: background, font-size, border-color, border-radius, border-width, padding, margin, color; overflow: auto; color: rgb(17, 17, 17); font-size: 13px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&amp;nbsp;(ExecutorService&amp;nbsp;myExecutor&amp;nbsp;=
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Executors.newVirtualThreadPerTaskExecutor())&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Future&amp;lt;?&amp;gt;&amp;nbsp;future&amp;nbsp;=
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myExecutor.submit(()&amp;nbsp;-&amp;gt;&amp;nbsp;System.out.println(&amp;quot;Running&amp;nbsp;thread&amp;quot;));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;future.get();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&amp;quot;Task&amp;nbsp;completed&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;catch&amp;nbsp;(InterruptedException&amp;nbsp;|&amp;nbsp;ExecutionException&amp;nbsp;e)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;以上是Java20文档的用法，实际使用时我发现还可以这样：&lt;/strong&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-java&quot; highlighted=&quot;true&quot; style=&quot;margin: 10px auto; padding: 0px; background-color: rgb(255, 255, 255); transition-duration: 0.2s; transition-property: background, font-size, border-color, border-radius, border-width, padding, margin, color; overflow: auto; color: rgb(17, 17, 17); font-size: 13px;&quot;&gt;&amp;nbsp;Thread.startVirtualThread(()&amp;nbsp;-&amp;gt;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;do&amp;nbsp;something
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/pre&gt;&lt;h3 id=&quot;平台线程和虚拟线程对比测试&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 16px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;平台线程和虚拟线程对比测试&lt;/h3&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;为了测试对比，我建了一个项目&lt;/p&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;img src=&quot;https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2023-09-22-20-06bLo9hZRaEcFkonp.png&quot; alt=&quot;image.png&quot; loading=&quot;lazy&quot; class=&quot;medium-zoom-image&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; max-width: 100%; height: auto; cursor: zoom-in; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s !important;&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;初步对比，和官网描述一致，计算密集型场景差别不大，IO密集型场景有明显改善&lt;/strong&gt;：&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;虚拟线程100个，IO读文件&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;&lt;img src=&quot;https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2023-09-27-20-218AWBVO978c8bShr.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; class=&quot;medium-zoom-image&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; max-width: 100%; height: auto; cursor: zoom-in; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s !important;&quot;/&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;平台线程100个，IO读文件&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;&lt;img src=&quot;https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2023-09-27-20-22A8jlSCSj27sEayCG.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; class=&quot;medium-zoom-image&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; max-width: 100%; height: auto; cursor: zoom-in; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s !important;&quot;/&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;虚拟线程100个，Get请求百度首页&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;&lt;img src=&quot;https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2023-09-27-20-22TaZuSkUcAvX7se9.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; class=&quot;medium-zoom-image&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; max-width: 100%; height: auto; cursor: zoom-in; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s !important;&quot;/&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;平台线程100个，Get请求百度首页&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;&lt;img src=&quot;https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2023-09-27-20-22cjFuetKsygTmm6P.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; class=&quot;medium-zoom-image&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; max-width: 100%; height: auto; cursor: zoom-in; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s !important;&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;但是由于是本地测试，且用例比较简陋，无法完全得出准确结论。&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;日后大家有实际IO密集性多线程场景可以实际感受下。&lt;/p&gt;&lt;h3 id=&quot;线程池忘了它吧&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 16px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;线程池？忘了它吧&lt;/h3&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;开发人员通常会将应用程序代码从基于线程池的传统 ExecutorService 迁移到虚拟线程每任务 ExecutorService。&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;线程池和所有资源池一样，旨在共享昂贵的资源，&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;但虚拟线程并不昂贵，而且永远不需要将它们池化。&lt;/p&gt;&lt;h1 id=&quot;七一颗语法糖java21-新特性record-patterns&quot; style=&quot;margin: 10px 0px; padding: 0px; font-size: 28px; line-height: 1.5; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;七、一颗语法糖？Java21 新特性：Record Patterns&lt;/h1&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;一个例子感受一下新特性：Record Patterns&lt;br style=&quot;margin: 0px; padding: 0px;&quot;/&gt;before：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-java&quot; highlighted=&quot;true&quot; style=&quot;margin: 10px auto; padding: 0px; background-color: rgb(255, 255, 255); transition-duration: 0.2s; transition-property: background, font-size, border-color, border-radius, border-width, padding, margin, color; overflow: auto; color: rgb(17, 17, 17); font-size: 13px;&quot;&gt;static&amp;nbsp;void&amp;nbsp;printSum(Object&amp;nbsp;obj)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(obj&amp;nbsp;instanceof&amp;nbsp;Point&amp;nbsp;p)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;x&amp;nbsp;=&amp;nbsp;p.x();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;y&amp;nbsp;=&amp;nbsp;p.y();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(x+y);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;after:&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-java&quot; highlighted=&quot;true&quot; style=&quot;margin: 10px auto; padding: 0px; background-color: rgb(255, 255, 255); transition-duration: 0.2s; transition-property: background, font-size, border-color, border-radius, border-width, padding, margin, color; overflow: auto; color: rgb(17, 17, 17); font-size: 13px;&quot;&gt;static&amp;nbsp;void&amp;nbsp;printSum(Object&amp;nbsp;obj)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(obj&amp;nbsp;instanceof&amp;nbsp;Point(int&amp;nbsp;x,&amp;nbsp;int&amp;nbsp;y))&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(x+y);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;参考：&lt;a href=&quot;https://my.oschina.net/didispace/blog/10112428&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(0, 102, 204);&quot;&gt;https://my.oschina.net/didispace/blog/10112428&lt;/a&gt;&lt;/p&gt;&lt;blockquote style=&quot;margin: 10px 0px; padding: 5px 10px; background-image: none; border-top: none; border-right: none; border-bottom: none; border-left: 3px solid rgb(226, 223, 223); border-image: initial; color: rgb(85, 85, 85); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 13px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;作者：京东科技 周波&lt;/p&gt;&lt;p style=&quot;margin: 10px auto; padding: 0px;&quot;&gt;来源：京东云开发者社区&amp;nbsp; 转载请注明来源&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br style=&quot;text-wrap: wrap;&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Mon, 09 Oct 2023 14:24:53 +0800</pubDate></item></channel></rss>