{"id":2915,"date":"2023-08-28T10:09:56","date_gmt":"2023-08-28T02:09:56","guid":{"rendered":"https:\/\/xinchewhd.com.cn\/?p=2915"},"modified":"2023-08-28T10:09:56","modified_gmt":"2023-08-28T02:09:56","slug":"jvm%e5%85%a5%e9%97%a8","status":"publish","type":"post","link":"https:\/\/xinchewhd.com.cn\/index.php\/uncategorized\/jvm%e5%85%a5%e9%97%a8\/","title":{"rendered":"JVM\u5165\u95e8"},"content":{"rendered":"<link rel=\"stylesheet\" href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/editerView\/kdoc_html_views-1a98987dfd.css\">\n<link rel=\"stylesheet\" href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/editerView\/ck_htmledit_views-25cebea3f9.css\">\n<div id=\"content_views\" class=\"markdown_views prism-atom-one-light\">\n <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"display: none;\"> <path stroke-linecap=\"round\" d=\"M5,0 0,2.5 5,5z\" id=\"raphael-marker-block\" style=\"-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\"><\/path> \n <\/svg> <\/p>\n<h1><a id=\"JVM_1\"><\/a>JVM<\/h1>\n<h1><a id=\"JVM_3\"><\/a>\u4e00\u3001JVM\u6982\u8ff0<\/h1>\n<h2><a id=\"_4\"><\/a>\u67b6\u6784\u5e08\u6bcf\u5929\u5728\u60f3\u4ec0\u4e48\uff1f<\/h2>\n<ul>\n<li>\u5982\u4f55\u8ba9\u7cfb\u7edf\u66f4\u5feb\uff1f<\/li>\n<li>\u5982\u4f55\u907f\u514d\u7cfb\u7edf\u51fa\u73b0\u74f6\u9888\uff1f<\/li>\n<\/ul>\n<p><strong>\u77e5\u4e4e\u6709\u6761\u5e16\u5b50\uff1a\u5e94\u8be5\u5982\u4f55\u770b\u5f85\u62db\u8058\uff0c\u5e74\u85aa\u76f4\u901a50\u4e07\uff1f<\/strong><\/p>\n<ol>\n<li>\u6027\u80fd\u4f18\u5316\uff0c\u91cd\u6784\uff0c\u4fdd\u8bc1\u5e73\u53f0\u6027\u80fd\u548c\u7a33\u5b9a\u6027<\/li>\n<li>\u6839\u636e\u4e1a\u52a1\u573a\u666f\u548c\u9700\u6c42\uff0c\u51b3\u5b9a\u6280\u672f\u65b9\u5411\uff0c\u6280\u672f\u9009\u578b<\/li>\n<li>\u80fd\u591f\u72ec\u7acb\u67b6\u6784\u4e0e\u8bbe\u8ba1\u6d77\u91cf\u6570\u636e\u4e0b\u7684\u9ad8\u5e76\u53d1\u5206\u5e03\u5f0f\u89e3\u51b3\u65b9\u6848<\/li>\n<li>\u6838\u5fc3\u529f\u80fd\u7684\u67b6\u6784\u4e0e\u4ee3\u7801\u7f16\u5199<\/li>\n<li>\u5206\u6790\u7cfb\u7edf\u74f6\u9888\uff0c\u89e3\u51b3\u5404\u79cd\u7591\u96be\u6742\u75c7\uff0c\u6027\u80fd\u8c03\u4f18\u7b49<\/li>\n<\/ol>\n<h2><a id=\"JVM_21\"><\/a>\u4e3a\u4ec0\u4e48\u8981\u5b66\u4e60JVM<\/h2>\n<ul>\n<li>\u9762\u8bd5\u7684\u9700\u8981\uff08BATJ\u3001TMD\u3001PKQ\u7b49\u9762\u8bd5\u90fd\u7231\u95ee\uff09<\/li>\n<li>\u4e2d\u9ad8\u7ea7\u7a0b\u5e8f\u5458\u5fc5\u5907\u6280\u80fd\n<ul>\n<li>\u9879\u76ee\u8c03\u4f18\u7684\u9700\u6c42<\/li>\n<\/ul>\n<\/li>\n<li>\u6781\u5ba2\u7cbe\u795e\n<ul>\n<li>\u6bd4\u5982\uff1a\u5783\u573e\u56de\u6536\u7b97\u6cd5\u3001JIT\uff08\u53ca\u65f6\u7f16\u8bd1\u5668\uff09\u3001\u5e95\u5c42\u539f\u7406<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2><a id=\"JVM_31\"><\/a>JVM\u662f\u4e00\u79cd\u865a\u62df\u673a\u8bbe\u5907\u7684\u89c4\u8303\uff0c\u662f\u865a\u6784\u51fa\u6765\u7684\u4e00\u53f0\u673a\u5668<\/h2>\n<ul>\n<li>\u6807\u51c6\uff1aThe Java Virtual Machine Specification<\/li>\n<li>\u5728Oracle\u5b98\u7f51<a href=\"https:\/\/docs.oracle.com\/javase\/specs\/index.html\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/docs.oracle.com\/javase\/specs\/index.html<\/a> \u53ef\u4ee5\u514d\u8d39\u4e0b\u8f7d\u5404\u4e2aJDK\u7248\u672c\u7684JVM\u89c4\u8303\u8981\u6c42<\/li>\n<\/ul>\n<h3><a id=\"JVM_40\"><\/a>\u5404\u4e2a\u5927\u5382\u90fd\u6709\u81ea\u5df1\u7684JVM\u7684\u5b9e\u73b0<\/h3>\n<ol>\n<li>HotSpot\u662fOracle\u5b98\u65b9\u5b9e\u73b0<\/li>\n<li>J9\u662fIBM\u7684\u5b9e\u73b0<\/li>\n<li>Microsoft JVM\u662f\u5fae\u8f6f\u7684\u5b9e\u73b0<\/li>\n<li>Harmony\u662fApache\u7684\u5b9e\u73b0<\/li>\n<li>Azul Zing\u662f\u7b2c\u4e09\u65b9\u516c\u53f8Azul Systems\u5f00\u53d1\u7684\u5546\u4e1a\u6536\u8d39\u865a\u62df\u673a\uff0c\u76ee\u524d\u94f6\u884c\u5728\u7528\u3002\u5b83\u7684\u5783\u573e\u56de\u6536\u5668PGC\u3001C4\u505c\u987f\u65f6\u95f4\u53ef\u63a7\u5236\u572810ms\u5185\u3002Oracle\u6700\u65b0\u7684JDK12\u4e2d\u7684ZGC\u53caShenandoah\u5783\u573e\u56de\u6536\u5668\u5c31\u662f\u53c2\u8003\u7684\u8fd9\u6b3e\uff0c\u4f46\u6548\u679c\u8fd8\u8fdc\u4e0d\u5982\u5b83\u3002\uff08\u4e66P17\uff09<\/li>\n<\/ol>\n<h3><a id=\"JVM_50\"><\/a>\u5982\u4f55\u67e5\u770b\u81ea\u5df1\u7535\u8111\u4f7f\u7528\u7684\u662f\u54ea\u4e00\u6b3eJVM\uff1f<\/h3>\n<p>Win + R -&gt; cmd -&gt; java -version<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/5ac3af865c64c4437b31a3f079160190.png#align=left&amp;display=inline&amp;height=107&amp;name=image.png&amp;originHeight=173&amp;originWidth=1118&amp;size=39274&amp;status=done&amp;style=none&amp;width=690\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/5ac3af865c64c4437b31a3f079160190.png#align=left&amp;display=inline&amp;height=107&amp;name=image.png&amp;originHeight=173&amp;originWidth=1118&amp;size=39274&amp;status=done&amp;style=none&amp;width=690\" alt=\"image.png\"><\/noscript><\/p>\n<h2><a id=\"Java___55\"><\/a>Java \u2014\u2014 \u8de8\u5e73\u53f0\u7684\u8bed\u8a00<\/h2>\n<blockquote>\n<p>write once, run anywhere.<\/p>\n<\/blockquote>\n<h2><a id=\"JVM___58\"><\/a>JVM \u2014\u2014 \u8de8\u8bed\u8a00\u7684\u5e73\u53f0<\/h2>\n<h3><a id=\"Java_59\"><\/a>\u865a\u62df\u673a\u6ca1\u6709\u8bed\u8a00\u503e\u5411\uff0c\u5e76\u4e0d\u4f9d\u8d56Java<\/h3>\n<p>2018\u5e74Oracle\u53d1\u5e03\u7684Graal VM\uff0c\u5728HotSpt\u57fa\u7840\u4e0a\u53d1\u5c55\u51fa\u6765\u7684\u5168\u6808\u865a\u62df\u673a\uff0c\u53ef\u4ee5\u4f5c\u4e3a\u201c\u4efb\u4f55\u8bed\u8a00\u201d\u7684\u8fd0\u884c\u5e73\u53f0\u4f7f\u7528\u3002<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/afde62d1605395058c41051e68754345.png#align=left&amp;display=inline&amp;height=202&amp;name=image.png&amp;originHeight=1112&amp;originWidth=1757&amp;size=1136448&amp;status=done&amp;style=none&amp;width=319\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/afde62d1605395058c41051e68754345.png#align=left&amp;display=inline&amp;height=202&amp;name=image.png&amp;originHeight=1112&amp;originWidth=1757&amp;size=1136448&amp;status=done&amp;style=none&amp;width=319\" alt=\"image.png\"><\/noscript><br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/d34a7284fdb844f69f2f18e5f238d547.png#align=left&amp;display=inline&amp;height=223&amp;name=image.png&amp;originHeight=958&amp;originWidth=934&amp;size=894678&amp;status=done&amp;style=none&amp;width=217\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/d34a7284fdb844f69f2f18e5f238d547.png#align=left&amp;display=inline&amp;height=223&amp;name=image.png&amp;originHeight=958&amp;originWidth=934&amp;size=894678&amp;status=done&amp;style=none&amp;width=217\" alt=\"image.png\"><\/noscript><\/p>\n<h3><a id=\"imagepnghttpsimgblogcsdnimgcnimg_convert15df4d94d1331934243b94b7c42f8d06pngalignleftdisplayinlineheight159nameimagepngoriginHeight1090originWidth1730size464202statusdonestylenonewidth253_63\"><\/a><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/15df4d94d1331934243b94b7c42f8d06.png#align=left&amp;display=inline&amp;height=159&amp;name=image.png&amp;originHeight=1090&amp;originWidth=1730&amp;size=464202&amp;status=done&amp;style=none&amp;width=253\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/15df4d94d1331934243b94b7c42f8d06.png#align=left&amp;display=inline&amp;height=159&amp;name=image.png&amp;originHeight=1090&amp;originWidth=1730&amp;size=464202&amp;status=done&amp;style=none&amp;width=253\" alt=\"image.png\"><\/noscript><\/h3>\n<h3><a id=\"JVMJREJDK_64\"><\/a>JVM\u3001JRE\u4e0eJDK\u4e09\u8005\u7684\u5173\u7cfb<\/h3>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/332939a15e27bd1d8606b43b5c7c7346.png#align=left&amp;display=inline&amp;height=138&amp;name=image.png&amp;originHeight=730&amp;originWidth=1310&amp;size=191809&amp;status=done&amp;style=none&amp;width=247\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/332939a15e27bd1d8606b43b5c7c7346.png#align=left&amp;display=inline&amp;height=138&amp;name=image.png&amp;originHeight=730&amp;originWidth=1310&amp;size=191809&amp;status=done&amp;style=none&amp;width=247\" alt=\"image.png\"><\/noscript><\/p>\n<h4><a id=\"JDK_68\"><\/a>JDK<\/h4>\n<p>\u6211\u4eec\u628aJava\u7a0b\u5e8f\u8bbe\u8ba1\u8bed\u8a00\u3001Java\u865a\u62df\u673a\u3001Java\u7c7b\u5e93\u8fd9\u4e09\u90e8\u5206\u7edf\u79f0\u4e3aJDK<\/p>\n<p>JDK\u662f\u7528\u4e8e\u652f\u6301Java\u7a0b\u5e8f<strong>\u5f00\u53d1\u6700\u5c0f\u73af\u5883<\/strong><\/p>\n<h4><a id=\"JRE_75\"><\/a>JRE<\/h4>\n<p>\u628aJava\u7c7b\u5e93\u4e2d\u7684JavaSE API\u5b50\u96c6\u548cJava\u865a\u62df\u673a\u7edf\u79f0\u4e3aJRE<br \/> JRE\u662f\u652f\u6301Java\u7a0b\u5e8f<strong>\u8fd0\u884c\u6807\u51c6\u73af\u5883<\/strong>\uff08\u4e66P3<\/p>\n<h3><a id=\"Java_80\"><\/a>Java\u4ece\u7f16\u7801\u5230\u6267\u884c<\/h3>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/8c23edcd7e2e703b406b21b33ce8c779.png#align=left&amp;display=inline&amp;height=251&amp;name=image.png&amp;originHeight=1214&amp;originWidth=2711&amp;size=3932759&amp;status=done&amp;style=none&amp;width=560\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/8c23edcd7e2e703b406b21b33ce8c779.png#align=left&amp;display=inline&amp;height=251&amp;name=image.png&amp;originHeight=1214&amp;originWidth=2711&amp;size=3932759&amp;status=done&amp;style=none&amp;width=560\" alt=\"image.png\"><\/noscript><\/p>\n<h3><a id=\"JVM_86\"><\/a>JVM\u6574\u4f53\u67b6\u6784<\/h3>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/bef16519da75d3a85cfe6c9ae1ce9757.png#align=left&amp;display=inline&amp;height=809&amp;originHeight=809&amp;originWidth=890&amp;size=0&amp;status=done&amp;style=none&amp;width=890\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/bef16519da75d3a85cfe6c9ae1ce9757.png#align=left&amp;display=inline&amp;height=809&amp;originHeight=809&amp;originWidth=890&amp;size=0&amp;status=done&amp;style=none&amp;width=890\" alt=\"\"><\/noscript><\/p>\n<h1><a id=\"_88\"><\/a><\/h1>\n<h3><a id=\"Java_89\"><\/a>Java\u7f16\u8bd1\u5668\u7684\u4e24\u79cd\u6307\u4ee4\u96c6\u67b6\u6784\u6a21\u578b<\/h3>\n<p>Java\u7f16\u8bd1\u5668\u7684\u6307\u4ee4\u96c6\u67b6\u6784\u662f\u4e00\u79cd<strong>\u57fa\u4e8e\u6808\u7684\u6307\u4ee4\u96c6\u67b6\u6784<\/strong>\u3002\u53e6\u5916\u4e00\u79cd\u6307\u4ee4\u96c6\u67b6\u6784\u5219\u662f<strong>\u57fa\u4e8e\u5bc4\u5b58\u5668\u7684\u6307\u4ee4\u96c6\u67b6\u6784<\/strong>\u3002<\/p>\n<p>\u4e24\u8005\u533a\u522b\uff1a<\/p>\n<h3><a id=\"HotSpot_94\"><\/a>\u57fa\u4e8e\u6808\u7684\u6307\u4ee4\u96c6\u67b6\u6784\uff08HotSpot\uff09\u7279\u70b9\uff1a<\/h3>\n<ol>\n<li>\u8bbe\u8ba1\u7b80\u5355<\/li>\n<li>\u907f\u5f00\u5bc4\u5b58\u5668\u7684\u5206\u914d\u96be\u9898\uff1a\u4f7f\u7528\u96f6\u5730\u5740\u6307\u4ee4\u65b9\u5f0f\u5206\u914d<\/li>\n<li>\u6307\u4ee4\u6d41\u4e2d\u7684\u6307\u4ee4\u5927\u90e8\u5206\u662f\u96f6\u5730\u5740\u6307\u4ee4\uff0c\u5176\u6267\u884c\u8fc7\u7a0b\u4f9d\u8d56\u4e8e\u64cd\u4f5c\u6808\u3002\u6307\u4ee4\u96c6\u66f4\u5c0f\uff0c\u7f16\u8bd1\u5668\u5bb9\u6613\u5b9e\u73b0<\/li>\n<li>\u4e0d\u9700\u8981\u786c\u4ef6\u652f\u6301\uff0c\u79fb\u690d\u6027\u66f4\u597d\uff0c\u5b9e\u73b0\u8de8\u5e73\u53f0<\/li>\n<\/ol>\n<h3><a id=\"_100\"><\/a>\u57fa\u4e8e\u5bc4\u5b58\u5668\u7684\u6307\u4ee4\u96c6\u67b6\u6784\u7279\u70b9\uff1a<\/h3>\n<ol>\n<li>\u5178\u578b\u7684\u662fx86\u7684\u4e8c\u8fdb\u5236\u6307\u4ee4\u96c6\uff1a\u6bd4\u5982\u4f20\u7edfPC\u4ee5\u53caAndroid\u7684Davlik\u865a\u62df\u673a\u3002<\/li>\n<li>\u6307\u4ee4\u96c6\u67b6\u6784\u5219\u5b8c\u5168\u4f9d\u8d56\u786c\u4ef6\uff0c\u4e0e\u786c\u4ef6\u7684\u8026\u5408\u5ea6\u9ad8\uff0c\u53ef\u79fb\u690d\u6027\u5dee<\/li>\n<li>\u6027\u80fd\u4f18\u79c0\uff0c\u6267\u884c\u9ad8\u6548<\/li>\n<li>\u66f4\u5c11\u7684\u6307\u4ee4\u53bb\u5b8c\u6210\u4e00\u9879\u64cd\u4f5c<\/li>\n<li>\u5728\u5927\u90e8\u5206\u60c5\u51b5\u4e0b\uff0c\u57fa\u4e8e\u5bc4\u5b58\u5668\u67b6\u6784\u7684\u6307\u4ee4\u96c6\u5f80\u5f80\u90fd\u4ee5\u4e00\u5730\u5740\u6307\u4ee4\u3001\u4e8c\u5730\u5740\u6307\u4ee4\u548c\u4e09\u5730\u5740\u6307\u4ee4\u4e3a\u4e3b\uff0c\u800c\u57fa\u4e8e\u6808\u5f0f\u67b6\u6784\u7684\u6307\u4ee4\u96c6\u5374\u662f\u4ee5\u96f6\u5730\u5740\u6307\u4ee4\u4e3a\u4e3b<\/li>\n<\/ol>\n<h3><a id=\"_110\"><\/a>\u4e24\u79cd\u67b6\u6784\u7684\u4e3e\u4f8b\uff1a<\/h3>\n<p>\u540c\u6837\u6267\u884c2+3\u8fd9\u79cd\u903b\u8f91\u64cd\u4f5c\uff0c\u5176\u6307\u4ee4\u5206\u522b\u5982\u4e0b\uff1a<\/p>\n<ul>\n<li><strong>\u57fa\u4e8e\u6808\u7684\u8ba1\u7b97\u6d41\u7a0b\uff08\u4ee5Java\u865a\u62df\u673a\u4e3a\u4f8b\uff09\uff1a<\/strong><\/li>\n<\/ul>\n<pre><code class=\"prism language-java\">iconst_2 <span class=\"token comment\">\/\/\u5e38\u91cf2\u5165\u6808<\/span>\nistore_1\niconst_3 <span class=\"token comment\">\/\/ \u5e38\u91cf3\u5165\u6808<\/span>\nistore_2\niload_1\niload_2\niadd <span class=\"token comment\">\/\/\u5e38\u91cf2\/3\u51fa\u6808\uff0c\u6267\u884c\u76f8\u52a0<\/span>\nistore_0 <span class=\"token comment\">\/\/ \u7ed3\u679c5\u5165\u6808<\/span>\n<\/code><\/pre>\n<ul>\n<li>\n<p>\u9700\u89818\u4e2a\u6307\u4ee4<\/p>\n<\/li>\n<li>\n<p><strong>\u800c\u57fa\u4e8e\u5bc4\u5b58\u5668\u7684\u8ba1\u7b97\u6d41\u7a0b<\/strong><\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"prism language-java\">mov eax<span class=\"token punctuation\">,<\/span><span class=\"token number\">2<\/span> <span class=\"token comment\">\/\/\u5c06eax\u5bc4\u5b58\u5668\u7684\u503c\u8bbe\u4e3a1<\/span>\nadd eax<span class=\"token punctuation\">,<\/span><span class=\"token number\">3<\/span> <span class=\"token comment\">\/\/\u4f7feax\u5bc4\u5b58\u5668\u7684\u503c\u52a03<\/span>\n<\/code><\/pre>\n<ul>\n<li>\u9700\u89812\u4e2a\u6307\u4ee4<\/li>\n<\/ul>\n<h1><a id=\"_139\"><\/a>\u4e8c\u3001\u7c7b\u52a0\u8f7d\u5b50\u7cfb\u7edf<\/h1>\n<h3><a id=\"_142\"><\/a>\u6982\u8ff0\u56fe<\/h3>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/8ce571790b57a0cdd35e8c426c38c1c9.png#align=left&amp;display=inline&amp;height=215&amp;name=image.png&amp;originHeight=682&amp;originWidth=1821&amp;size=469243&amp;status=done&amp;style=none&amp;width=573\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/8ce571790b57a0cdd35e8c426c38c1c9.png#align=left&amp;display=inline&amp;height=215&amp;name=image.png&amp;originHeight=682&amp;originWidth=1821&amp;size=469243&amp;status=done&amp;style=none&amp;width=573\" alt=\"image.png\"><\/noscript><\/p>\n<h2><a id=\"_144\"><\/a>\u7c7b\u52a0\u8f7d\u5668\u5b50\u7cfb\u7edf\u4f5c\u7528<\/h2>\n<ol>\n<li>\n<p>\u7c7b\u52a0\u8f7d\u5668\u53ea\u8d1f\u8d23\u5b57\u8282\u7801\u6587\u4ef6\u7684\u52a0\u8f7d<\/p>\n<\/li>\n<li>\n<p>\u5b57\u8282\u7801\u6587\u4ef6\u80fd\u5426\u8fd0\u884c\u53d6\u51b3\u4e8e\u6267\u884c\u5f15\u64ce<\/p>\n<\/li>\n<li>\n<p><strong>\u52a0\u8f7d\u7684\u7c7b\u4fe1\u606f\u5b58\u653e\u5728\u79f0\u4e3a\u65b9\u6cd5\u533a\u7684\u5185\u5b58\u7a7a\u95f4<\/strong>\u3002\u9664\u4e86\u7c7b\u4fe1\u606f\uff0c\u65b9\u6cd5\u533a\u4e2d\u8fd8\u5b58\u653e<strong>\u8fd0\u884c\u65f6\u5e38\u91cf\u6c60\u4fe1\u606f<\/strong>\uff0c\u53ef\u80fd\u8fd8\u5305\u62ec<strong>\u5b57\u7b26\u4e32\u5b57\u9762\u91cf\u548c\u6570\u5b57\u5e38\u91cf<\/strong><\/p>\n<\/li>\n<\/ol>\n<h2><a id=\"_154\"><\/a>\u7c7b\u7684\u52a0\u8f7d\u8fc7\u7a0b<\/h2>\n<p>\u5b8c\u6574\u7684\u6d41\u7a0b\u56fe\u5982\u4e0b\u6240\u793a\uff1a<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/48d1b4358ca49169f0899a5e5ec0a966.png#align=left&amp;display=inline&amp;height=192&amp;name=image.png&amp;originHeight=609&amp;originWidth=1871&amp;size=1262557&amp;status=done&amp;style=none&amp;width=590\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/48d1b4358ca49169f0899a5e5ec0a966.png#align=left&amp;display=inline&amp;height=192&amp;name=image.png&amp;originHeight=609&amp;originWidth=1871&amp;size=1262557&amp;status=done&amp;style=none&amp;width=590\" alt=\"image.png\"><\/noscript><\/p>\n<h3><a id=\"_159\"><\/a>\u52a0\u8f7d\u9636\u6bb5<\/h3>\n<p><strong>\u52a0\u8f7d\uff1a<\/strong><\/p>\n<ol>\n<li>\n<p>\u901a\u8fc7\u7c7b\u7684\u5168\u9650\u5b9a\u540d\u83b7\u53d6\u5b9a\u4e49\u6b64\u7c7b\u7684\u4e8c\u8fdb\u5236\u5b57\u8282\u6d41\uff08<strong>\u5168\u9650\u5b9a\u540d\u5176\u5b9e\u5c31\u662f\u5305+\u7c7b\u540d<\/strong>\uff09<\/p>\n<\/li>\n<li>\n<p>\u5c06\u8fd9\u4e2a\u5b57\u8282\u6d41\u6240\u4ee3\u8868\u7684\u9759\u6001\u5b58\u50a8\u7ed3\u6784\u8f6c\u5316\u4e3a\u65b9\u6cd5\u533a\u7684\u8fd0\u884c\u65f6\u6570\u636e\u7ed3\u6784<\/p>\n<\/li>\n<li>\n<p>\u5728\u5185\u5b58\u4e2d\u751f\u6210\u4e00\u4e2a\u4ee3\u8868\u8fd9\u4e2a\u7c7b\u7684java.lang.Class\u5bf9\u8c61\uff0c\u4f5c\u4e3a\u65b9\u6cd5\u533a\u8fd9\u4e2a\u7c7b\u7684\u5404\u79cd\u6570\u636e\u7684\u8bbf\u95ee\u5165\u53e3<\/p>\n<\/li>\n<\/ol>\n<p>**<\/p>\n<h3><a id=\"_170\"><\/a>\u94fe\u63a5\u9636\u6bb5<\/h3>\n<p>\u94fe\u63a5\u5206\u4e3a\u4e09\u4e2a\u5b50\u9636\u6bb5\uff1a\u9a8c\u8bc1 -&gt; \u51c6\u5907 -&gt; \u89e3\u6790<\/p>\n<h4><a id=\"Verify_174\"><\/a>\u9a8c\u8bc1(Verify)<\/h4>\n<ol>\n<li>\u76ee\u7684\u5728\u4e8e\u786e\u4fddClass\u6587\u4ef6\u7684\u5b57\u8282\u6d41\u4e2d\u5305\u542b\u4fe1\u606f\u7b26\u5408\u5f53\u524d\u865a\u62df\u673a\u8981\u6c42\uff0c\u4fdd\u8bc1\u88ab\u52a0\u8f7d\u7c7b\u7684\u6b63\u786e\u6027\uff0c\u4e0d\u4f1a\u5371\u5bb3\u865a\u62df\u673a\u81ea\u8eab\u5b89\u5168<\/li>\n<li>\u4e3b\u8981\u5305\u62ec\u56db\u79cd\u9a8c\u8bc1\uff0c\u6587\u4ef6\u683c\u5f0f\u9a8c\u8bc1\uff0c\u5143\u6570\u636e\u9a8c\u8bc1\uff0c\u5b57\u8282\u7801\u9a8c\u8bc1\uff0c\u7b26\u53f7\u5f15\u7528\u9a8c\u8bc1**<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/dd2e78fbf43b1b768f307f9826bf0e53.png#align=left&amp;display=inline&amp;height=429&amp;name=image.png&amp;originHeight=1064&amp;originWidth=2299&amp;size=266979&amp;status=done&amp;style=none&amp;width=926\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/dd2e78fbf43b1b768f307f9826bf0e53.png#align=left&amp;display=inline&amp;height=429&amp;name=image.png&amp;originHeight=1064&amp;originWidth=2299&amp;size=266979&amp;status=done&amp;style=none&amp;width=926\" alt=\"image.png\"><\/noscript><\/p>\n<h4><a id=\"Prepare_180\"><\/a>\u51c6\u5907(Prepare)<\/h4>\n<ol>\n<li>\u4e3a\u7c7b\u53d8\u91cf\uff08static\u53d8\u91cf\uff09\u5206\u914d\u5185\u5b58\u5e76\u4e14\u8bbe\u7f6e\u8be5\u7c7b\u53d8\u91cf\u7684\u9ed8\u8ba4\u521d\u59cb\u503c\uff0c\u5373\u96f6\u503c<\/li>\n<li>\u8fd9\u91cc\u4e0d\u5305\u542b\u7528final\u4fee\u9970\u7684static\uff0c\u56e0\u4e3a<strong>final\u5728\u7f16\u8bd1\u9636\u6bb5\u5c31\u4f1a\u5206\u914d\u597d\u4e86\u9ed8\u8ba4\u503c<\/strong>\uff0c\u51c6\u5907\u9636\u6bb5\u4f1a\u6309\u7167\u7a0b\u5e8f\u5458\u7ed9\u7684\u503c\u663e\u5f0f\u8fdb\u884c\u521d\u59cb\u5316<\/li>\n<li>**\u6ce8\u610f\uff1a**\u8fd9\u91cc\u4e0d\u4f1a\u4e3a\u5b9e\u4f8b\u53d8\u91cf\u5206\u914d\u521d\u59cb\u5316\uff0c\u7c7b\u53d8\u91cf\u4f1a\u5206\u914d\u5728\u65b9\u6cd5\u533a\u4e2d\uff0c\u800c\u5b9e\u4f8b\u53d8\u91cf\u662f\u4f1a\u968f\u7740\u5bf9\u8c61\u4e00\u8d77\u5206\u914d\u5230Java\u5806\u4e2d<\/li>\n<\/ol>\n<p><strong>\u4e3e\u4f8b<\/strong><br \/> \u4ee3\u7801\uff1a\u7c7b\u53d8\u91cfa\u5728\u51c6\u5907\u9636\u6bb5\u4f1a\u8d4b\u521d\u59cb\u503c\uff0c\u4f46\u4e0d\u662f1\uff0c\u800c\u662f0\uff0c\u5728\u521d\u59cb\u5316\u9636\u6bb5\u4f1a\u88ab\u8d4b\u503c\u4e3a 1<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">HelloApp<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">int<\/span> a <span class=\"token operator\">=<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/prepare\uff1aa = 0 ---&gt; initial : a = 1<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<h4><a id=\"imagepnghttpsimgblogcsdnimgcnimg_convertfa20ae0e13b5f83e1425d4bd64aad8e0pngalignleftdisplayinlineheight212nameimagepngoriginHeight378originWidth1210size93877statusdonestylenonewidth679_198\"><\/a><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/fa20ae0e13b5f83e1425d4bd64aad8e0.png#align=left&amp;display=inline&amp;height=212&amp;name=image.png&amp;originHeight=378&amp;originWidth=1210&amp;size=93877&amp;status=done&amp;style=none&amp;width=679\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/fa20ae0e13b5f83e1425d4bd64aad8e0.png#align=left&amp;display=inline&amp;height=212&amp;name=image.png&amp;originHeight=378&amp;originWidth=1210&amp;size=93877&amp;status=done&amp;style=none&amp;width=679\" alt=\"image.png\"><\/noscript><\/h4>\n<h4><a id=\"_199\"><\/a><\/h4>\n<h4><a id=\"Resolve_200\"><\/a>\u89e3\u6790(Resolve)<\/h4>\n<ol>\n<li>\n<p><strong>\u5c06\u5e38\u91cf\u6c60\u5185\u7684\u7b26\u53f7\u5f15\u7528\u8f6c\u6362\u4e3a\u76f4\u63a5\u5f15\u7528\u7684\u8fc7\u7a0b<\/strong><\/p>\n<\/li>\n<li>\n<p>\u5b9e\u9645\u4e0a\uff0c\u89e3\u6790\u64cd\u4f5c\u5f80\u5f80\u4f1a\u4f34\u968f\u7740JVM\u5728\u6267\u884c\u5b8c\u521d\u59cb\u5316\u4e4b\u540e\u518d\u6267\u884c<\/p>\n<\/li>\n<li>\n<p><strong>\u7b26\u53f7\u5f15\u7528<\/strong>\u5c31\u662f\u7528\u4e00\u7ec4\u7b26\u53f7\u6765\u63cf\u8ff0\u6240\u5f15\u7528\u7684\u76ee\u6807\u3002\u7b26\u53f7\u5f15\u7528\u7684\u5b57\u9762\u91cf\u5f62\u5f0f\u660e\u786e\u5b9a\u4e49\u5728\u300ajava\u865a\u62df\u673a\u89c4\u8303\u300b\u7684class\u6587\u4ef6\u683c\u5f0f\u4e2d\u3002<strong>\u76f4\u63a5\u5f15\u7528<\/strong>\u5c31\u662f\u76f4\u63a5\u6307\u5411\u76ee\u6807\u7684\u6307\u9488\u3001\u76f8\u5bf9\u504f\u79fb\u91cf\u6216\u4e00\u4e2a\u95f4\u63a5\u5b9a\u4f4d\u5230\u76ee\u6807\u7684\u53e5\u67c4\u3002<\/p>\n<\/li>\n<li>\n<p>\u89e3\u6790\u52a8\u4f5c\u4e3b\u8981\u9488\u5bf9\u7c7b\u6216\u63a5\u53e3\u3001\u5b57\u6bb5\u3001\u7c7b\u65b9\u6cd5\u3001\u63a5\u53e3\u65b9\u6cd5\u3001\u65b9\u6cd5\u7c7b\u578b\u7b49\u3002\u5bf9\u5e94\u5e38\u91cf\u6c60\u4e2d\u7684CONSTANT Class info\u3001CONSTANT Fieldref info\u3001CONSTANT Methodref info\u7b49**<\/p>\n<\/li>\n<\/ol>\n<h3><a id=\"_212\"><\/a>\u521d\u59cb\u5316\u9636\u6bb5<\/h3>\n<ol>\n<li>\n<p>\u521d\u59cb\u5316\u9636\u6bb5\u5c31\u662f<strong>\u6267\u884c\u7c7b\u6784\u9020\u5668\u65b9\u6cd5<code>&lt;clinit&gt;()<\/code>\u7684\u8fc7\u7a0b<\/strong><\/p>\n<\/li>\n<li>\n<p>\u6b64\u65b9\u6cd5\u4e0d\u9700\u5b9a\u4e49\uff0c\u662fjavac\u7f16\u8bd1\u5668\u81ea\u52a8\u6536\u96c6\u7c7b\u4e2d\u7684<strong>\u6240\u6709\u7c7b\u53d8\u91cf\u7684\u8d4b\u503c\u52a8\u4f5c\u548c\u9759\u6001\u4ee3\u7801\u5757\u4e2d\u7684\u8bed\u53e5\u5408\u5e76\u800c\u6765<\/strong>\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c<strong>\u5f53\u6211\u4eec\u4ee3\u7801\u4e2d\u5305\u542bstatic\u7684\u65f6\u5019\uff0c\u5c31\u4f1a\u6709clinit\u65b9\u6cd5<\/strong><\/p>\n<\/li>\n<li>\n<p><code>&lt;clinit&gt;()<\/code>\u65b9\u6cd5\u4e2d\u7684\u6307\u4ee4\u6309\u8bed\u53e5\u5728\u6e90\u6587\u4ef6\u4e2d\u51fa\u73b0\u7684\u987a\u5e8f\u6267\u884c<\/p>\n<\/li>\n<li>\n<p><code>&lt;clinit&gt;()<\/code>\u4e0d\u540c\u4e8e\u7c7b\u7684\u6784\u9020\u5668\u3002\uff08<strong>\u6784\u9020\u5668\u662f\u865a\u62df\u673a\u89c6\u89d2\u4e0b\u7684<code>&lt;init&gt;()<\/code><\/strong>\uff09<\/p>\n<\/li>\n<li>\n<p>\u82e5\u8be5\u7c7b\u5177\u6709\u7236\u7c7b\uff0cJVM\u4f1a\u4fdd\u8bc1\u5b50\u7c7b\u7684<code>&lt;clinit&gt;()<\/code>\u6267\u884c\u524d\uff0c\u7236\u7c7b\u7684<code>&lt;clinit&gt;()<\/code>\u5df2\u7ecf\u6267\u884c\u5b8c\u6bd5<\/p>\n<\/li>\n<li>\n<p>\u865a\u62df\u673a\u5fc5\u987b\u4fdd\u8bc1\u4e00\u4e2a\u7c7b\u7684<code>&lt;clinit&gt;()<\/code>\u65b9\u6cd5\u5728\u591a\u7ebf\u7a0b\u4e0b\u88ab\u540c\u6b65\u52a0\u9501<\/p>\n<\/li>\n<\/ol>\n<blockquote>\n<p>IDEA \u4e2d\u5b89\u88c5 JClassLib Bytecode viewer \u63d2\u4ef6\uff0c\u53ef\u4ee5\u5f88\u65b9\u4fbf\u7684\u770b\u5b57\u8282\u7801\u3002\u5b89\u88c5\u8fc7\u7a0b\u53ef\u4ee5\u81ea\u884c\u767e\u5ea6<\/p>\n<\/blockquote>\n<h2><a id=\"_229\"><\/a>\u6267\u884c\u7c7b\u7684\u521d\u59cb\u5316\u9636\u6bb5\u65f6\u673a<\/h2>\n<h3><a id=\"_230\"><\/a>\u7c7b\u7684\u4e3b\u52a8\u4f7f\u7528\u548c\u88ab\u52a8\u4f7f\u7528<\/h3>\n<p>Java\u7a0b\u5e8f\u5bf9\u7c7b\u7684\u4f7f\u7528\u65b9\u5f0f\u5206\u4e3a\uff1a\u4e3b\u52a8\u4f7f\u7528\u548c\u88ab\u52a8\u4f7f\u7528\u3002<\/p>\n<p>\u4e3b\u52a8\u4f7f\u7528\uff0c\u53c8\u5206\u4e3a\u4e03\u79cd\u60c5\u51b5\uff1a<\/p>\n<ul>\n<li>\u521b\u5efa\u7c7b\u7684\u5b9e\u4f8b<\/li>\n<li>\u8bbf\u95ee\u67d0\u4e2a\u7c7b\u6216\u63a5\u53e3\u7684\u9759\u6001\u53d8\u91cf\uff0c\u6216\u5bf9\u9759\u6001\u53d8\u91cf\u8d4b\u503c<\/li>\n<li>\u8c03\u7528\u7c7b\u7684\u9759\u6001\u65b9\u6cd5<\/li>\n<li>\u53cd\u5c04\uff08\u6bd4\u5982\uff1aClass.forName\uff08\u201ccom.atguigu.Test\u201d\uff09\uff09<\/li>\n<li>\u521d\u59cb\u5316\u4e00\u4e2a\u7c7b\u7684\u5b50\u7c7b<\/li>\n<li>Java\u865a\u62df\u673a\u542f\u52a8\u65f6\u88ab\u6807\u660e\u4e3a\u542f\u52a8\u7c7b\u7684\u7c7b<\/li>\n<li>JDK7\u5f00\u59cb\u63d0\u4f9b\u7684\u52a8\u6001\u8bed\u8a00\u652f\u6301\uff1ajava.lang.invoke.MethodHandle\u5b9e\u4f8b\u7684\u89e3\u6790\u7ed3\u679cREF_getStatic\u3001REF putStatic\u3001REF_invokeStatic\u53e5\u67c4\u5bf9\u5e94\u7684\u7c7b\u6ca1\u6709\u521d\u59cb\u5316\uff0c\u5219\u521d\u59cb\u5316<\/li>\n<\/ul>\n<p>\u9664\u4e86\u4ee5\u4e0a\u4e03\u79cd\u60c5\u51b5\uff0c\u5176\u4ed6\u4f7f\u7528Java\u7c7b\u7684\u65b9\u5f0f\u90fd\u88ab\u770b\u4f5c\u662f\u5bf9\u7c7b\u7684\u88ab\u52a8\u4f7f\u7528\uff0c\u90fd\u4e0d\u4f1a\u5bfc\u81f4<strong>\u7c7b\u7684\u521d\u59cb\u5316<\/strong>\uff0c\u5373\u4e0d\u4f1a\u6267\u884c\u521d\u59cb\u5316\u9636\u6bb5\uff08\u4e0d\u4f1a\u8c03\u7528 clinit() \u65b9\u6cd5\u548c init() \u65b9\u6cd5\uff09<\/p>\n<h1><a id=\"_249\"><\/a>\u4e09\u3001\u7c7b\u52a0\u8f7d\u5668\u7684\u5206\u7c7b<\/h1>\n<h3><a id=\"_250\"><\/a>\u6982\u8ff0<\/h3>\n<ol>\n<li>\n<p>JVM\u4e25\u683c\u6765\u8bb2\u652f\u6301\u4e24\u79cd\u7c7b\u52a0\u8f7d\u5668 \uff1a\u542f\u52a8\u7c7b\u52a0\u8f7d\u5668\uff08Bootstrap ClassLoader\uff09\u4e0e\u7528\u6237\u81ea\u5b9a\u4e49\u7c7b\u52a0\u8f7d\u5668\uff08User-Defined ClassLoader\uff09<\/p>\n<\/li>\n<li>\n<p>\u4ece\u6982\u5ff5\u4e0a\u6765\u8bb2\uff0c\u81ea\u5b9a\u4e49\u7c7b\u52a0\u8f7d\u5668\u4e00\u822c\u6307\u7684\u662f\u7a0b\u5e8f\u4e2d\u7531\u5f00\u53d1\u4eba\u5458\u81ea\u5b9a\u4e49\u7684\u4e00\u79cd\u7c7b\u52a0\u8f7d\u5668\uff0c\u4f46\u662fJava\u865a\u62df\u673a\u89c4\u8303\u5374\u6ca1\u6709\u8fd9\u4e48\u5b9a\u4e49\uff0c\u800c\u662f<strong>\u5c06\u6240\u6709\u6d3e\u751f\u4e8e\u62bd\u8c61\u7c7bClassLoader\u7684\u7c7b\u52a0\u8f7d\u5668\u90fd\u5212\u5206\u4e3a\u81ea\u5b9a\u4e49\u7c7b\u52a0\u8f7d\u5668<\/strong><\/p>\n<\/li>\n<li>\n<p>\u65e0\u8bba\u7c7b\u52a0\u8f7d\u5668\u7684\u7c7b\u578b\u5982\u4f55\u5212\u5206\uff0c\u5728\u7a0b\u5e8f\u4e2d\u6211\u4eec\u6700\u5e38\u89c1\u7684\u7c7b\u52a0\u8f7d\u5668\u59cb\u7ec8\u53ea\u67093\u4e2a\uff0c\u5982\u4e0b\u6240\u793a<\/p>\n<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/218e265a2ba1619d8b7767c1f6044c8f.png#align=left&amp;display=inline&amp;height=364&amp;name=image.png&amp;originHeight=1019&amp;originWidth=1835&amp;size=728137&amp;status=done&amp;style=none&amp;width=655\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/218e265a2ba1619d8b7767c1f6044c8f.png#align=left&amp;display=inline&amp;height=364&amp;name=image.png&amp;originHeight=1019&amp;originWidth=1835&amp;size=728137&amp;status=done&amp;style=none&amp;width=655\" alt=\"image.png\"><\/noscript><\/p>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">ClassLoaderTest<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n\n        <span class=\"token comment\">\/\/\u83b7\u53d6\u7cfb\u7edf\u7c7b\u52a0\u8f7d\u5668<\/span>\n        ClassLoader systemClassLoader <span class=\"token operator\">=<\/span> ClassLoader<span class=\"token punctuation\">.<\/span><span class=\"token function\">getSystemClassLoader<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>systemClassLoader<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/sun.misc.Launcher$AppClassLoader@18b4aac2<\/span>\n\n        <span class=\"token comment\">\/\/\u83b7\u53d6\u5176\u4e0a\u5c42\uff1a\u6269\u5c55\u7c7b\u52a0\u8f7d\u5668<\/span>\n        ClassLoader extClassLoader <span class=\"token operator\">=<\/span> systemClassLoader<span class=\"token punctuation\">.<\/span><span class=\"token function\">getParent<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>extClassLoader<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/sun.misc.Launcher$ExtClassLoader@1540e19d<\/span>\n\n        <span class=\"token comment\">\/\/\u83b7\u53d6\u5176\u4e0a\u5c42\uff1a\u83b7\u53d6\u4e0d\u5230\u5f15\u5bfc\u7c7b\u52a0\u8f7d\u5668<\/span>\n        ClassLoader bootstrapClassLoader <span class=\"token operator\">=<\/span> extClassLoader<span class=\"token punctuation\">.<\/span><span class=\"token function\">getParent<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>bootstrapClassLoader<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/null<\/span>\n\n        <span class=\"token comment\">\/\/\u5bf9\u4e8e\u7528\u6237\u81ea\u5b9a\u4e49\u7c7b\u6765\u8bf4\uff1a\u9ed8\u8ba4\u4f7f\u7528\u7cfb\u7edf\u7c7b\u52a0\u8f7d\u5668\u8fdb\u884c\u52a0\u8f7d<\/span>\n        ClassLoader classLoader <span class=\"token operator\">=<\/span> ClassLoaderTest<span class=\"token punctuation\">.<\/span><span class=\"token keyword\">class<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">getClassLoader<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>classLoader<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/sun.misc.Launcher$AppClassLoader@18b4aac2<\/span>\n\n        <span class=\"token comment\">\/\/String\u7c7b\u4f7f\u7528\u5f15\u5bfc\u7c7b\u52a0\u8f7d\u5668\u8fdb\u884c\u52a0\u8f7d\u7684\u3002---&gt; Java\u7684\u6838\u5fc3\u7c7b\u5e93\u90fd\u662f\u4f7f\u7528\u5f15\u5bfc\u7c7b\u52a0\u8f7d\u5668\u8fdb\u884c\u52a0\u8f7d\u7684\u3002<\/span>\n        ClassLoader classLoader1 <span class=\"token operator\">=<\/span> String<span class=\"token punctuation\">.<\/span><span class=\"token keyword\">class<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">getClassLoader<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>classLoader1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/null<\/span>\n\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<ul>\n<li>\u6211\u4eec\u5c1d\u8bd5\u83b7\u53d6BootstrapClassLoader\uff0c\u83b7\u53d6\u5230\u7684\u503c\u4e3a null \uff0c\u8fd9\u5e76\u4e0d\u4ee3\u8868BootstrapClassLoader\u52a0\u8f7d\u5668\u4e0d\u5b58\u5728\uff0c<strong>\u56e0\u4e3a\u542f\u52a8\u7c7b\u52a0\u8f7d\u5668\u7528\u7684C\/C++ \u8bed\u8a00\uff0c\u6211\u4eec\u83b7\u53d6\u4e0d\u5230<\/strong><\/li>\n<li>\u4e24\u6b21\u83b7\u53d6\u5e94\u7528\u7c7b\u52a0\u8f7d\u5668\u7684\u503c\u90fd\u76f8\u540c\uff1asun.misc.Launcher$AppClassLoader@18b4aac2 \uff0c\u8fd9\u8bf4\u660e<strong>\u5e94\u7528\u7c7b\u52a0\u8f7d\u5668\u662f\u5168\u5c40\u552f\u4e00\u7684<\/strong><\/li>\n<\/ul>\n<h3><a id=\"_295\"><\/a>\u865a\u62df\u673a\u81ea\u5e26\u7684\u52a0\u8f7d\u5668<\/h3>\n<h4><a id=\"_298\"><\/a>\u542f\u52a8\u7c7b\u52a0\u8f7d\u5668<\/h4>\n<blockquote>\n<p><strong>\u542f\u52a8\u7c7b\u52a0\u8f7d\u5668\uff08\u5f15\u5bfc\u7c7b\u52a0\u8f7d\u5668\uff0cBootstrap ClassLoader\uff09<\/strong><\/p>\n<\/blockquote>\n<ol>\n<li>\u8fd9\u4e2a\u7c7b\u52a0\u8f7d\u4f7f\u7528C\/C++\u8bed\u8a00\u5b9e\u73b0\u7684\uff0c\u5d4c\u5957\u5728JVM\u5185\u90e8<\/li>\n<li>\u5b83\u7528\u6765\u52a0\u8f7dJava\u7684\u6838\u5fc3\u5e93\uff08JAVA_HOME\/jre\/lib\/rt.jar\u3001resources.jar\u6216sun.boot.class.path\u8def\u5f84\u4e0b\u7684\u5185\u5bb9\uff09\uff0c\u7528\u4e8e\u63d0\u4f9bJVM\u81ea\u8eab\u9700\u8981\u7684\u7c7b<\/li>\n<li>\u5e76\u4e0d\u7ee7\u627f\u81eajava.lang.ClassLoader\uff0c\u6ca1\u6709\u7236\u52a0\u8f7d\u5668<\/li>\n<li>\u52a0\u8f7d\u6269\u5c55\u7c7b\u548c\u5e94\u7528\u7a0b\u5e8f\u7c7b\u52a0\u8f7d\u5668\uff0c\u5e76\u4f5c\u4e3a\u4ed6\u4eec\u7684\u7236\u7c7b\u52a0\u8f7d\u5668<\/li>\n<li>\u51fa\u4e8e\u5b89\u5168\u8003\u8651\uff0cBootstrap\u542f\u52a8\u7c7b\u52a0\u8f7d\u5668\u53ea\u52a0\u8f7d\u5305\u540d\u4e3ajava\u3001javax\u3001sun\u7b49\u5f00\u5934\u7684\u7c7b<\/li>\n<\/ol>\n<h4><a id=\"_306\"><\/a><\/h4>\n<h4><a id=\"_307\"><\/a>\u6269\u5c55\u7c7b\u52a0\u8f7d\u5668<\/h4>\n<blockquote>\n<p><strong>\u6269\u5c55\u7c7b\u52a0\u8f7d\u5668\uff08Extension ClassLoader\uff09<\/strong><\/p>\n<\/blockquote>\n<ol>\n<li>Java\u8bed\u8a00\u7f16\u5199\uff0c\u7531sun.misc.Launcher$ExtClassLoader\u5b9e\u73b0<\/li>\n<li>\u6d3e\u751f\u4e8eClassLoader\u7c7b<\/li>\n<li>\u7236\u7c7b\u52a0\u8f7d\u5668\u4e3a\u542f\u52a8\u7c7b\u52a0\u8f7d\u5668<\/li>\n<li>\u4ecejava.ext.dirs\u7cfb\u7edf\u5c5e\u6027\u6240\u6307\u5b9a\u7684\u76ee\u5f55\u4e2d\u52a0\u8f7d\u7c7b\u5e93\uff0c\u6216\u4eceJDK\u7684\u5b89\u88c5\u76ee\u5f55\u7684jre\/lib\/ext\u5b50\u76ee\u5f55\uff08\u6269\u5c55\u76ee\u5f55\uff09\u4e0b\u52a0\u8f7d\u7c7b\u5e93\u3002\u5982\u679c\u7528\u6237\u521b\u5efa\u7684JAR\u653e\u5728\u6b64\u76ee\u5f55\u4e0b\uff0c\u4e5f\u4f1a\u81ea\u52a8\u7531\u6269\u5c55\u7c7b\u52a0\u8f7d\u5668\u52a0\u8f7d<\/li>\n<\/ol>\n<h4><a id=\"_317\"><\/a><strong>\u5e94\u7528\u7a0b\u5e8f\u7c7b\u52a0\u8f7d\u5668<\/strong><\/h4>\n<blockquote>\n<p><strong>\u5e94\u7528\u7a0b\u5e8f\u7c7b\u52a0\u8f7d\u5668\uff08\u4e5f\u79f0\u4e3a\u7cfb\u7edf\u7c7b\u52a0\u8f7d\u5668\uff0cAppClassLoader\uff09<\/strong><\/p>\n<\/blockquote>\n<ol>\n<li>Java\u8bed\u8a00\u7f16\u5199\uff0c\u7531sun.misc.Launchers$AppClassLoader\u5b9e\u73b0<\/li>\n<li>\u6d3e\u751f\u4e8eClassLoader\u7c7b<\/li>\n<li>\u7236\u7c7b\u52a0\u8f7d\u5668\u4e3a\u6269\u5c55\u7c7b\u52a0\u8f7d\u5668<\/li>\n<li>\u5b83\u8d1f\u8d23\u52a0\u8f7d\u73af\u5883\u53d8\u91cfclasspath\u6216\u7cfb\u7edf\u5c5e\u6027java.class.path\u6307\u5b9a\u8def\u5f84\u4e0b\u7684\u7c7b\u5e93<\/li>\n<li>\u8be5\u7c7b\u52a0\u8f7d\u662f\u7a0b\u5e8f\u4e2d\u9ed8\u8ba4\u7684\u7c7b\u52a0\u8f7d\u5668\uff0c\u4e00\u822c\u6765\u8bf4\uff0cJava\u5e94\u7528\u7684\u7c7b\u90fd\u662f\u7531\u5b83\u6765\u5b8c\u6210\u52a0\u8f7d<\/li>\n<li>\u901a\u8fc7classLoader.getSystemclassLoader()\u65b9\u6cd5\u53ef\u4ee5\u83b7\u53d6\u5230\u8be5\u7c7b\u52a0\u8f7d\u5668<\/li>\n<\/ol>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">ClassLoaderTest1<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"**********\u542f\u52a8\u7c7b\u52a0\u8f7d\u5668**************\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token comment\">\/\/\u83b7\u53d6BootstrapClassLoader\u80fd\u591f\u52a0\u8f7d\u7684api\u7684\u8def\u5f84<\/span>\n        URL<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> urLs <span class=\"token operator\">=<\/span> sun<span class=\"token punctuation\">.<\/span>misc<span class=\"token punctuation\">.<\/span>Launcher<span class=\"token punctuation\">.<\/span><span class=\"token function\">getBootstrapClassPath<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">getURLs<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span>URL element <span class=\"token operator\">:<\/span> urLs<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>element<span class=\"token punctuation\">.<\/span><span class=\"token function\">toExternalForm<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token comment\">\/\/\u4ece\u4e0a\u9762\u7684\u8def\u5f84\u4e2d\u968f\u610f\u9009\u62e9\u4e00\u4e2a\u7c7b,\u6765\u770b\u770b\u4ed6\u7684\u7c7b\u52a0\u8f7d\u5668\u662f\u4ec0\u4e48:\u5f15\u5bfc\u7c7b\u52a0\u8f7d\u5668<\/span>\n        ClassLoader classLoader <span class=\"token operator\">=<\/span> Provider<span class=\"token punctuation\">.<\/span><span class=\"token keyword\">class<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">getClassLoader<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>classLoader<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"***********\u6269\u5c55\u7c7b\u52a0\u8f7d\u5668*************\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        String extDirs <span class=\"token operator\">=<\/span> System<span class=\"token punctuation\">.<\/span><span class=\"token function\">getProperty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"java.ext.dirs\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span>String path <span class=\"token operator\">:<\/span> extDirs<span class=\"token punctuation\">.<\/span><span class=\"token function\">split<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\";\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>path<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n\n        <span class=\"token comment\">\/\/\u4ece\u4e0a\u9762\u7684\u8def\u5f84\u4e2d\u968f\u610f\u9009\u62e9\u4e00\u4e2a\u7c7b,\u6765\u770b\u770b\u4ed6\u7684\u7c7b\u52a0\u8f7d\u5668\u662f\u4ec0\u4e48:\u6269\u5c55\u7c7b\u52a0\u8f7d\u5668<\/span>\n        ClassLoader classLoader1 <span class=\"token operator\">=<\/span> CurveDB<span class=\"token punctuation\">.<\/span><span class=\"token keyword\">class<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">getClassLoader<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>classLoader1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/sun.misc.Launcher$ExtClassLoader@1540e19d<\/span>\n\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p><strong>\u8f93\u51fa\u7ed3\u679c<\/strong><\/p>\n<pre><code class=\"prism language-java\"><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span>\u542f\u52a8\u7c7b\u52a0\u8f7d\u5668<span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span>\nfile<span class=\"token operator\">:<\/span><span class=\"token operator\">\/<\/span>C<span class=\"token operator\">:<\/span><span class=\"token operator\">\/<\/span>Program<span class=\"token operator\">%<\/span><span class=\"token number\">20F<\/span>iles<span class=\"token operator\">\/<\/span>Java<span class=\"token operator\">\/<\/span>jdk1<span class=\"token punctuation\">.<\/span><span class=\"token number\">8.0<\/span>_131<span class=\"token operator\">\/<\/span>jre<span class=\"token operator\">\/<\/span>lib<span class=\"token operator\">\/<\/span>resources<span class=\"token punctuation\">.<\/span>jar\nfile<span class=\"token operator\">:<\/span><span class=\"token operator\">\/<\/span>C<span class=\"token operator\">:<\/span><span class=\"token operator\">\/<\/span>Program<span class=\"token operator\">%<\/span><span class=\"token number\">20F<\/span>iles<span class=\"token operator\">\/<\/span>Java<span class=\"token operator\">\/<\/span>jdk1<span class=\"token punctuation\">.<\/span><span class=\"token number\">8.0<\/span>_131<span class=\"token operator\">\/<\/span>jre<span class=\"token operator\">\/<\/span>lib<span class=\"token operator\">\/<\/span>rt<span class=\"token punctuation\">.<\/span>jar\nfile<span class=\"token operator\">:<\/span><span class=\"token operator\">\/<\/span>C<span class=\"token operator\">:<\/span><span class=\"token operator\">\/<\/span>Program<span class=\"token operator\">%<\/span><span class=\"token number\">20F<\/span>iles<span class=\"token operator\">\/<\/span>Java<span class=\"token operator\">\/<\/span>jdk1<span class=\"token punctuation\">.<\/span><span class=\"token number\">8.0<\/span>_131<span class=\"token operator\">\/<\/span>jre<span class=\"token operator\">\/<\/span>lib<span class=\"token operator\">\/<\/span>sunrsasign<span class=\"token punctuation\">.<\/span>jar\nfile<span class=\"token operator\">:<\/span><span class=\"token operator\">\/<\/span>C<span class=\"token operator\">:<\/span><span class=\"token operator\">\/<\/span>Program<span class=\"token operator\">%<\/span><span class=\"token number\">20F<\/span>iles<span class=\"token operator\">\/<\/span>Java<span class=\"token operator\">\/<\/span>jdk1<span class=\"token punctuation\">.<\/span><span class=\"token number\">8.0<\/span>_131<span class=\"token operator\">\/<\/span>jre<span class=\"token operator\">\/<\/span>lib<span class=\"token operator\">\/<\/span>jsse<span class=\"token punctuation\">.<\/span>jar\nfile<span class=\"token operator\">:<\/span><span class=\"token operator\">\/<\/span>C<span class=\"token operator\">:<\/span><span class=\"token operator\">\/<\/span>Program<span class=\"token operator\">%<\/span><span class=\"token number\">20F<\/span>iles<span class=\"token operator\">\/<\/span>Java<span class=\"token operator\">\/<\/span>jdk1<span class=\"token punctuation\">.<\/span><span class=\"token number\">8.0<\/span>_131<span class=\"token operator\">\/<\/span>jre<span class=\"token operator\">\/<\/span>lib<span class=\"token operator\">\/<\/span>jce<span class=\"token punctuation\">.<\/span>jar\nfile<span class=\"token operator\">:<\/span><span class=\"token operator\">\/<\/span>C<span class=\"token operator\">:<\/span><span class=\"token operator\">\/<\/span>Program<span class=\"token operator\">%<\/span><span class=\"token number\">20F<\/span>iles<span class=\"token operator\">\/<\/span>Java<span class=\"token operator\">\/<\/span>jdk1<span class=\"token punctuation\">.<\/span><span class=\"token number\">8.0<\/span>_131<span class=\"token operator\">\/<\/span>jre<span class=\"token operator\">\/<\/span>lib<span class=\"token operator\">\/<\/span>charsets<span class=\"token punctuation\">.<\/span>jar\nfile<span class=\"token operator\">:<\/span><span class=\"token operator\">\/<\/span>C<span class=\"token operator\">:<\/span><span class=\"token operator\">\/<\/span>Program<span class=\"token operator\">%<\/span><span class=\"token number\">20F<\/span>iles<span class=\"token operator\">\/<\/span>Java<span class=\"token operator\">\/<\/span>jdk1<span class=\"token punctuation\">.<\/span><span class=\"token number\">8.0<\/span>_131<span class=\"token operator\">\/<\/span>jre<span class=\"token operator\">\/<\/span>lib<span class=\"token operator\">\/<\/span>jfr<span class=\"token punctuation\">.<\/span>jar\nfile<span class=\"token operator\">:<\/span><span class=\"token operator\">\/<\/span>C<span class=\"token operator\">:<\/span><span class=\"token operator\">\/<\/span>Program<span class=\"token operator\">%<\/span><span class=\"token number\">20F<\/span>iles<span class=\"token operator\">\/<\/span>Java<span class=\"token operator\">\/<\/span>jdk1<span class=\"token punctuation\">.<\/span><span class=\"token number\">8.0<\/span>_131<span class=\"token operator\">\/<\/span>jre<span class=\"token operator\">\/<\/span>classes\nnull\n<span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span>\u6269\u5c55\u7c7b\u52a0\u8f7d\u5668<span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span>\nC<span class=\"token operator\">:<\/span>\\Program Files\\Java\\jdk1<span class=\"token punctuation\">.<\/span><span class=\"token number\">8.0<\/span>_131\\jre\\lib\\ext\nC<span class=\"token operator\">:<\/span>\\Windows\\Sun\\Java\\lib\\ext\nsun<span class=\"token punctuation\">.<\/span>misc<span class=\"token punctuation\">.<\/span>Launcher$ExtClassLoader<span class=\"token annotation punctuation\">@29453f44<\/span>\n<\/code><\/pre>\n<h3><a id=\"_371\"><\/a>\u5173\u4e8e\u81ea\u5b9a\u4e49\u7c7b\u52a0\u8f7d\u5668<\/h3>\n<h4><a id=\"_372\"><\/a>\u4ec0\u4e48\u65f6\u5019\u7528\u5230\u81ea\u5b9a\u4e49\u7c7b\u52a0\u8f7d\u5668\uff1f<\/h4>\n<p>\u5728Java\u7684\u65e5\u5e38\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u4e2d\uff0c\u7c7b\u7684\u52a0\u8f7d\u51e0\u4e4e\u662f\u7531\u4e0a\u8ff03\u79cd\u7c7b\u52a0\u8f7d\u5668\u76f8\u4e92\u914d\u5408\u6267\u884c\u7684\uff0c\u5728\u5fc5\u8981\u65f6\uff0c\u6211\u4eec\u8fd8\u53ef\u4ee5\u81ea\u5b9a\u4e49\u7c7b\u52a0\u8f7d\u5668\uff0c\u6765\u5b9a\u5236\u7c7b\u7684\u52a0\u8f7d\u65b9\u5f0f\u3002\u90a3\u4e3a\u4ec0\u4e48\u8fd8\u9700\u8981\u81ea\u5b9a\u4e49\u7c7b\u52a0\u8f7d\u5668\uff1f<\/p>\n<ol>\n<li>\u9694\u79bb\u52a0\u8f7d\u7c7b\uff08\u6bd4\u5982\u8bf4\u6211\u5047\u8bbe\u73b0\u5728Spring\u6846\u67b6\uff0c\u548cRocketMQ\u6709\u5305\u540d\u8def\u5f84\u5b8c\u5168\u4e00\u6837\u7684\u7c7b\uff0c\u7c7b\u540d\u4e5f\u4e00\u6837\uff0c\u8fd9\u4e2a\u65f6\u5019\u7c7b\u5c31\u51b2\u7a81\u4e86\u3002\u4e0d\u8fc7\u4e00\u822c\u7684\u4e3b\u6d41\u6846\u67b6\u548c\u4e2d\u95f4\u4ef6\u90fd\u4f1a\u81ea\u5b9a\u4e49\u7c7b\u52a0\u8f7d\u5668\uff0c\u5b9e\u73b0\u4e0d\u540c\u7684\u6846\u67b6\uff0c\u4e2d\u95f4\u4ef6\u4e4b\u95f4\u662f\u9694\u79bb\u7684\uff09<\/li>\n<li>\u4fee\u6539\u7c7b\u52a0\u8f7d\u7684\u65b9\u5f0f<\/li>\n<li>\u6269\u5c55\u52a0\u8f7d\u6e90\uff08\u8fd8\u53ef\u4ee5\u8003\u8651\u4ece\u6570\u636e\u5e93\u4e2d\u52a0\u8f7d\u7c7b\uff0c\u8def\u7531\u5668\u7b49\u7b49\u4e0d\u540c\u7684\u5730\u65b9\uff09<\/li>\n<li>\u9632\u6b62\u6e90\u7801\u6cc4\u6f0f\uff08\u5bf9\u5b57\u8282\u7801\u6587\u4ef6\u8fdb\u884c\u52a0\u5bc6\uff0c\u81ea\u5df1\u7528\u7684\u65f6\u5019\u901a\u8fc7\u81ea\u5b9a\u4e49\u7c7b\u52a0\u8f7d\u5668\u6765\u5bf9\u5176\u8fdb\u884c\u89e3\u5bc6\uff09<\/li>\n<\/ol>\n<h4><a id=\"_379\"><\/a>\u5982\u4f55\u81ea\u5b9a\u4e49\u7c7b\u52a0\u8f7d\u5668\uff1f<\/h4>\n<ol>\n<li>\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u901a\u8fc7<strong>\u7ee7\u627f\u62bd\u8c61\u7c7bjava.lang.ClassLoader\u7c7b<\/strong>\u7684\u65b9\u5f0f\uff0c\u5b9e\u73b0\u81ea\u5df1\u7684\u7c7b\u52a0\u8f7d\u5668\uff0c\u4ee5\u6ee1\u8db3\u4e00\u4e9b\u7279\u6b8a\u7684\u9700\u6c42<\/li>\n<li>\u5728JDK1.2\u4e4b\u524d\uff0c\u5728\u81ea\u5b9a\u4e49\u7c7b\u52a0\u8f7d\u5668\u65f6\uff0c\u603b\u4f1a\u53bb\u7ee7\u627fClassLoader\u7c7b\u5e76\u91cd\u5199loadClass()\u65b9\u6cd5\uff0c\u4ece\u800c\u5b9e\u73b0\u81ea\u5b9a\u4e49\u7684\u7c7b\u52a0\u8f7d\u7c7b\uff0c\u4f46\u662f\u5728JDK1.2\u4e4b\u540e\u5df2\u4e0d\u518d\u5efa\u8bae\u7528\u6237\u53bb\u8986\u76d6loadClass()\u65b9\u6cd5\uff0c\u800c\u662f\u5efa\u8bae<strong>\u628a\u81ea\u5b9a\u4e49\u7684\u7c7b\u52a0\u8f7d\u903b\u8f91\u5199\u5728findclass()\u65b9\u6cd5\u4e2d<\/strong><\/li>\n<li>\u5728\u7f16\u5199\u81ea\u5b9a\u4e49\u7c7b\u52a0\u8f7d\u5668\u65f6\uff0c\u5982\u679c\u6ca1\u6709\u592a\u8fc7\u4e8e\u590d\u6742\u7684\u9700\u6c42\uff0c\u53ef\u4ee5\u76f4\u63a5\u7ee7\u627fURIClassLoader\u7c7b\uff0c\u8fd9\u6837\u5c31\u53ef\u4ee5\u907f\u514d\u81ea\u5df1\u53bb\u7f16\u5199findclass()\u65b9\u6cd5\u53ca\u5176\u83b7\u53d6\u5b57\u8282\u7801\u6d41\u7684\u65b9\u5f0f\uff0c\u4f7f\u81ea\u5b9a\u4e49\u7c7b\u52a0\u8f7d\u5668\u7f16\u5199\u66f4\u52a0\u7b80\u6d01\u3002<\/li>\n<\/ol>\n<p>**<br \/> <strong><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/732fda94e8728f29c92b30deedb5bc97.png#align=left&amp;display=inline&amp;height=329&amp;name=image.png&amp;originHeight=988&amp;originWidth=1346&amp;size=1810061&amp;status=done&amp;style=none&amp;width=448.6666666666667\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/732fda94e8728f29c92b30deedb5bc97.png#align=left&amp;display=inline&amp;height=329&amp;name=image.png&amp;originHeight=988&amp;originWidth=1346&amp;size=1810061&amp;status=done&amp;style=none&amp;width=448.6666666666667\" alt=\"image.png\"><\/noscript><\/strong><br \/> <strong><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/aa332fa93f79af1bac8d7c3f1b4881c4.png#align=left&amp;display=inline&amp;height=424&amp;name=image.png&amp;originHeight=1411&amp;originWidth=1553&amp;size=1827782&amp;status=done&amp;style=none&amp;width=467\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/aa332fa93f79af1bac8d7c3f1b4881c4.png#align=left&amp;display=inline&amp;height=424&amp;name=image.png&amp;originHeight=1411&amp;originWidth=1553&amp;size=1827782&amp;status=done&amp;style=none&amp;width=467\" alt=\"image.png\"><\/noscript><\/strong><br \/> <strong>\u4ee3\u7801\u793a\u4f8b<\/strong><\/p>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">CustomClassLoader<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">ClassLoader<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token annotation punctuation\">@Override<\/span>\n    <span class=\"token keyword\">protected<\/span> Class<span class=\"token operator\">&lt;<\/span><span class=\"token operator\">?<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token function\">findClass<\/span><span class=\"token punctuation\">(<\/span>String name<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">throws<\/span> ClassNotFoundException <span class=\"token punctuation\">{<!-- --><\/span>\n\n        <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token keyword\">byte<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> result <span class=\"token operator\">=<\/span> <span class=\"token function\">getClassFromCustomPath<\/span><span class=\"token punctuation\">(<\/span>name<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>result <span class=\"token operator\">==<\/span> null<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n                <span class=\"token keyword\">throw<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">FileNotFoundException<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n                <span class=\"token comment\">\/\/defineClass\u548cfindClass\u642d\u914d\u4f7f\u7528<\/span>\n                <span class=\"token keyword\">return<\/span> <span class=\"token function\">defineClass<\/span><span class=\"token punctuation\">(<\/span>name<span class=\"token punctuation\">,<\/span> result<span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> result<span class=\"token punctuation\">.<\/span>length<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span>\n        <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">FileNotFoundException<\/span> e<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            e<span class=\"token punctuation\">.<\/span><span class=\"token function\">printStackTrace<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n\n        <span class=\"token keyword\">throw<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">ClassNotFoundException<\/span><span class=\"token punctuation\">(<\/span>name<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\t<span class=\"token comment\">\/\/\u81ea\u5b9a\u4e49\u6d41\u7684\u83b7\u53d6\u65b9\u5f0f<\/span>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">byte<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token function\">getClassFromCustomPath<\/span><span class=\"token punctuation\">(<\/span>String name<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token comment\">\/\/\u4ece\u81ea\u5b9a\u4e49\u8def\u5f84\u4e2d\u52a0\u8f7d\u6307\u5b9a\u7c7b:\u7ec6\u8282\u7565<\/span>\n        <span class=\"token comment\">\/\/\u5982\u679c\u6307\u5b9a\u8def\u5f84\u7684\u5b57\u8282\u7801\u6587\u4ef6\u8fdb\u884c\u4e86\u52a0\u5bc6\uff0c\u5219\u9700\u8981\u5728\u6b64\u65b9\u6cd5\u4e2d\u8fdb\u884c\u89e3\u5bc6\u64cd\u4f5c\u3002<\/span>\n        <span class=\"token keyword\">return<\/span> null<span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        CustomClassLoader customClassLoader <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">CustomClassLoader<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            Class<span class=\"token operator\">&lt;<\/span><span class=\"token operator\">?<\/span><span class=\"token operator\">&gt;<\/span> clazz <span class=\"token operator\">=<\/span> Class<span class=\"token punctuation\">.<\/span><span class=\"token function\">forName<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"One\"<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">true<\/span><span class=\"token punctuation\">,<\/span> customClassLoader<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            Object obj <span class=\"token operator\">=<\/span> clazz<span class=\"token punctuation\">.<\/span><span class=\"token function\">newInstance<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>obj<span class=\"token punctuation\">.<\/span><span class=\"token function\">getClass<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">getClassLoader<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">Exception<\/span> e<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            e<span class=\"token punctuation\">.<\/span><span class=\"token function\">printStackTrace<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<h3><a id=\"ClassLoader_427\"><\/a>\u5173\u4e8eClassLoader<strong>\u7c7b<\/strong><\/h3>\n<blockquote>\n<p><strong>ClassLoader \u7c7b\u4ecb\u7ecd<\/strong><\/p>\n<\/blockquote>\n<p>ClassLoader\u7c7b\uff0c\u5b83\u662f\u4e00\u4e2a\u62bd\u8c61\u7c7b\uff0c\u5176\u540e\u6240\u6709\u7684\u7c7b\u52a0\u8f7d\u5668\u90fd\u7ee7\u627f\u81eaClassLoader\uff08\u4e0d\u5305\u62ec\u542f\u52a8\u7c7b\u52a0\u8f7d\u5668\uff09<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/15102e70792de17941f912366c497d62.png#align=left&amp;display=inline&amp;height=208&amp;name=image.png&amp;originHeight=625&amp;originWidth=2039&amp;size=911938&amp;status=done&amp;style=none&amp;width=679.6666666666666\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/15102e70792de17941f912366c497d62.png#align=left&amp;display=inline&amp;height=208&amp;name=image.png&amp;originHeight=625&amp;originWidth=2039&amp;size=911938&amp;status=done&amp;style=none&amp;width=679.6666666666666\" alt=\"image.png\"><\/noscript><br \/> sun.misc.Launcher \u5b83\u662f\u4e00\u4e2ajava\u865a\u62df\u673a\u7684\u5165\u53e3\u5e94\u7528<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/cec0ecb7e551f00310f34239cec40cc3.png#align=left&amp;display=inline&amp;height=333&amp;name=image.png&amp;originHeight=999&amp;originWidth=1241&amp;size=1208432&amp;status=done&amp;style=none&amp;width=413.6666666666667\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/cec0ecb7e551f00310f34239cec40cc3.png#align=left&amp;display=inline&amp;height=333&amp;name=image.png&amp;originHeight=999&amp;originWidth=1241&amp;size=1208432&amp;status=done&amp;style=none&amp;width=413.6666666666667\" alt=\"image.png\"><\/noscript><\/p>\n<h4><a id=\"ClassLoader_435\"><\/a>\u83b7\u53d6ClassLoader\u9014\u5f84<\/h4>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/a05f60323dd9399e45ccd13625b3d364.png#align=left&amp;display=inline&amp;height=226&amp;name=image.png&amp;originHeight=838&amp;originWidth=1902&amp;size=1183938&amp;status=done&amp;style=none&amp;width=514\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/a05f60323dd9399e45ccd13625b3d364.png#align=left&amp;display=inline&amp;height=226&amp;name=image.png&amp;originHeight=838&amp;originWidth=1902&amp;size=1183938&amp;status=done&amp;style=none&amp;width=514\" alt=\"image.png\"><\/noscript><\/p>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">ClassLoaderTest2<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token comment\">\/\/1.<\/span>\n            ClassLoader classLoader <span class=\"token operator\">=<\/span> Class<span class=\"token punctuation\">.<\/span><span class=\"token function\">forName<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"java.lang.String\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">getClassLoader<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>classLoader<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token comment\">\/\/2.<\/span>\n            ClassLoader classLoader1 <span class=\"token operator\">=<\/span> Thread<span class=\"token punctuation\">.<\/span><span class=\"token function\">currentThread<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">getContextClassLoader<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>classLoader1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n            <span class=\"token comment\">\/\/3.<\/span>\n            ClassLoader classLoader2 <span class=\"token operator\">=<\/span> ClassLoader<span class=\"token punctuation\">.<\/span><span class=\"token function\">getSystemClassLoader<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">getParent<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>classLoader2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">ClassNotFoundException<\/span> e<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            e<span class=\"token punctuation\">.<\/span><span class=\"token function\">printStackTrace<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<pre><code class=\"prism language-java\">\u8f93\u51fa\u7ed3\u679c\uff1a\n\nnull\nsun<span class=\"token punctuation\">.<\/span>misc<span class=\"token punctuation\">.<\/span>Launcher$AppClassLoader<span class=\"token annotation punctuation\">@18b4aac2<\/span>\nsun<span class=\"token punctuation\">.<\/span>misc<span class=\"token punctuation\">.<\/span>Launcher$ExtClassLoader<span class=\"token annotation punctuation\">@1540e19d<\/span>\n\nProcess finished with exit code <span class=\"token number\">0<\/span>\n<\/code><\/pre>\n<h2><a id=\"_467\"><\/a>\u53cc\u4eb2\u59d4\u6d3e\u673a\u5236<\/h2>\n<h3><a id=\"_468\"><\/a>\u53cc\u4eb2\u59d4\u6d3e\u673a\u5236\u539f\u7406<\/h3>\n<p>Java\u865a\u62df\u673a\u5bf9class\u6587\u4ef6\u91c7\u7528\u7684\u662f<strong>\u6309\u9700\u52a0\u8f7d<\/strong>\u7684\u65b9\u5f0f\uff0c\u4e5f\u5c31\u662f\u8bf4\u5f53\u9700\u8981\u4f7f\u7528\u8be5\u7c7b\u65f6\u624d\u4f1a\u5c06\u5b83\u7684class\u6587\u4ef6\u52a0\u8f7d\u5230\u5185\u5b58\u751f\u6210class\u5bf9\u8c61\u3002\u800c\u4e14\u52a0\u8f7d\u67d0\u4e2a\u7c7b\u7684class\u6587\u4ef6\u65f6\uff0cJava\u865a\u62df\u673a\u91c7\u7528\u7684\u662f\u53cc\u4eb2\u59d4\u6d3e\u6a21\u5f0f\uff0c\u5373\u628a\u8bf7\u6c42\u4ea4\u7531\u7236\u7c7b\u5904\u7406\uff0c\u5b83\u662f\u4e00\u79cd\u4efb\u52a1\u59d4\u6d3e\u6a21\u5f0f<\/p>\n<ol>\n<li>\u5982\u679c\u4e00\u4e2a\u7c7b\u52a0\u8f7d\u5668\u6536\u5230\u4e86\u7c7b\u52a0\u8f7d\u8bf7\u6c42\uff0c\u5b83\u5e76\u4e0d\u4f1a\u81ea\u5df1\u5148\u53bb\u52a0\u8f7d\uff0c\u800c\u662f\u628a\u8fd9\u4e2a\u8bf7\u6c42\u59d4\u6258\u7ed9\u7236\u7c7b\u7684\u52a0\u8f7d\u5668\u53bb\u6267\u884c\uff1b<\/li>\n<li>\u5982\u679c\u7236\u7c7b\u52a0\u8f7d\u5668\u8fd8\u5b58\u5728\u5176\u7236\u7c7b\u52a0\u8f7d\u5668\uff0c\u5219\u8fdb\u4e00\u6b65\u5411\u4e0a\u59d4\u6258\uff0c\u4f9d\u6b21\u9012\u5f52\uff0c\u8bf7\u6c42\u6700\u7ec8\u5c06\u5230\u8fbe\u9876\u5c42\u7684\u542f\u52a8\u7c7b\u52a0\u8f7d\u5668\uff1b<\/li>\n<li>\u5982\u679c\u7236\u7c7b\u52a0\u8f7d\u5668\u53ef\u4ee5\u5b8c\u6210\u7c7b\u52a0\u8f7d\u4efb\u52a1\uff0c\u5c31\u6210\u529f\u8fd4\u56de\uff0c\u5018\u82e5\u7236\u7c7b\u52a0\u8f7d\u5668\u65e0\u6cd5\u5b8c\u6210\u6b64\u52a0\u8f7d\u4efb\u52a1\uff0c\u5b50\u52a0\u8f7d\u5668\u624d\u4f1a\u5c1d\u8bd5\u81ea\u5df1\u53bb\u52a0\u8f7d\uff0c\u8fd9\u5c31\u662f\u53cc\u4eb2\u59d4\u6d3e\u6a21\u5f0f\u3002<\/li>\n<li>\u7236\u7c7b\u52a0\u8f7d\u5668\u4e00\u5c42\u4e00\u5c42\u5f80\u4e0b\u5206\u914d\u4efb\u52a1\uff0c\u5982\u679c\u5b50\u7c7b\u52a0\u8f7d\u5668\u80fd\u52a0\u8f7d\uff0c\u5219\u52a0\u8f7d\u6b64\u7c7b\uff0c\u5982\u679c\u5c06\u52a0\u8f7d\u4efb\u52a1\u5206\u914d\u81f3\u5e94\u7528\u7c7b\u52a0\u8f7d\u5668\u4e5f\u65e0\u6cd5\u52a0\u8f7d\u6b64\u7c7b\uff0c\u5219\u629b\u51fa\u5f02\u5e38<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/3c61542da352cbf88df6145d1529d4e2.png#align=left&amp;display=inline&amp;height=523&amp;name=image.png&amp;originHeight=523&amp;originWidth=1325&amp;size=819300&amp;status=done&amp;style=none&amp;width=1325\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/3c61542da352cbf88df6145d1529d4e2.png#align=left&amp;display=inline&amp;height=523&amp;name=image.png&amp;originHeight=523&amp;originWidth=1325&amp;size=819300&amp;status=done&amp;style=none&amp;width=1325\" alt=\"image.png\"><\/noscript><\/p>\n<h1><a id=\"imagepnghttpsimgblogcsdnimgcnimg_converta370821dc03157fb2f9073123b00eb08pngalignleftdisplayinlineheight291nameimagepngoriginHeight872originWidth1065size1060278statusdonestylenonewidth355_477\"><\/a><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/a370821dc03157fb2f9073123b00eb08.png#align=left&amp;display=inline&amp;height=291&amp;name=image.png&amp;originHeight=872&amp;originWidth=1065&amp;size=1060278&amp;status=done&amp;style=none&amp;width=355\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/a370821dc03157fb2f9073123b00eb08.png#align=left&amp;display=inline&amp;height=291&amp;name=image.png&amp;originHeight=872&amp;originWidth=1065&amp;size=1060278&amp;status=done&amp;style=none&amp;width=355\" alt=\"image.png\"><\/noscript><\/h1>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/47641e8dbd771bb0806a08677ecfbd35.png#align=left&amp;display=inline&amp;height=429&amp;name=image.png&amp;originHeight=1653&amp;originWidth=2999&amp;size=6479112&amp;status=done&amp;style=none&amp;width=778\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/47641e8dbd771bb0806a08677ecfbd35.png#align=left&amp;display=inline&amp;height=429&amp;name=image.png&amp;originHeight=1653&amp;originWidth=2999&amp;size=6479112&amp;status=done&amp;style=none&amp;width=778\" alt=\"image.png\"><\/noscript><\/p>\n<h3><a id=\"_479\"><\/a>\u53cc\u4eb2\u59d4\u6d3e\u673a\u5236\u4e3e\u4f8b<\/h3>\n<p>\u5f53\u6211\u4eec\u52a0\u8f7djdbc.jar \u7528\u4e8e\u5b9e\u73b0\u6570\u636e\u5e93\u8fde\u63a5\u7684\u65f6\u5019\uff0c\u9996\u5148\u6211\u4eec\u9700\u8981\u77e5\u9053\u7684\u662f jdbc.jar\u662f\u57fa\u4e8eSPI\u63a5\u53e3\u8fdb\u884c\u5b9e\u73b0\u7684\uff0c\u6240\u4ee5\u5728\u52a0\u8f7d\u7684\u65f6\u5019\uff0c\u4f1a\u8fdb\u884c\u53cc\u4eb2\u59d4\u6d3e\uff0c\u6700\u7ec8\u4ece\u6839\u52a0\u8f7d\u5668\u4e2d\u52a0\u8f7d SPI\u6838\u5fc3\u7c7b\uff0c\u7136\u540e\u5728\u52a0\u8f7dSPI\u63a5\u53e3\u7c7b\uff0c\u63a5\u7740\u5728\u8fdb\u884c\u53cd\u5411\u59d4\u6d3e\uff0c\u901a\u8fc7\u7ebf\u7a0b\u4e0a\u4e0b\u6587\u7c7b\u52a0\u8f7d\u5668\u8fdb\u884c\u5b9e\u73b0\u7c7b jdbc.jar\u7684\u52a0\u8f7d\u3002<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/586bfbcafe4d0e6ac6a2a40260ee5bba.png#align=left&amp;display=inline&amp;height=335&amp;originHeight=511&amp;originWidth=797&amp;size=0&amp;status=done&amp;style=none&amp;width=522\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/586bfbcafe4d0e6ac6a2a40260ee5bba.png#align=left&amp;display=inline&amp;height=335&amp;originHeight=511&amp;originWidth=797&amp;size=0&amp;status=done&amp;style=none&amp;width=522\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"_482\"><\/a>\u53cc\u4eb2\u59d4\u6d3e\u673a\u5236\u4f18\u52bf<\/h3>\n<p>\u901a\u8fc7\u4e0a\u9762\u7684\u4f8b\u5b50\uff0c\u6211\u4eec\u53ef\u4ee5\u77e5\u9053\uff0c\u53cc\u4eb2\u673a\u5236\u53ef\u4ee5<\/p>\n<ol>\n<li>\n<p><strong>\u907f\u514d\u7c7b\u7684\u91cd\u590d\u52a0\u8f7d<\/strong><\/p>\n<\/li>\n<li>\n<p><strong>\u4e3b\u8981\u662f\u4e3a\u4e86\u4fdd\u62a4\u7a0b\u5e8f\u5b89\u5168\uff0c\u9632\u6b62\u6838\u5fc3\u7c7b\u88ab\u968f\u610f\u7be1\u6539<\/strong><\/p>\n<ul>\n<li>\u81ea\u5b9a\u4e49\u7c7b\uff1a\u81ea\u5b9a\u4e49java.lang.String \u6ca1\u6709\u88ab\u52a0\u8f7d\u3002<\/li>\n<li>\u81ea\u5b9a\u4e49\u7c7b\uff1ajava.lang.ShkStart\uff08\u62a5\u9519\uff1a\u963b\u6b62\u521b\u5efa java.lang\u5f00\u5934\u7684\u7c7b\uff09<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2><a id=\"_490\"><\/a>\u6c99\u7bb1\u5b89\u5168\u673a\u5236<\/h2>\n<ol>\n<li>\u81ea\u5b9a\u4e49String\u7c7b\u65f6\uff1a\u5728\u52a0\u8f7d\u81ea\u5b9a\u4e49String\u7c7b\u7684\u65f6\u5019\u4f1a\u7387\u5148\u4f7f\u7528\u542f\u52a8\u7c7b\u52a0\u8f7d\u5668\u52a0\u8f7d\uff0c\u800c\u542f\u52a8\u7c7b\u52a0\u8f7d\u5668\u5728\u52a0\u8f7d\u7684\u8fc7\u7a0b\u4e2d\u4f1a\u5148\u52a0\u8f7djdk\u81ea\u5e26\u7684\u6587\u4ef6\uff08rt.jar\u5305\u4e2djava.lang.String.class\uff09\uff0c\u62a5\u9519\u4fe1\u606f\u8bf4\u6ca1\u6709main\u65b9\u6cd5\uff0c\u5c31\u662f\u56e0\u4e3a\u52a0\u8f7d\u7684\u662frt.jar\u5305\u4e2d\u7684String\u7c7b\u3002<\/li>\n<li>\u8fd9\u6837\u53ef\u4ee5\u4fdd\u8bc1\u5bf9java\u6838\u5fc3\u6e90\u4ee3\u7801\u7684\u4fdd\u62a4\uff0c\u8fd9\u5c31\u662f\u6c99\u7bb1\u5b89\u5168\u673a\u5236\u3002<\/li>\n<\/ol>\n<h2><a id=\"_494\"><\/a>\u5176\u5b83<\/h2>\n<h3><a id=\"class_495\"><\/a>\u5982\u4f55\u5224\u65ad\u4e24\u4e2aclass\u5bf9\u8c61\u662f\u5426\u76f8\u540c<\/h3>\n<p>\u5728JVM\u4e2d\u8868\u793a\u4e24\u4e2aclass\u5bf9\u8c61\u662f\u5426\u4e3a\u540c\u4e00\u4e2a\u7c7b\u5b58\u5728<strong>\u4e24\u4e2a\u5fc5\u8981\u6761\u4ef6<\/strong>\uff1a<\/p>\n<ul>\n<li><strong>\u7c7b\u7684\u5168\u9650\u5b9a\u540d<\/strong>\u4e0e<strong>\u52a0\u8f7d\u8be5\u7c7b\u7684\u7c7b\u52a0\u8f7d\u5668\u5b9e\u4f8b\u5bf9\u8c61<\/strong>\u5fc5\u987b\u5168\u90fd\u76f8\u540c<\/li>\n<\/ul>\n<p>JVM\u5fc5\u987b\u77e5\u9053\u4e00\u4e2a\u7c7b\u578b\u662f\u7531\u542f\u52a8\u52a0\u8f7d\u5668\u52a0\u8f7d\u7684\u8fd8\u662f\u7531\u7528\u6237\u7c7b\u52a0\u8f7d\u5668\u52a0\u8f7d\u7684\u3002\u5982\u679c\u4e00\u4e2a\u7c7b\u578b\u662f\u7531\u7528\u6237\u7c7b\u52a0\u8f7d\u5668\u52a0\u8f7d\u7684\uff0c\u90a3\u4e48JVM\u4f1a\u5c06\u8fd9\u4e2a\u7c7b\u52a0\u8f7d\u5668\u7684\u4e00\u4e2a\u5f15\u7528\u4f5c\u4e3a\u7c7b\u578b\u4fe1\u606f\u7684\u4e00\u90e8\u5206\u4fdd\u5b58\u5728\u65b9\u6cd5\u533a\u4e2d\u3002\u5f53\u89e3\u6790\u4e00\u4e2a\u7c7b\u578b\u5230\u53e6\u4e00\u4e2a\u7c7b\u578b\u7684\u5f15\u7528\u7684\u65f6\u5019\uff0cJVM\u9700\u8981\u4fdd\u8bc1\u8fd9\u4e24\u4e2a\u7c7b\u578b\u7684\u7c7b\u52a0\u8f7d\u5668\u662f\u76f8\u540c\u7684\u3002<\/p>\n<h3><a id=\"_503\"><\/a><\/h3>\n<h2><a id=\"_504\"><\/a><\/h2>\n<h1><a id=\"_507\"><\/a>\u56db\u3001\u8fd0\u884c\u65f6\u6570\u636e\u533a\u6982\u8ff0\u53ca\u7ebf\u7a0b<\/h1>\n<h2><a id=\"_508\"><\/a>\u524d\u8a00<\/h2>\n<p>\u672c\u8282\u4e3b\u8981\u8bb2\u7684\u662f\u8fd0\u884c\u65f6\u6570\u636e\u533a\uff0c\u4e5f\u5c31\u662f\u4e0b\u56fe\u8fd9\u90e8\u5206\uff0c\u5b83\u662f\u5728\u7c7b\u52a0\u8f7d\u5b8c\u6210\u540e\u7684\u9636\u6bb5<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f991671d84812115d9490ff9236bbd74.png#align=left&amp;display=inline&amp;height=328&amp;originHeight=509&amp;originWidth=867&amp;size=0&amp;status=done&amp;style=none&amp;width=559\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f991671d84812115d9490ff9236bbd74.png#align=left&amp;display=inline&amp;height=328&amp;originHeight=509&amp;originWidth=867&amp;size=0&amp;status=done&amp;style=none&amp;width=559\" alt=\"\"><\/noscript><\/p>\n<p>\u5f53\u6211\u4eec\u901a\u8fc7\u524d\u9762\u7684\uff1a\u7c7b\u7684\u52a0\u8f7d-&gt; \u9a8c\u8bc1 -&gt; \u51c6\u5907 -&gt; \u89e3\u6790 -&gt; \u521d\u59cb\u5316 \u8fd9\u51e0\u4e2a\u9636\u6bb5\u5b8c\u6210\u540e\uff0c<strong>\u5c31\u4f1a\u7528\u5230\u6267\u884c\u5f15\u64ce\u5bf9\u6211\u4eec\u7684\u7c7b\u8fdb\u884c\u4f7f\u7528\uff0c\u540c\u65f6\u6267\u884c\u5f15\u64ce\u5c06\u4f1a\u4f7f\u7528\u5230\u6211\u4eec\u8fd0\u884c\u65f6\u6570\u636e\u533a<\/strong><br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/4cb5848f35445b5912702b6a9e657f07.png#align=left&amp;display=inline&amp;height=190&amp;originHeight=409&amp;originWidth=806&amp;size=0&amp;status=done&amp;style=none&amp;width=374\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/4cb5848f35445b5912702b6a9e657f07.png#align=left&amp;display=inline&amp;height=190&amp;originHeight=409&amp;originWidth=806&amp;size=0&amp;status=done&amp;style=none&amp;width=374\" alt=\"\"><\/noscript><\/p>\n<p>\u4e5f\u5c31\u662f\u5927\u53a8\u505a\u996d\uff0c\u6211\u4eec\u628a\u5927\u53a8\u540e\u9762\u7684\u4e1c\u897f\uff08\u5207\u597d\u7684\u83dc\uff0c\u5200\uff0c\u8c03\u6599\uff09\uff0c\u6bd4\u4f5c\u662f\u8fd0\u884c\u65f6\u6570\u636e\u533a\u3002\u800c\u53a8\u5e08\u53ef\u4ee5\u7c7b\u6bd4\u4e8e\u6267\u884c\u5f15\u64ce\uff0c\u5c06\u901a\u8fc7\u51c6\u5907\u7684\u4e1c\u897f\u8fdb\u884c\u5236\u4f5c\u6210\u7cbe\u7f8e\u7684\u83dc\u54c1<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/c696cc64361e214e5e0dfa5a54714658.png#align=left&amp;display=inline&amp;height=203&amp;originHeight=544&amp;originWidth=701&amp;size=0&amp;status=done&amp;style=none&amp;width=262\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/c696cc64361e214e5e0dfa5a54714658.png#align=left&amp;display=inline&amp;height=203&amp;originHeight=544&amp;originWidth=701&amp;size=0&amp;status=done&amp;style=none&amp;width=262\" alt=\"\"><\/noscript><\/p>\n<p>\u5185\u5b58\u662f\u975e\u5e38\u91cd\u8981\u7684\u7cfb\u7edf\u8d44\u6e90\uff0c\u662f\u786c\u76d8\u548cCPU\u7684\u4e2d\u95f4\u4ed3\u5e93\u53ca\u6865\u6881\uff0c\u627f\u8f7d\u7740\u64cd\u4f5c\u7cfb\u7edf\u548c\u5e94\u7528\u7a0b\u5e8f\u7684\u5b9e\u65f6\u8fd0\u884cJVM\u5185\u5b58\u5e03\u5c40\u89c4\u5b9a\u4e86Java\u5728\u8fd0\u884c\u8fc7\u7a0b\u4e2d\u5185\u5b58\u7533\u8bf7\u3001\u5206\u914d\u3001\u7ba1\u7406\u7684\u7b56\u7565\uff0c\u4fdd\u8bc1\u4e86JVM\u7684\u9ad8\u6548\u7a33\u5b9a\u8fd0\u884c\u3002\u4e0d\u540c\u7684JVM\u5bf9\u4e8e\u5185\u5b58\u7684\u5212\u5206\u65b9\u5f0f\u548c\u7ba1\u7406\u673a\u5236\u5b58\u5728\u7740\u90e8\u5206\u5dee\u5f02\u3002\u7ed3\u5408JVM\u865a\u62df\u673a\u89c4\u8303\uff0c\u6765\u63a2\u8ba8\u4e00\u4e0b\u7ecf\u5178\u7684JVM\u5185\u5b58\u5e03\u5c40\u3002<\/p>\n<blockquote>\n<p>\u6211\u4eec\u901a\u8fc7\u78c1\u76d8\u6216\u8005\u7f51\u7edcIO\u5f97\u5230\u7684\u6570\u636e\uff0c\u90fd\u9700\u8981\u5148\u52a0\u8f7d\u5230\u5185\u5b58\u4e2d\uff0c\u7136\u540eCPU\u4ece\u5185\u5b58\u4e2d\u83b7\u53d6\u6570\u636e\u8fdb\u884c\u8bfb\u53d6\uff0c\u4e5f\u5c31\u662f\u8bf4\u5185\u5b58\u5145\u5f53\u4e86CPU\u548c\u78c1\u76d8\u4e4b\u95f4\u7684\u6865\u6881<\/p>\n<\/blockquote>\n<p>\u8fd0\u884c\u65f6\u6570\u636e\u533a\u7684\u5b8c\u6574\u56fe<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/d9211aec91bad63142100f44ae3fbbd8.png#align=left&amp;display=inline&amp;height=237&amp;originHeight=479&amp;originWidth=1052&amp;size=0&amp;status=done&amp;style=none&amp;width=520\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/d9211aec91bad63142100f44ae3fbbd8.png#align=left&amp;display=inline&amp;height=237&amp;originHeight=479&amp;originWidth=1052&amp;size=0&amp;status=done&amp;style=none&amp;width=520\" alt=\"\"><\/noscript><\/p>\n<p>Java\u865a\u62df\u673a\u5b9a\u4e49\u4e86\u82e5\u5e72\u79cd\u7a0b\u5e8f\u8fd0\u884c\u671f\u95f4\u4f1a\u4f7f\u7528\u5230\u7684\u8fd0\u884c\u65f6\u6570\u636e\u533a\uff0c\u5176\u4e2d\u6709\u4e00\u4e9b\u4f1a\u968f\u7740\u865a\u62df\u673a\u542f\u52a8\u800c\u521b\u5efa\uff0c\u968f\u7740\u865a\u62df\u673a\u9000\u51fa\u800c\u9500\u6bc1\u3002\u53e6\u5916\u4e00\u4e9b\u5219\u662f\u4e0e\u7ebf\u7a0b\u4e00\u4e00\u5bf9\u5e94\u7684\uff0c\u8fd9\u4e9b\u4e0e\u7ebf\u7a0b\u5bf9\u5e94\u7684\u6570\u636e\u533a\u57df\u4f1a\u968f\u7740\u7ebf\u7a0b\u5f00\u59cb\u548c\u7ed3\u675f\u800c\u521b\u5efa\u548c\u9500\u6bc1\u3002<\/p>\n<p>**\u7070\u8272\u7684\u4e3a\u5355\u72ec\u7ebf\u7a0b\u79c1\u6709\u7684\uff0c\u7ea2\u8272\u7684\u4e3a\u591a\u4e2a\u7ebf\u7a0b\u5171\u4eab\u7684\u3002**\u5373\uff1a<\/p>\n<ul>\n<li>\u6bcf\u4e2a\u7ebf\u7a0b\uff1a\u72ec\u7acb\u5305\u62ec\u7a0b\u5e8f\u8ba1\u6570\u5668\u3001\u6808\u3001\u672c\u5730\u6808\u3002<\/li>\n<li>\u7ebf\u7a0b\u95f4\u5171\u4eab\uff1a\u5806\u3001\u5806\u5916\u5185\u5b58\uff08\u6c38\u4e45\u4ee3\u6216\u5143\u7a7a\u95f4\u3001\u4ee3\u7801\u7f13\u5b58\uff09<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/9f0d1e462b805a374de1a460b5c97b46.png#align=left&amp;display=inline&amp;height=268&amp;originHeight=360&amp;originWidth=367&amp;size=0&amp;status=done&amp;style=none&amp;width=273\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/9f0d1e462b805a374de1a460b5c97b46.png#align=left&amp;display=inline&amp;height=268&amp;originHeight=360&amp;originWidth=367&amp;size=0&amp;status=done&amp;style=none&amp;width=273\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"Runtime_559\"><\/a>Runtime\u7c7b<\/h3>\n<p><strong>\u6bcf\u4e2aJVM\u53ea\u6709\u4e00\u4e2aRuntime\u5b9e\u4f8b<\/strong>\u3002\u5373\u4e3a\u8fd0\u884c\u65f6\u73af\u5883\uff0c\u76f8\u5f53\u4e8e\u5185\u5b58\u7ed3\u6784\u7684\u4e2d\u95f4\u7684\u90a3\u4e2a\u6846\u6846\uff1a\u8fd0\u884c\u65f6\u73af\u5883\u3002<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/47505dd963711f0f5153b4300c982acd.png#align=left&amp;display=inline&amp;height=154&amp;name=image.png&amp;originHeight=791&amp;originWidth=1972&amp;size=675140&amp;status=done&amp;style=none&amp;width=385\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/47505dd963711f0f5153b4300c982acd.png#align=left&amp;display=inline&amp;height=154&amp;name=image.png&amp;originHeight=791&amp;originWidth=1972&amp;size=675140&amp;status=done&amp;style=none&amp;width=385\" alt=\"image.png\"><\/noscript><\/p>\n<h2><a id=\"_562\"><\/a>\u7ebf\u7a0b<\/h2>\n<h3><a id=\"JVM__563\"><\/a>JVM \u7ebf\u7a0b<\/h3>\n<ol>\n<li>\u7ebf\u7a0b\u662f\u4e00\u4e2a\u7a0b\u5e8f\u91cc\u7684\u8fd0\u884c\u5355\u5143\u3002JVM\u5141\u8bb8<strong>\u4e00\u4e2a\u5e94\u7528\u6709\u591a\u4e2a\u7ebf\u7a0b\u5e76\u884c<\/strong>\u7684\u6267\u884c<\/li>\n<li><strong>\u5728Hotspot JVM\u91cc\uff0c\u6bcf\u4e2a\u7ebf\u7a0b\u90fd\u4e0e\u64cd\u4f5c\u7cfb\u7edf\u7684\u672c\u5730\u7ebf\u7a0b\u76f4\u63a5\u6620\u5c04<\/strong>\n<ul>\n<li>\u5f53\u4e00\u4e2aJava\u7ebf\u7a0b\u51c6\u5907\u597d\u6267\u884c\u4ee5\u540e\uff0c\u6b64\u65f6\u4e00\u4e2a\u64cd\u4f5c\u7cfb\u7edf\u7684\u672c\u5730\u7ebf\u7a0b\u4e5f\u540c\u65f6\u521b\u5efa\u3002Java\u7ebf\u7a0b\u6267\u884c\u7ec8\u6b62\u540e\uff0c\u672c\u5730\u7ebf\u7a0b\u4e5f\u4f1a\u56de\u6536<\/li>\n<\/ul>\n<\/li>\n<li>\u64cd\u4f5c\u7cfb\u7edf\u8d1f\u8d23\u5c06\u7ebf\u7a0b\u5b89\u6392\u8c03\u5ea6\u5230\u4efb\u4f55\u4e00\u4e2a\u53ef\u7528\u7684CPU\u4e0a\u3002\u4e00\u65e6\u672c\u5730\u7ebf\u7a0b\u521d\u59cb\u5316\u6210\u529f\uff0c\u5b83\u5c31\u4f1a\u8c03\u7528Java\u7ebf\u7a0b\u4e2d\u7684run()\u65b9\u6cd5<\/li>\n<\/ol>\n<h3><a id=\"JVM__572\"><\/a>JVM \u7cfb\u7edf\u7ebf\u7a0b<\/h3>\n<ul>\n<li>\n<p>\u5982\u679c\u4f60\u4f7f\u7528jconsole\u6216\u8005\u662f\u4efb\u4f55\u4e00\u4e2a\u8c03\u8bd5\u5de5\u5177\uff0c\u90fd\u80fd\u770b\u5230\u5728\u540e\u53f0\u6709\u8bb8\u591a\u7ebf\u7a0b\u5728\u8fd0\u884c\u3002\u8fd9\u4e9b\u540e\u53f0\u7ebf\u7a0b\u4e0d\u5305\u62ec\u8c03\u7528<code>public static void main(String[])<\/code>\u7684main\u7ebf\u7a0b\u4ee5\u53ca\u6240\u6709\u8fd9\u4e2amain\u7ebf\u7a0b\u81ea\u5df1\u521b\u5efa\u7684\u7ebf\u7a0b\u3002<\/p>\n<\/li>\n<li>\n<p>\u8fd9\u4e9b\u4e3b\u8981\u7684\u540e\u53f0\u7cfb\u7edf\u7ebf\u7a0b\u5728Hotspot JVM\u91cc\u4e3b\u8981\u662f\u4ee5\u4e0b\u51e0\u4e2a\uff1a<\/p>\n<\/li>\n<\/ul>\n<ol>\n<li><strong>\u865a\u62df\u673a\u7ebf\u7a0b<\/strong>\uff1a\u8fd9\u79cd\u7ebf\u7a0b\u7684\u64cd\u4f5c\u662f\u9700\u8981JVM\u8fbe\u5230\u5b89\u5168\u70b9\u624d\u4f1a\u51fa\u73b0\u3002\u8fd9\u4e9b\u64cd\u4f5c\u5fc5\u987b\u5728\u4e0d\u540c\u7684\u7ebf\u7a0b\u4e2d\u53d1\u751f\u7684\u539f\u56e0\u662f\u4ed6\u4eec\u90fd\u9700\u8981JVM\u8fbe\u5230\u5b89\u5168\u70b9\uff0c\u8fd9\u6837\u5806\u624d\u4e0d\u4f1a\u53d8\u5316\u3002\u8fd9\u79cd\u7ebf\u7a0b\u7684\u6267\u884c\u7c7b\u578b\u62ec\"stop-the-world\"\u7684\u5783\u573e\u6536\u96c6\uff0c\u7ebf\u7a0b\u6808\u6536\u96c6\uff0c\u7ebf\u7a0b\u6302\u8d77\u4ee5\u53ca\u504f\u5411\u9501\u64a4\u9500<\/li>\n<li><strong>\u5468\u671f\u4efb\u52a1\u7ebf\u7a0b<\/strong>\uff1a\u8fd9\u79cd\u7ebf\u7a0b\u662f\u65f6\u95f4\u5468\u671f\u4e8b\u4ef6\u7684\u4f53\u73b0\uff08\u6bd4\u5982\u4e2d\u65ad\uff09\uff0c\u4ed6\u4eec\u4e00\u822c\u7528\u4e8e\u5468\u671f\u6027\u64cd\u4f5c\u7684\u8c03\u5ea6\u6267\u884c<\/li>\n<li><strong>GC\u7ebf\u7a0b<\/strong>\uff1a\u8fd9\u79cd\u7ebf\u7a0b\u5bf9\u5728JVM\u91cc\u4e0d\u540c\u79cd\u7c7b\u7684\u5783\u573e\u6536\u96c6\u884c\u4e3a\u63d0\u4f9b\u4e86\u652f\u6301<\/li>\n<li><strong>\u7f16\u8bd1\u7ebf\u7a0b<\/strong>\uff1a\u8fd9\u79cd\u7ebf\u7a0b\u5728\u8fd0\u884c\u65f6\u4f1a\u5c06\u5b57\u8282\u7801\u7f16\u8bd1\u6210\u5230\u672c\u5730\u4ee3\u7801<\/li>\n<li><strong>\u4fe1\u53f7\u8c03\u5ea6\u7ebf\u7a0b<\/strong>\uff1a\u8fd9\u79cd\u7ebf\u7a0b\u63a5\u6536\u4fe1\u53f7\u5e76\u53d1\u9001\u7ed9JVM\uff0c\u5728\u5b83\u5185\u90e8\u901a\u8fc7\u8c03\u7528\u9002\u5f53\u7684\u65b9\u6cd5\u8fdb\u884c\u5904\u7406<\/li>\n<\/ol>\n<h1><a id=\"PC_586\"><\/a>\u7a0b\u5e8f\u8ba1\u6570\u5668\uff08\u4e5f\u53ebPC\u5bc4\u5b58\u5668\uff09<\/h1>\n<h2><a id=\"_587\"><\/a>\u4ecb\u7ecd<\/h2>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/bc2d7113298b8ceeea7b95d9eae2322d.png#align=left&amp;display=inline&amp;height=197&amp;originHeight=292&amp;originWidth=1016&amp;size=0&amp;status=done&amp;style=none&amp;width=684\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/bc2d7113298b8ceeea7b95d9eae2322d.png#align=left&amp;display=inline&amp;height=197&amp;originHeight=292&amp;originWidth=1016&amp;size=0&amp;status=done&amp;style=none&amp;width=684\" alt=\"\"><\/noscript><br \/> JVM\u4e2d\u7684\u7a0b\u5e8f\u8ba1\u6570\u5668\uff08Program Counter Register\uff09<br \/> \u5b83\u662f\u4e00\u5757\u5f88\u5c0f\u7684\u5185\u5b58\u7a7a\u95f4\uff0c\u51e0\u4e4e\u53ef\u4ee5\u5ffd\u7565\u4e0d\u8bb0\u3002\u4e5f\u662f\u8fd0\u884c\u901f\u5ea6\u6700\u5feb\u7684\u5b58\u50a8\u533a\u57df\u3002<br \/> \u5728JVM\u89c4\u8303\u4e2d\uff0c\u6bcf\u4e2a\u7ebf\u7a0b\u90fd\u6709\u5b83\u81ea\u5df1\u7684\u7a0b\u5e8f\u8ba1\u6570\u5668\uff0c\u662f\u7ebf\u7a0b\u79c1\u6709\u7684\uff0c\u751f\u547d\u5468\u671f\u4e0e\u7ebf\u7a0b\u7684\u751f\u547d\u5468\u671f\u4fdd\u6301\u4e00\u81f4\u3002<br \/> \u4efb\u4f55\u65f6\u95f4\u4e00\u4e2a\u7ebf\u7a0b\u90fd\u53ea\u6709\u4e00\u4e2a\u65b9\u6cd5\u5728\u6267\u884c\uff0c\u4e5f\u5c31\u662f\u6240\u8c13\u7684\u5f53\u524d\u65b9\u6cd5\u3002\u7a0b\u5e8f\u8ba1\u6570\u5668\u4f1a\u5b58\u50a8\u5f53\u524d\u7ebf\u7a0b\u6b63\u5728\u6267\u884c\u7684Java\u65b9\u6cd5\u7684JVM\u6307\u4ee4\u5730\u5740\uff1b\u6216\u8005\uff0c\u5982\u679c\u662f\u5728\u6267\u884cnative\u65b9\u6cd5\uff0c\u5219\u662f\u672a\u6307\u5b9a\u503c\uff08undefned\uff09\u3002<br \/> \u5b83\u662f\u7a0b\u5e8f\u63a7\u5236\u6d41\u7684\u6307\u793a\u5668\uff0c\u5206\u652f\u3001\u5faa\u73af\u3001\u8df3\u8f6c\u3001\u5f02\u5e38\u5904\u7406\u3001\u7ebf\u7a0b\u6062\u590d\u7b49\u57fa\u7840\u529f\u80fd\u90fd\u9700\u8981\u4f9d\u8d56\u8fd9\u4e2a\u8ba1\u6570\u5668\u6765\u5b8c\u6210\u3002\u5b57\u8282\u7801\u89e3\u91ca\u5668\u5de5\u4f5c\u65f6\u5c31\u662f\u901a\u8fc7\u6539\u53d8\u8fd9\u4e2a\u8ba1\u6570\u5668\u7684\u503c\u6765\u9009\u53d6\u4e0b\u4e00\u6761\u9700\u8981\u6267\u884c\u7684\u5b57\u8282\u7801\u6307\u4ee4\u3002<br \/> \u5b83\u662f\u552f\u4e00\u4e00\u4e2a\u5728Java\u865a\u62df\u673a\u89c4\u8303\u4e2d\u6ca1\u6709\u89c4\u5b9a\u4efb\u4f55outofMemoryError\u60c5\u51b5\u7684\u533a\u57df\u3002<\/p>\n<h2><a id=\"_597\"><\/a>\u4f5c\u7528<\/h2>\n<p>\u7a0b\u5e8f\u8ba1\u6570\u5668\u7528\u6765\u5b58\u50a8\u6307\u5411\u4e0b\u4e00\u6761\u6307\u4ee4\u7684\u5730\u5740\uff0c\u4e5f\u5373\u5c06\u8981\u6267\u884c\u7684\u6307\u4ee4\u4ee3\u7801\u3002\u7531\u6267\u884c\u5f15\u64ce\u8bfb\u53d6\u4e0b\u4e00\u6761\u6307\u4ee4\u3002<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/e8196d223405cda69df72f89eb8c4e4c.png#align=left&amp;display=inline&amp;height=325&amp;originHeight=520&amp;originWidth=604&amp;size=0&amp;status=done&amp;style=none&amp;width=377\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/e8196d223405cda69df72f89eb8c4e4c.png#align=left&amp;display=inline&amp;height=325&amp;originHeight=520&amp;originWidth=604&amp;size=0&amp;status=done&amp;style=none&amp;width=377\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"_600\"><\/a>\u4ee3\u7801\u6f14\u793a<\/h2>\n<p>\u6211\u4eec\u9996\u5148\u5199\u4e00\u4e2a\u7b80\u5355\u7684\u4ee3\u7801<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">PCRegisterTest<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">int<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">10<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">int<\/span> j <span class=\"token operator\">=<\/span> <span class=\"token number\">20<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">int<\/span> k <span class=\"token operator\">=<\/span> i <span class=\"token operator\">+<\/span> j<span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u7136\u540e\u5c06\u4ee3\u7801\u8fdb\u884c\u7f16\u8bd1\u6210\u5b57\u8282\u7801\u6587\u4ef6\uff0c\u6211\u4eec\u518d\u6b21\u67e5\u770b \uff0c\u53d1\u73b0\u5728\u5b57\u8282\u7801\u7684\u5de6\u8fb9\u6709\u4e00\u4e2a\u884c\u53f7\u6807\u8bc6\uff0c\u5b83\u5176\u5b9e\u5c31\u662f\u6307\u4ee4\u5730\u5740\uff0c\u7528\u4e8e\u6307\u5411\u5f53\u524d\u6267\u884c\u5230\u54ea\u91cc\u3002<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token number\">0<\/span><span class=\"token operator\">:<\/span> bipush        <span class=\"token number\">10<\/span>\n<span class=\"token number\">2<\/span><span class=\"token operator\">:<\/span> istore_1\n<span class=\"token number\">3<\/span><span class=\"token operator\">:<\/span> bipush        <span class=\"token number\">20<\/span>\n<span class=\"token number\">5<\/span><span class=\"token operator\">:<\/span> istore_2\n<span class=\"token number\">6<\/span><span class=\"token operator\">:<\/span> iload_1\n<span class=\"token number\">7<\/span><span class=\"token operator\">:<\/span> iload_2\n<span class=\"token number\">8<\/span><span class=\"token operator\">:<\/span> iadd\n<span class=\"token number\">9<\/span><span class=\"token operator\">:<\/span> istore_3\n<span class=\"token number\">10<\/span><span class=\"token operator\">:<\/span> <span class=\"token keyword\">return<\/span>\n<\/code><\/pre>\n<p><strong>\u901a\u8fc7PC\u5bc4\u5b58\u5668\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u77e5\u9053\u5f53\u524d\u7a0b\u5e8f\u6267\u884c\u5230\u54ea\u4e00\u6b65\u4e86<\/strong><br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/c5fefd2948f2d98f57d319bb391f208d.png#align=left&amp;display=inline&amp;height=236&amp;originHeight=448&amp;originWidth=1034&amp;size=0&amp;status=done&amp;style=none&amp;width=544\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/c5fefd2948f2d98f57d319bb391f208d.png#align=left&amp;display=inline&amp;height=236&amp;originHeight=448&amp;originWidth=1034&amp;size=0&amp;status=done&amp;style=none&amp;width=544\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"_625\"><\/a><\/h2>\n<h2><a id=\"_626\"><\/a><\/h2>\n<h2><a id=\"PC_627\"><\/a>\u4f7f\u7528PC\u5bc4\u5b58\u5668\u5b58\u50a8\u5b57\u8282\u7801\u6307\u4ee4\u5730\u5740\u6709\u4ec0\u4e48\u7528\u5462\uff1f<\/h2>\n<p><strong>\u56e0\u4e3aCPU\u9700\u8981\u4e0d\u505c\u7684\u5207\u6362\u5404\u4e2a\u7ebf\u7a0b\uff0c\u8fd9\u65f6\u5019\u5207\u6362\u56de\u6765\u4ee5\u540e\uff0c\u5c31\u5f97\u77e5\u9053\u63a5\u7740\u4ece\u54ea\u5f00\u59cb\u7ee7\u7eed\u6267\u884c\u3002<\/strong><br \/> JVM\u7684\u5b57\u8282\u7801\u89e3\u91ca\u5668\u5c31\u9700\u8981\u901a\u8fc7\u6539\u53d8PC\u5bc4\u5b58\u5668\u7684\u503c\u6765\u660e\u786e\u4e0b\u4e00\u6761\u5e94\u8be5\u6267\u884c\u4ec0\u4e48\u6837\u7684\u5b57\u8282\u7801\u6307\u4ee4\u3002<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/5f91ada77b925850973fd3de0f1b25ae.png#align=left&amp;display=inline&amp;height=206&amp;originHeight=339&amp;originWidth=432&amp;size=0&amp;status=done&amp;style=none&amp;width=262\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/5f91ada77b925850973fd3de0f1b25ae.png#align=left&amp;display=inline&amp;height=206&amp;originHeight=339&amp;originWidth=432&amp;size=0&amp;status=done&amp;style=none&amp;width=262\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"PC_635\"><\/a>PC\u5bc4\u5b58\u5668\u4e3a\u4ec0\u4e48\u88ab\u8bbe\u5b9a\u4e3a\u79c1\u6709\u7684\uff1f<\/h2>\n<p>\u6211\u4eec\u90fd\u77e5\u9053\u6240\u8c13\u7684\u591a\u7ebf\u7a0b\u5728\u4e00\u4e2a\u7279\u5b9a\u7684\u65f6\u95f4\u6bb5\u5185\u53ea\u4f1a\u6267\u884c\u5176\u4e2d\u67d0\u4e00\u4e2a\u7ebf\u7a0b\u7684\u65b9\u6cd5\uff0cCPU\u4f1a\u4e0d\u505c\u5730\u505a\u4efb\u52a1\u5207\u6362\uff0c\u8fd9\u6837\u5fc5\u7136\u5bfc\u81f4\u7ecf\u5e38\u4e2d\u65ad\u6216\u6062\u590d\uff0c\u5982\u4f55\u4fdd\u8bc1\u5206\u6beb\u65e0\u5dee\u5462\uff1f<br \/> <strong>\u4e3a\u4e86\u80fd\u591f\u51c6\u786e\u5730\u8bb0\u5f55\u5404\u4e2a\u7ebf\u7a0b\u6b63\u5728\u6267\u884c\u7684\u5f53\u524d\u5b57\u8282\u7801\u6307\u4ee4\u5730\u5740\uff0c\u6700\u597d\u7684\u529e\u6cd5\u81ea\u7136\u662f\u4e3a\u6bcf\u4e00\u4e2a\u7ebf\u7a0b\u90fd\u5206\u914d\u4e00\u4e2aPC\u5bc4\u5b58\u5668\uff0c\u8fd9\u6837\u4e00\u6765\u5404\u4e2a\u7ebf\u7a0b\u4e4b\u95f4\u4fbf\u53ef\u4ee5\u8fdb\u884c\u72ec\u7acb\u8ba1\u7b97\uff0c\u4ece\u800c\u4e0d\u4f1a\u51fa\u73b0\u76f8\u4e92\u5e72\u6270\u7684\u60c5\u51b5\u3002<\/strong><br \/> **<br \/> \u7531\u4e8eCPU\u65f6\u95f4\u7247\u8f6e\u9650\u5236\uff0c\u4f17\u591a\u7ebf\u7a0b\u5728\u5e76\u53d1\u6267\u884c\u8fc7\u7a0b\u4e2d\uff0c\u4efb\u4f55\u4e00\u4e2a\u786e\u5b9a\u7684\u65f6\u523b\uff0c\u4e00\u4e2a\u5904\u7406\u5668\u6216\u8005\u591a\u6838\u5904\u7406\u5668\u4e2d\u7684\u4e00\u4e2a\u5185\u6838\uff0c\u53ea\u4f1a\u6267\u884c\u67d0\u4e2a\u7ebf\u7a0b\u4e2d\u7684\u4e00\u6761\u6307\u4ee4\u3002<br \/> \u8fd9\u6837\u5fc5\u7136\u5bfc\u81f4\u7ecf\u5e38\u4e2d\u65ad\u6216\u6062\u590d\uff0c\u5982\u4f55\u4fdd\u8bc1\u5206\u6beb\u65e0\u5dee\u5462\uff1f\u6bcf\u4e2a\u7ebf\u7a0b\u5728\u521b\u5efa\u540e\uff0c\u90fd\u4f1a\u4ea7\u751f\u81ea\u5df1\u7684\u7a0b\u5e8f\u8ba1\u6570\u5668\u548c\u6808\u5e27\uff0c\u7a0b\u5e8f\u8ba1\u6570\u5668\u5728\u5404\u4e2a\u7ebf\u7a0b\u4e4b\u95f4\u4e92\u4e0d\u5f71\u54cd\u3002<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/c383af8c2c1b94f33bb2451bdda01f38.png#align=left&amp;display=inline&amp;height=224&amp;originHeight=542&amp;originWidth=691&amp;size=0&amp;status=done&amp;style=none&amp;width=286\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/c383af8c2c1b94f33bb2451bdda01f38.png#align=left&amp;display=inline&amp;height=224&amp;originHeight=542&amp;originWidth=691&amp;size=0&amp;status=done&amp;style=none&amp;width=286\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"_642\"><\/a><\/h2>\n<h2><a id=\"CPU_643\"><\/a>CPU\u65f6\u95f4\u7247<\/h2>\n<p>CPU\u65f6\u95f4\u7247\u5373CPU\u5206\u914d\u7ed9\u5404\u4e2a\u7a0b\u5e8f\u7684\u65f6\u95f4\uff0c\u6bcf\u4e2a\u7ebf\u7a0b\u88ab\u5206\u914d\u4e00\u4e2a\u65f6\u95f4\u6bb5\uff0c\u79f0\u4f5c\u5b83\u7684\u65f6\u95f4\u7247\u3002<br \/> \u5728\u5b8f\u89c2\u4e0a\uff1a\u6211\u4eec\u53ef\u4ee5\u540c\u65f6\u6253\u5f00\u591a\u4e2a\u5e94\u7528\u7a0b\u5e8f\uff0c\u6bcf\u4e2a\u7a0b\u5e8f\u5e76\u884c\u4e0d\u6096\uff0c\u540c\u65f6\u8fd0\u884c\u3002<br \/> \u4f46\u5728\u5fae\u89c2\u4e0a\uff1a\u7531\u4e8e\u53ea\u6709\u4e00\u4e2aCPU\uff0c\u4e00\u6b21\u53ea\u80fd\u5904\u7406\u7a0b\u5e8f\u8981\u6c42\u7684\u4e00\u90e8\u5206\uff0c\u5982\u4f55\u5904\u7406\u516c\u5e73\uff0c\u4e00\u79cd\u65b9\u6cd5\u5c31\u662f\u5f15\u5165\u65f6\u95f4\u7247\uff0c\u6bcf\u4e2a\u7a0b\u5e8f\u8f6e\u6d41\u6267\u884c\u3002<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/00822d74ea55baf29b7d4dfa4194e73a.png#align=left&amp;display=inline&amp;height=123&amp;originHeight=123&amp;originWidth=417&amp;size=0&amp;status=done&amp;style=none&amp;width=417\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/00822d74ea55baf29b7d4dfa4194e73a.png#align=left&amp;display=inline&amp;height=123&amp;originHeight=123&amp;originWidth=417&amp;size=0&amp;status=done&amp;style=none&amp;width=417\" alt=\"\"><\/noscript><\/p>\n<h1><a id=\"_648\"><\/a><\/h1>\n<h1><a id=\"_649\"><\/a>\u672c\u5730\u65b9\u6cd5\u63a5\u53e3<\/h1>\n<h2><a id=\"_650\"><\/a>\u4ec0\u4e48\u662f\u672c\u5730\u65b9\u6cd5<\/h2>\n<p>\u7b80\u5355\u5730\u8bb2\uff0c\u4e00\u4e2aNative Method\u662f\u4e00\u4e2aJava\u8c03\u7528\u975eJava\u4ee3\u7801\u7684\u63a5\u56d7\u3002<\/p>\n<p>\u4e00\u4e2aNative Method\u662f\u8fd9\u6837\u4e00\u4e2a\u65b9\u6cd5\uff1a\u8be5\u65b9\u6cd5\u7684\u5b9e\u73b0\u7531\u975eJava\u8bed\u8a00\u5b9e\u73b0\uff0c\u6bd4\u5982C\u3002\u8fd9\u4e2a\u7279\u5f81\u5e76\u975eJava\u6240\u7279\u6709\uff0c\u5f88\u591a\u5176\u5b83\u7684\u7f16\u7a0b\u8bed\u8a00\u90fd\u6709\u8fd9\u4e00\u673a\u5236\uff0c\u6bd4\u5982\u5728C++\u4e2d\uff0c\u4f60\u53ef\u4ee5\u7528extern \u201cc\u201d \u544a\u77e5c++\u7f16\u8bd1\u5668\u53bb\u8c03\u7528\u4e00\u4e2ac\u7684\u51fd\u6570\u3002<br \/> \u201cA native method is a Java method whose implementation is provided by non-java code.\u201d\uff08\u672c\u5730\u65b9\u6cd5\u662f\u4e00\u4e2a\u975eJava\u7684\u65b9\u6cd5\uff0c\u5b83\u7684\u5177\u4f53\u5b9e\u73b0\u662f\u975eJava\u4ee3\u7801\u7684\u5b9e\u73b0\uff09<br \/> \u5728\u5b9a\u4e49\u4e00\u4e2anative method\u65f6\uff0c\u5e76\u4e0d\u63d0\u4f9b\u5b9e\u73b0\u4f53\uff08\u6709\u4e9b\u50cf\u5b9a\u4e49\u4e00\u4e2aJava interface\uff09\uff0c\u56e0\u4e3a\u5176\u5b9e\u73b0\u4f53\u662f\u7531\u975ejava\u8bed\u8a00\u5728\u5916\u9762\u5b9e\u73b0\u7684\u3002<br \/> \u672c\u5730\u63a5\u53e3\u7684\u4f5c\u7528\u662f\u878d\u5408\u4e0d\u540c\u7684\u7f16\u7a0b\u8bed\u8a00\u4e3aJava\u6240\u7528\uff0c\u5b83\u7684\u521d\u8877\u662f\u878d\u5408C\/C++\u7a0b\u5e8f\u3002<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/500de8cd4d95fed685dfe469442a5a4a.png#align=left&amp;display=inline&amp;height=332&amp;originHeight=507&amp;originWidth=812&amp;size=0&amp;status=done&amp;style=none&amp;width=531\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/500de8cd4d95fed685dfe469442a5a4a.png#align=left&amp;display=inline&amp;height=332&amp;originHeight=507&amp;originWidth=812&amp;size=0&amp;status=done&amp;style=none&amp;width=531\" alt=\"\"><\/noscript><br \/> \u4ee3\u7801\u4e3e\u4f8b\u8bf4\u660eNative\u65b9\u6cd5\u662f\u5982\u4f55\u7f16\u5199\u7684<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">IhaveNatives<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">native<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">Native1<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> x<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">native<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">long<\/span> <span class=\"token function\">Native2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">native<\/span> <span class=\"token keyword\">synchronized<\/span> <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">float<\/span> <span class=\"token function\">Native3<\/span><span class=\"token punctuation\">(<\/span>Object o<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">native<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">Natives<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> ary<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">throws<\/span> Exception<span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<blockquote>\n<p>\u9700\u8981\u6ce8\u610f\u7684\u662f\uff1a\u6807\u8bc6\u7b26native\u53ef\u4ee5\u4e0e\u5176\u5b83java\u6807\u8bc6\u7b26\u8fde\u7528\uff0c\u4f46\u662fabstract\u9664\u5916<\/p>\n<\/blockquote>\n<h2><a id=\"_670\"><\/a><\/h2>\n<h2><a id=\"Native_Method_671\"><\/a>\u4e3a\u4ec0\u4e48\u4f7f\u7528Native Method\uff1f<\/h2>\n<p>Java\u4f7f\u7528\u8d77\u6765\u975e\u5e38\u65b9\u4fbf\uff0c\u7136\u800c\u6709\u4e9b\u5c42\u6b21\u7684\u4efb\u52a1\u7528Java\u5b9e\u73b0\u8d77\u6765\u4e0d\u5bb9\u6613\uff0c\u6216\u8005\u6211\u4eec\u5bf9\u7a0b\u5e8f\u7684\u6548\u7387\u5f88\u5728\u610f\u65f6\uff0c\u95ee\u9898\u5c31\u6765\u4e86\u3002<\/p>\n<ol>\n<li><strong>\u4e0eJava\u73af\u5883\u7684\u4ea4\u4e92<\/strong><\/li>\n<\/ol>\n<p>\u6709\u65f6Java\u5e94\u7528\u9700\u8981\u4e0eJava\u5916\u9762\u7684\u73af\u5883\u4ea4\u4e92\uff0c\u8fd9\u662f\u672c\u5730\u65b9\u6cd5\u5b58\u5728\u7684\u4e3b\u8981\u539f\u56e0\u3002\u4f60\u53ef\u4ee5\u60f3\u60f3Java\u9700\u8981\u4e0e\u4e00\u4e9b\u5e95\u5c42\u7cfb\u7edf\uff0c\u5982\u64cd\u4f5c\u7cfb\u7edf\u6216\u67d0\u4e9b\u786c\u4ef6\u4ea4\u6362\u4fe1\u606f\u65f6\u7684\u60c5\u51b5\u3002\u672c\u5730\u65b9\u6cd5\u6b63\u662f\u8fd9\u6837\u4e00\u79cd\u4ea4\u6d41\u673a\u5236\uff1a\u5b83\u4e3a\u6211\u4eec\u63d0\u4f9b\u4e86\u4e00\u4e2a\u975e\u5e38\u7b80\u6d01\u7684\u63a5\u53e3\uff0c\u800c\u4e14\u6211\u4eec\u65e0\u9700\u53bb\u4e86\u89e3Java\u5e94\u7528\u4e4b\u5916\u7684\u7e41\u7410\u7684\u7ec6\u8282\u3002<\/p>\n<ol start=\"2\">\n<li><strong>\u4e0e\u64cd\u4f5c\u7cfb\u7edf\u7684\u4ea4\u4e92<\/strong><\/li>\n<\/ol>\n<p>JVM\u652f\u6301\u7740Java\u8bed\u8a00\u672c\u8eab\u548c\u8fd0\u884c\u65f6\u5e93\uff0c\u5b83\u662fJava\u7a0b\u5e8f\u8d56\u4ee5\u751f\u5b58\u7684\u5e73\u53f0\uff0c\u5b83\u7531\u4e00\u4e2a\u89e3\u91ca\u5668\uff08\u89e3\u91ca\u5b57\u8282\u7801\uff09\u548c\u4e00\u4e9b\u8fde\u63a5\u5230\u672c\u5730\u4ee3\u7801\u7684\u5e93\u7ec4\u6210\u3002\u7136\u800c\u4e0d\u7ba1\u600e\u6837\uff0c\u5b83\u6bd5\u7adf\u4e0d\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u7cfb\u7edf\uff0c\u5b83\u7ecf\u5e38\u4f9d\u8d56\u4e8e\u4e00\u5e95\u5c42\u7cfb\u7edf\u7684\u652f\u6301\u3002\u8fd9\u4e9b\u5e95\u5c42\u7cfb\u7edf\u5e38\u5e38\u662f\u5f3a\u5927\u7684\u64cd\u4f5c\u7cfb\u7edf\u3002\u901a\u8fc7\u4f7f\u7528\u672c\u5730\u65b9\u6cd5\uff0c\u6211\u4eec\u5f97\u4ee5\u7528Java\u5b9e\u73b0\u4e86jre\u7684\u4e0e\u5e95\u5c42\u7cfb\u7edf\u7684\u4ea4\u4e92\uff0c\u751a\u81f3JVM\u7684\u4e00\u4e9b\u90e8\u5206\u5c31\u662f\u7528c\u5199\u7684\u3002\u8fd8\u6709\uff0c\u5982\u679c\u6211\u4eec\u8981\u4f7f\u7528\u4e00\u4e9bJava\u8bed\u8a00\u672c\u8eab\u6ca1\u6709\u63d0\u4f9b\u5c01\u88c5\u7684\u64cd\u4f5c\u7cfb\u7edf\u7684\u7279\u6027\u65f6\uff0c\u6211\u4eec\u4e5f\u9700\u8981\u4f7f\u7528\u672c\u5730\u65b9\u6cd5\u3002<\/p>\n<ol start=\"3\">\n<li><strong>Sun\u2019s Java<\/strong><\/li>\n<\/ol>\n<p>Sun\u7684\u89e3\u91ca\u5668\u662f\u7528C\u5b9e\u73b0\u7684\uff0c\u8fd9\u4f7f\u5f97\u5b83\u80fd\u50cf\u4e00\u4e9b\u666e\u901a\u7684C\u4e00\u6837\u4e0e\u5916\u90e8\u4ea4\u4e92\u3002jre\u5927\u90e8\u5206\u662f\u7528Java\u5b9e\u73b0\u7684\uff0c\u5b83\u4e5f\u901a\u8fc7\u4e00\u4e9b\u672c\u5730\u65b9\u6cd5\u4e0e\u5916\u754c\u4ea4\u4e92\u3002\u4f8b\u5982\uff1a\u7c7bjava.lang.Thread\u7684setPriority\uff08\uff09\u65b9\u6cd5\u662f\u7528Java\u5b9e\u73b0\u7684\uff0c\u4f46\u662f\u5b83\u5b9e\u73b0\u8c03\u7528\u7684\u662f\u8be5\u7c7b\u91cc\u7684\u672c\u5730\u65b9\u6cd5setPriority\uff08\uff09\u3002\u8fd9\u4e2a\u672c\u5730\u65b9\u6cd5\u662f\u7528C\u5b9e\u73b0\u7684\uff0c\u5e76\u88ab\u690d\u5165JVM\u5185\u90e8\uff0c\u5728Windows 95\u7684\u5e73\u53f0\u4e0a\uff0c\u8fd9\u4e2a\u672c\u5730\u65b9\u6cd5\u6700\u7ec8\u5c06\u8c03\u7528Win32 setPriority\uff08\uff09Api\u3002\u8fd9\u662f\u4e00\u4e2a\u672c\u5730\u65b9\u6cd5\u7684\u5177\u4f53\u5b9e\u73b0\u7531JVM\u76f4\u63a5\u63d0\u4f9b\uff0c\u66f4\u591a\u7684\u60c5\u51b5\u662f\u672c\u5730\u65b9\u6cd5\u7531\u5916\u90e8\u7684\u52a8\u6001\u94fe\u63a5\u5e93\uff08external dynamic link library\uff09\u63d0\u4f9b\uff0c\u7136\u540e\u88abJVM\u8c03\u7528\u3002<\/p>\n<h2><a id=\"_685\"><\/a><\/h2>\n<h2><a id=\"_686\"><\/a>\u672c\u5730\u65b9\u6cd5\u73b0\u72b6<\/h2>\n<p>\u76ee\u524d\u8be5\u65b9\u6cd5\u4f7f\u7528\u7684\u8d8a\u6765\u8d8a\u5c11\u4e86\uff0c\u9664\u975e\u662f\u4e0e\u786c\u4ef6\u6709\u5173\u7684\u5e94\u7528\uff0c\u6bd4\u5982\u901a\u8fc7Java\u7a0b\u5e8f\u9a71\u52a8\u6253\u5370\u673a\u6216\u8005Java\u7cfb\u7edf\u7ba1\u7406\u751f\u4ea7\u8bbe\u5907\uff0c\u5728\u4f01\u4e1a\u7ea7\u5e94\u7528\u4e2d\u5df2\u7ecf\u6bd4\u8f83\u5c11\u89c1\u3002\u56e0\u4e3a\u73b0\u5728\u7684\u5f02\u6784\u9886\u57df\u95f4\u7684\u901a\u4fe1\u5f88\u53d1\u8fbe\uff0c\u6bd4\u5982\u53ef\u4ee5\u4f7f\u7528Socket\u901a\u4fe1\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528Web Service\u7b49\u7b49\uff0c\u4e0d\u591a\u505a\u4ecb\u7ecd\u3002<\/p>\n<h1><a id=\"_690\"><\/a>\u672c\u5730\u65b9\u6cd5\u6808<\/h1>\n<p><strong>Java\u865a\u62df\u673a\u6808<\/strong>\u4e8e\u7ba1\u7406Java\u65b9\u6cd5\u7684\u8c03\u7528\uff0c\u800c<strong>\u672c\u5730\u65b9\u6cd5\u6808\u7528\u4e8e\u7ba1\u7406\u672c\u5730\u65b9\u6cd5\u7684\u8c03\u7528<\/strong>\u3002<br \/> \u672c\u5730\u65b9\u6cd5\u6808\uff0c\u4e5f\u662f\u7ebf\u7a0b\u79c1\u6709\u7684\u3002<br \/> \u5141\u8bb8\u88ab\u5b9e\u73b0\u6210\u56fa\u5b9a\u6216\u8005\u662f\u53ef\u52a8\u6001\u6269\u5c55\u7684\u5185\u5b58\u5927\u5c0f\u3002\uff08\u5728\u5185\u5b58\u6ea2\u51fa\u65b9\u9762\u662f\u76f8\u540c\u7684\uff09<\/p>\n<ul>\n<li>\u5982\u679c\u7ebf\u7a0b\u8bf7\u6c42\u5206\u914d\u7684\u6808\u5bb9\u91cf\u8d85\u8fc7\u672c\u5730\u65b9\u6cd5\u6808\u5141\u8bb8\u7684\u6700\u5927\u5bb9\u91cf\uff0cJava\u865a\u62df\u673a\u5c06\u4f1a\u629b\u51fa\u4e00\u4e2astackoverflowError \u5f02\u5e38\u3002<\/li>\n<li>\u5982\u679c\u672c\u5730\u65b9\u6cd5\u6808\u53ef\u4ee5\u52a8\u6001\u6269\u5c55\uff0c\u5e76\u4e14\u5728\u5c1d\u8bd5\u6269\u5c55\u7684\u65f6\u5019\u65e0\u6cd5\u7533\u8bf7\u5230\u8db3\u591f\u7684\u5185\u5b58\uff0c\u6216\u8005\u5728\u521b\u5efa\u65b0\u7684\u7ebf\u7a0b\u65f6\u6ca1\u6709\u8db3\u591f\u7684\u5185\u5b58\u53bb\u521b\u5efa\u5bf9\u5e94\u7684\u672c\u5730\u65b9\u6cd5\u6808\uff0c\u90a3\u4e48Java\u865a\u62df\u673a\u5c06\u4f1a\u629b\u51fa\u4e00\u4e2aoutofMemoryError\u5f02\u5e38\u3002<\/li>\n<\/ul>\n<p>\u672c\u5730\u65b9\u6cd5\u662f\u4f7f\u7528C\u8bed\u8a00\u5b9e\u73b0\u7684\u3002<br \/> \u5b83\u7684\u5177\u4f53\u505a\u6cd5\u662fNative Method Stack\u4e2d\u767b\u8bb0native\u65b9\u6cd5\uff0c\u5728Execution Engine \u6267\u884c\u65f6\u52a0\u8f7d\u672c\u5730\u65b9\u6cd5\u5e93\u3002<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/9a24c59be3bb5b6d4fa9e16299e85f76.png#align=left&amp;display=inline&amp;height=317&amp;originHeight=522&amp;originWidth=676&amp;size=0&amp;status=done&amp;style=none&amp;width=410\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/9a24c59be3bb5b6d4fa9e16299e85f76.png#align=left&amp;display=inline&amp;height=317&amp;originHeight=522&amp;originWidth=676&amp;size=0&amp;status=done&amp;style=none&amp;width=410\" alt=\"\"><\/noscript><br \/> \u5f53\u67d0\u4e2a\u7ebf\u7a0b\u8c03\u7528\u4e00\u4e2a\u672c\u5730\u65b9\u6cd5\u65f6\uff0c\u5b83\u5c31\u8fdb\u5165\u4e86\u4e00\u4e2a\u5168\u65b0\u7684\u5e76\u4e14\u4e0d\u518d\u53d7\u865a\u62df\u673a\u9650\u5236\u7684\u4e16\u754c\u3002\u5b83\u548c\u865a\u62df\u673a\u62e5\u6709\u540c\u6837\u7684\u6743\u9650\u3002<\/p>\n<ul>\n<li>\u672c\u5730\u65b9\u6cd5\u53ef\u4ee5\u901a\u8fc7\u672c\u5730\u65b9\u6cd5\u63a5\u53e3\u6765\u8bbf\u95ee\u865a\u62df\u673a\u5185\u90e8\u7684\u8fd0\u884c\u65f6\u6570\u636e\u533a\u3002<\/li>\n<li>\u5b83\u751a\u81f3\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u672c\u5730\u5904\u7406\u5668\u4e2d\u7684\u5bc4\u5b58\u5668<\/li>\n<li>\u76f4\u63a5\u4ece\u672c\u5730\u5185\u5b58\u7684\u5806\u4e2d\u5206\u914d\u4efb\u610f\u6570\u91cf\u7684\u5185\u5b58\u3002<\/li>\n<\/ul>\n<p>\u5e76\u4e0d\u662f\u6240\u6709\u7684JVM\u90fd\u652f\u6301\u672c\u5730\u65b9\u6cd5\u3002\u56e0\u4e3aJava\u865a\u62df\u673a\u89c4\u8303\u5e76\u6ca1\u6709\u660e\u786e\u8981\u6c42\u672c\u5730\u65b9\u6cd5\u6808\u7684\u4f7f\u7528\u8bed\u8a00\u3001\u5177\u4f53\u5b9e\u73b0\u65b9\u5f0f\u3001\u6570\u636e\u7ed3\u6784\u7b49\u3002\u5982\u679cJVM\u4ea7\u54c1\u4e0d\u6253\u7b97\u652f\u6301native\u65b9\u6cd5\uff0c\u4e5f\u53ef\u4ee5\u65e0\u9700\u5b9e\u73b0\u672c\u5730\u65b9\u6cd5\u6808\u3002<br \/> \u5728Hotspot JVM\u4e2d\uff0c\u76f4\u63a5\u5c06\u672c\u5730\u65b9\u6cd5\u6808\u548c\u865a\u62df\u673a\u6808\u5408\u4e8c\u4e3a\u4e00\u3002<\/p>\n<h1><a id=\"_712\"><\/a>\u4e94\u3001\u865a\u62df\u673a\u6808<\/h1>\n<h2><a id=\"_715\"><\/a>\u7b80\u4ecb<\/h2>\n<h3><a id=\"_716\"><\/a>\u865a\u62df\u673a\u6808\u7684\u51fa\u73b0\u80cc\u666f<\/h3>\n<ol>\n<li>\u7531\u4e8e\u8de8\u5e73\u53f0\u6027\u7684\u8bbe\u8ba1\uff0cJava\u7684\u6307\u4ee4\u90fd\u662f\u6839\u636e\u6808\u6765\u8bbe\u8ba1\u7684\u3002\u4e0d\u540c\u5e73\u53f0CPU\u67b6\u6784\u4e0d\u540c\uff0c\u6240\u4ee5\u4e0d\u80fd\u8bbe\u8ba1\u4e3a\u57fa\u4e8e\u5bc4\u5b58\u5668\u7684\u3002\uff08\u5982\u679c\u8bbe\u8ba1\u6210\u57fa\u4e8e\u5bc4\u5b58\u5668\u7684\uff0c\u8026\u5408\u5ea6\u9ad8\uff0c\u6027\u80fd\u4f1a\u6709\u6240\u63d0\u5347\uff0c\u56e0\u4e3a\u53ef\u4ee5\u5bf9\u5177\u4f53\u7684CPU\u67b6\u6784\u8fdb\u884c\u4f18\u5316\uff0c\u4f46\u662f\u8de8\u5e73\u53f0\u6027\u5927\u5927\u964d\u4f4e\uff0c\u53c2\u8003\u4e4b\u524d\u7684JVM\u7684\u4e24\u79cd\u67b6\u6784\u6a21\u578b\uff09\u3002<\/li>\n<li>\u4f18\u70b9\u662f\u8de8\u5e73\u53f0\uff0c\u7f16\u8bd1\u5668\u5bb9\u6613\u5b9e\u73b0\uff0c\u7f3a\u70b9\u662f\u6027\u80fd\u4e0b\u964d\uff0c\u5b9e\u73b0\u540c\u6837\u7684\u529f\u80fd\u9700\u8981\u66f4\u591a\u7684\u6307\u4ee4\u3002<\/li>\n<\/ol>\n<h3><a id=\"_723\"><\/a>\u5185\u5b58\u4e2d\u7684\u6808\u4e0e\u5806*<\/h3>\n<ol>\n<li><strong>\u9996\u5148\u6808\u662f\u8fd0\u884c\u65f6\u7684\u5355\u4f4d\uff0c\u800c\u5806\u662f\u5b58\u50a8\u7684\u5355\u4f4d\u3002<\/strong><\/li>\n<li><strong>\u5373\uff1a\u6808\u89e3\u51b3\u7a0b\u5e8f\u7684\u8fd0\u884c\u95ee\u9898\uff0c\u5373\u7a0b\u5e8f\u5982\u4f55\u6267\u884c\uff0c\u6216\u8005\u8bf4\u5982\u4f55\u5904\u7406\u6570\u636e\u3002\u5806\u89e3\u51b3\u7684\u662f\u6570\u636e\u5b58\u50a8\u7684\u95ee\u9898\uff0c\u5373\u6570\u636e\u600e\u4e48\u653e\uff0c\u653e\u54ea\u91cc<\/strong><\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/2518b97ea5a4718fcc074036069ea162.png#align=left&amp;display=inline&amp;height=289&amp;originHeight=437&amp;originWidth=560&amp;size=0&amp;status=done&amp;style=none&amp;width=370\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/2518b97ea5a4718fcc074036069ea162.png#align=left&amp;display=inline&amp;height=289&amp;originHeight=437&amp;originWidth=560&amp;size=0&amp;status=done&amp;style=none&amp;width=370\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"_733\"><\/a>\u865a\u62df\u673a\u6808\u57fa\u672c\u5185\u5bb9<\/h3>\n<ul>\n<li>Java\u865a\u62df\u673a\u6808\u662f\u4ec0\u4e48\uff1f\n<ul>\n<li>Java\u865a\u62df\u673a\u6808\uff08Java Virtual Machine Stack\uff09\uff0c\u65e9\u671f\u4e5f\u53ebJava\u6808\u3002\u6bcf\u4e2a\u7ebf\u7a0b\u5728\u521b\u5efa\u65f6\u90fd\u4f1a\u521b\u5efa\u4e00\u4e2a\u865a\u62df\u673a\u6808\uff0c\u5176\u5185\u90e8\u4fdd\u5b58\u4e00\u4e2a\u4e2a\u7684\u6808\u5e27\uff08Stack Frame\uff09\uff0c\u4e00\u4e2a\u6808\u5e27<strong>\u5bf9\u5e94\u7740\u4e00\u6b21\u7684Java\u65b9\u6cd5\u8c03\u7528<\/strong>\uff0c\u6808\u662f\u7ebf\u7a0b\u79c1\u6709\u7684\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">StackTest<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        StackTest test <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">StackTest<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        test<span class=\"token punctuation\">.<\/span><span class=\"token function\">methodA<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">methodA<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">int<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">10<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">int<\/span> j <span class=\"token operator\">=<\/span> <span class=\"token number\">20<\/span><span class=\"token punctuation\">;<\/span>\n\n        <span class=\"token function\">methodB<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">methodB<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">int<\/span> k <span class=\"token operator\">=<\/span> <span class=\"token number\">30<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">int<\/span> m <span class=\"token operator\">=<\/span> <span class=\"token number\">40<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/5414be7ecc76cb3f695e82c4bee6a2a7.png#align=left&amp;display=inline&amp;height=231&amp;originHeight=650&amp;originWidth=978&amp;size=0&amp;status=done&amp;style=none&amp;width=348\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/5414be7ecc76cb3f695e82c4bee6a2a7.png#align=left&amp;display=inline&amp;height=231&amp;originHeight=650&amp;originWidth=978&amp;size=0&amp;status=done&amp;style=none&amp;width=348\" alt=\"\"><\/noscript><\/p>\n<ul>\n<li>\u865a\u62df\u673a\u6808\u7684\u751f\u547d\u5468\u671f\n<ul>\n<li>\u751f\u547d\u5468\u671f\u548c\u7ebf\u7a0b\u4e00\u81f4\uff0c\u4e5f\u5c31\u662f\u7ebf\u7a0b\u7ed3\u675f\u4e86\uff0c\u8be5\u865a\u62df\u673a\u6808\u4e5f\u9500\u6bc1\u4e86<\/li>\n<\/ul>\n<\/li>\n<li>\u865a\u62df\u673a\u6808\u7684\u4f5c\u7528\n<ul>\n<li>\u4e3b\u7ba1Java\u7a0b\u5e8f\u7684\u8fd0\u884c\uff0c\u5b83\u4fdd\u5b58\u65b9\u6cd5\u7684\u5c40\u90e8\u53d8\u91cf\uff088 \u79cd\u57fa\u672c\u6570\u636e\u7c7b\u578b\u3001\u5bf9\u8c61\u7684\u5f15\u7528\u5730\u5740\uff09\u3001\u90e8\u5206\u7ed3\u679c\uff0c\u5e76\u53c2\u4e0e\u65b9\u6cd5\u7684\u8c03\u7528\u548c\u8fd4\u56de\u3002<\/li>\n<li>\u5c40\u90e8\u53d8\u91cf\uff0c\u5b83\u662f\u76f8\u6bd4\u4e8e\u6210\u5458\u53d8\u91cf\u6765\u8bf4\u7684\uff08\u6216\u5c5e\u6027\uff09<\/li>\n<li>\u57fa\u672c\u6570\u636e\u7c7b\u578b\u53d8\u91cf VS \u5f15\u7528\u7c7b\u578b\u53d8\u91cf\uff08\u7c7b\u3001\u6570\u7ec4\u3001\u63a5\u53e3\uff09<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><a id=\"_772\"><\/a>\u865a\u62df\u673a\u6808\u7684\u7279\u70b9<\/h3>\n<ul>\n<li>\u6808\u662f\u4e00\u79cd\u5feb\u901f\u6709\u6548\u7684\u5206\u914d\u5b58\u50a8\u65b9\u5f0f\uff0c\u8bbf\u95ee\u901f\u5ea6\u4ec5\u6b21\u4e8e\u7a0b\u5e8f\u8ba1\u6570\u5668\u3002<\/li>\n<li>JVM\u76f4\u63a5\u5bf9Java\u6808\u7684\u64cd\u4f5c\u53ea\u6709\u4e24\u4e2a\uff1a\n<ul>\n<li>\u6bcf\u4e2a\u65b9\u6cd5\u6267\u884c\uff0c\u4f34\u968f\u7740<strong>\u8fdb\u6808<\/strong>\uff08\u5165\u6808\u3001\u538b\u6808\uff09<\/li>\n<li>\u6267\u884c\u7ed3\u675f\u540e\u7684<strong>\u51fa\u6808<\/strong>\u5de5\u4f5c<\/li>\n<\/ul>\n<\/li>\n<li>\u5bf9\u4e8e\u6808\u6765\u8bf4\u4e0d\u5b58\u5728\u5783\u573e\u56de\u6536\u95ee\u9898\n<ul>\n<li>\u6808\u4e0d\u9700\u8981GC\uff0c\u4f46\u662f\u53ef\u80fd\u5b58\u5728OOM<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/5fbd19516a0c76bebc25b1d9215ba879.png#align=left&amp;display=inline&amp;height=310&amp;originHeight=547&amp;originWidth=275&amp;size=0&amp;status=done&amp;style=none&amp;width=156\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/5fbd19516a0c76bebc25b1d9215ba879.png#align=left&amp;display=inline&amp;height=310&amp;originHeight=547&amp;originWidth=275&amp;size=0&amp;status=done&amp;style=none&amp;width=156\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"_787\"><\/a>\u865a\u62df\u673a\u6808\u7684\u5f02\u5e38<\/h3>\n<p><strong>\u9762\u8bd5\u9898\uff1a\u6808\u4e2d\u53ef\u80fd\u51fa\u73b0\u7684\u5f02\u5e38\uff1f<\/strong><\/p>\n<ul>\n<li>Java \u865a\u62df\u673a\u89c4\u8303\u5141\u8bb8Java\u6808\u7684\u5927\u5c0f\u662f\u52a8\u6001\u7684\u6216\u8005\u662f\u56fa\u5b9a\u4e0d\u53d8\u7684\u3002\n<ul>\n<li>\u5982\u679c\u91c7\u7528\u56fa\u5b9a\u5927\u5c0f\u7684Java\u865a\u62df\u673a\u6808\uff0c\u90a3\u6bcf\u4e00\u4e2a\u7ebf\u7a0b\u7684Java\u865a\u62df\u673a\u6808\u5bb9\u91cf\u53ef\u4ee5\u5728\u7ebf\u7a0b\u521b\u5efa\u7684\u65f6\u5019\u72ec\u7acb\u9009\u5b9a\u3002\u5982\u679c\u7ebf\u7a0b<strong>\u8bf7\u6c42\u5206\u914d\u7684\u6808\u5bb9\u91cf\u8d85\u8fc7Java\u865a\u62df\u673a\u6808\u5141\u8bb8\u7684\u6700\u5927\u5bb9\u91cf<\/strong>\uff0cJava\u865a\u62df\u673a\u5c06\u4f1a\u629b\u51fa\u4e00\u4e2a<strong>StackoverflowError<\/strong> \u5f02\u5e38\u3002<\/li>\n<li>\u5982\u679cJava\u865a\u62df\u673a\u6808\u53ef\u4ee5\u52a8\u6001\u6269\u5c55\uff0c\u5e76\u4e14\u5728\u5c1d\u8bd5\u6269\u5c55\u7684\u65f6\u5019\u65e0\u6cd5\u7533\u8bf7\u5230\u8db3\u591f\u7684\u5185\u5b58\uff0c\u6216\u8005\u5728<strong>\u521b\u5efa\u65b0\u7684\u7ebf\u7a0b\u65f6\u6ca1\u6709\u8db3\u591f\u7684\u5185\u5b58\u53bb\u521b\u5efa\u5bf9\u5e94\u7684\u865a\u62df\u673a\u6808<\/strong>\uff0c\u90a3Java\u865a\u62df\u673a\u5c06\u4f1a\u629b\u51fa\u4e00\u4e2a <strong>OutofMemoryError<\/strong> \u5f02\u5e38\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><a id=\"_799\"><\/a>\u8bbe\u7f6e\u6808\u5185\u5b58\u5927\u5c0f<\/h3>\n<h4><a id=\"_800\"><\/a>\u6982\u5ff5<\/h4>\n<blockquote>\n<p>\u591a\u53bb\u5b98\u65b9\u6587\u6863\u770b\u770b\uff1a<a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/11\/tools\/java.html#GUID-3B1CE181-CD30-4178-9602-230B800D4FAE\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/docs.oracle.com\/en\/java\/javase\/11\/tools\/java.html#GUID-3B1CE181-CD30-4178-9602-230B800D4FAE<\/a><br \/> \u5730\u5740\u7ecf\u5e38\u53d8<\/p>\n<\/blockquote>\n<p>\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u53c2\u6570 <strong>-Xss<\/strong> \u9009\u9879\u6765\u8bbe\u7f6e\u7ebf\u7a0b\u7684\u6700\u5927\u6808\u7a7a\u95f4\uff0c\u6808\u7684\u5927\u5c0f\u76f4\u63a5\u51b3\u5b9a\u4e86\u51fd\u6570\u8c03\u7528\u7684\u6700\u5927\u53ef\u8fbe\u6df1\u5ea6\u3002<\/p>\n<blockquote>\n<p>Sets the thread stack size (in bytes). Append the letter <code>k<\/code> or <code>K<\/code> to indicate KB, <code>m<\/code> or <code>M<\/code> to indicate MB, and <code>g<\/code> or <code>G<\/code> to indicate GB. The default value depends on the platform:<\/p>\n<ul>\n<li>Linux\/x64 (64-bit): 1024 KB<\/li>\n<li>macOS (64-bit): 1024 KB<\/li>\n<li>Oracle Solaris\/x64 (64-bit): 1024 KB<\/li>\n<li>Windows: The default value depends on virtual memory<\/li>\n<\/ul>\n<\/blockquote>\n<p>The following examples set the thread stack size to 1024 KB in different units: \u7528\u4e0d\u540c\u5355\u4f4d\u8bbe\u7f6e\u6808\u5185\u5b581024KB\u5927\u5c0f\u7684\u5404\u79cd\u6837\u4f8b<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token operator\">-<\/span>Xss1m\n<span class=\"token operator\">-<\/span>Xss1024k\n<span class=\"token operator\">-<\/span>Xss1048576\n<\/code><\/pre>\n<h4><a id=\"_825\"><\/a>\u4e3e\u4f8b<\/h4>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">StackErrorTest<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">int<\/span> count <span class=\"token operator\">=<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>count<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        count<span class=\"token operator\">++<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>args<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p><strong>\u6ca1\u8bbe\u7f6e\u53c2\u6570\u524d<\/strong><\/p>\n<p>\u90e8\u5206\u8f93\u51fa\u7ed3\u679c\uff1a<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token number\">11404<\/span>\n<span class=\"token number\">11405<\/span>\n<span class=\"token number\">11406<\/span>\nException in thread <span class=\"token string\">\"main\"<\/span> java<span class=\"token punctuation\">.<\/span>lang<span class=\"token punctuation\">.<\/span>StackOverflowError\n\tat sun<span class=\"token punctuation\">.<\/span>nio<span class=\"token punctuation\">.<\/span>cs<span class=\"token punctuation\">.<\/span>UTF_8$Encoder<span class=\"token punctuation\">.<\/span><span class=\"token function\">encodeLoop<\/span><span class=\"token punctuation\">(<\/span>UTF_8<span class=\"token punctuation\">.<\/span>java<span class=\"token operator\">:<\/span><span class=\"token number\">691<\/span><span class=\"token punctuation\">)<\/span>\n<\/code><\/pre>\n<p>\u8bf4\u660e\u6808\u572811406\u8fd9\u4e2a\u6df1\u5ea6\u6ea2\u51fa\u4e86<\/p>\n<p><strong>\u8bbe\u7f6e\u6808\u53c2\u6570\u4e4b\u540e<\/strong><\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/8fa9216ff75bcfd6991b4d3063a95551.png#align=left&amp;display=inline&amp;height=257&amp;originHeight=552&amp;originWidth=1331&amp;size=0&amp;status=done&amp;style=none&amp;width=619\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/8fa9216ff75bcfd6991b4d3063a95551.png#align=left&amp;display=inline&amp;height=257&amp;originHeight=552&amp;originWidth=1331&amp;size=0&amp;status=done&amp;style=none&amp;width=619\" alt=\"\"><\/noscript><\/p>\n<p>\u90e8\u5206\u8f93\u51fa\u7ed3\u679c<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token number\">2474<\/span>\n<span class=\"token number\">2475<\/span>\n<span class=\"token number\">2476<\/span>\nException in thread <span class=\"token string\">\"main\"<\/span> java<span class=\"token punctuation\">.<\/span>lang<span class=\"token punctuation\">.<\/span>StackOverflowError\n\tat sun<span class=\"token punctuation\">.<\/span>nio<span class=\"token punctuation\">.<\/span>cs<span class=\"token punctuation\">.<\/span>UTF_8<span class=\"token punctuation\">.<\/span><span class=\"token function\">updatePositions<\/span><span class=\"token punctuation\">(<\/span>UTF_8<span class=\"token punctuation\">.<\/span>java<span class=\"token operator\">:<\/span><span class=\"token number\">77<\/span><span class=\"token punctuation\">)<\/span>\n<\/code><\/pre>\n<p>\u8bf4\u660e\u53c2\u6570\u8d77\u4f5c\u7528\u4e86<\/p>\n<h2><a id=\"_869\"><\/a>\u6808\u7684\u5b58\u50a8\u5355\u4f4d<\/h2>\n<h3><a id=\"_870\"><\/a>\u6808\u4e2d\u5b58\u50a8\u4ec0\u4e48\uff1f<\/h3>\n<ol>\n<li>\u6bcf\u4e2a\u7ebf\u7a0b\u90fd\u6709\u81ea\u5df1\u7684\u865a\u62df\u673a\u6808\uff0c\u6808\u4e2d\u7684\u6570\u636e\u90fd\u662f\u4ee5\u4e00\u4e2a\u4e2a\u6808\u5e27\uff08Stack Frame\uff09\u7684\u683c\u5f0f\u5b58\u5728<\/li>\n<li><strong>\u5728\u8fd9\u4e2a\u7ebf\u7a0b\u4e0a\u6b63\u5728\u6267\u884c\u7684\u6bcf\u4e2a\u4e2a\u65b9\u6cd5\u90fd\u5404\u81ea\u5bf9\u5e94\u4e00\u4e2a\u4e2a\u6808\u5e27<\/strong>\uff08Stack Frame\uff09\u3002<\/li>\n<li>\u6808\u5e27\u662f\u4e00\u4e2a\u5185\u5b58\u533a\u5757\uff0c\u662f\u4e00\u4e2a\u6570\u636e\u96c6\uff0c<strong>\u7ef4\u7cfb\u7740\u65b9\u6cd5\u6267\u884c\u8fc7\u7a0b\u4e2d\u7684\u5404\u79cd\u6570\u636e\u4fe1\u606f<\/strong>\u3002<\/li>\n<\/ol>\n<h3><a id=\"_878\"><\/a>\u6808\u8fd0\u884c\u539f\u7406<\/h3>\n<ol>\n<li>JVM\u76f4\u63a5\u5bf9Java\u6808\u7684\u6307\u4ee4\u53ea\u6709\u4e24\u4e2a\uff0c\u5c31\u662f\u5bf9\u6808\u5e27\u7684<strong>\u538b\u6808\u548c\u51fa\u6808<\/strong>\uff0c\u9075\u5faa\u5148\u8fdb\u540e\u51fa\uff08\u540e\u8fdb\u5148\u51fa\uff09\u539f\u5219<\/li>\n<li>\u5728\u4e00\u6761\u6d3b\u52a8\u7684\u7ebf\u7a0b\u4e2d\uff0c\u4e00\u4e2a\u65f6\u95f4\u70b9\u4e0a\uff0c\u53ea\u4f1a\u6709\u4e00\u4e2a\u6d3b\u52a8\u7684\u6808\u5e27\u3002\u5373\u53ea\u6709\u5f53\u524d\u6b63\u5728\u6267\u884c\u7684\u65b9\u6cd5\u7684\u6808\u5e27\uff08\u6808\u9876\u6808\u5e27\uff09\u662f\u6709\u6548\u7684\u3002\u8fd9\u4e2a\u6808\u5e27\u88ab\u79f0\u4e3a<strong>\u5f53\u524d\u6808\u5e27\uff08Current Frame\uff09<\/strong>\uff0c<strong>\u4e0e\u5f53\u524d\u6808\u5e27\u76f8\u5bf9\u5e94\u7684\u65b9\u6cd5\u5c31\u662f\u5f53\u524d\u65b9\u6cd5\uff08Current Method\uff09<\/strong>\uff0c<strong>\u5b9a\u4e49\u8fd9\u4e2a\u65b9\u6cd5\u7684\u7c7b\u5c31\u662f\u5f53\u524d\u7c7b\uff08Current Class\uff09<\/strong><\/li>\n<li>\u6267\u884c\u5f15\u64ce\u8fd0\u884c\u7684\u6240\u6709\u5b57\u8282\u7801\u6307\u4ee4\u53ea\u9488\u5bf9\u5f53\u524d\u6808\u5e27\u8fdb\u884c\u64cd\u4f5c\u3002<\/li>\n<li>\u5982\u679c\u5728\u8be5\u65b9\u6cd5\u4e2d\u8c03\u7528\u4e86\u5176\u4ed6\u65b9\u6cd5\uff0c\u5bf9\u5e94\u7684\u65b0\u7684\u6808\u5e27\u4f1a\u88ab\u521b\u5efa\u51fa\u6765\uff0c\u653e\u5728\u6808\u7684\u9876\u7aef\uff0c\u6210\u4e3a\u65b0\u7684\u5f53\u524d\u5e27\u3002<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/be35ee40dd55c917ecac3e41551f57e7.png#align=left&amp;display=inline&amp;height=253&amp;originHeight=490&amp;originWidth=907&amp;size=0&amp;status=done&amp;style=none&amp;width=469\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/be35ee40dd55c917ecac3e41551f57e7.png#align=left&amp;display=inline&amp;height=253&amp;originHeight=490&amp;originWidth=907&amp;size=0&amp;status=done&amp;style=none&amp;width=469\" alt=\"\"><\/noscript><\/p>\n<ol>\n<li><strong>\u4e0d\u540c\u7ebf\u7a0b\u4e2d\u6240\u5305\u542b\u7684\u6808\u5e27\u662f\u4e0d\u5141\u8bb8\u5b58\u5728\u76f8\u4e92\u5f15\u7528\u7684<\/strong>\uff0c\u5373\u4e0d\u53ef\u80fd\u5728\u4e00\u4e2a\u6808\u5e27\u4e4b\u4e2d\u5f15\u7528\u53e6\u5916\u4e00\u4e2a\u7ebf\u7a0b\u7684\u6808\u5e27\u3002<\/li>\n<li>\u5982\u679c\u5f53\u524d\u65b9\u6cd5\u8c03\u7528\u4e86\u5176\u4ed6\u65b9\u6cd5\uff0c\u65b9\u6cd5\u8fd4\u56de\u4e4b\u9645\uff0c\u5f53\u524d\u6808\u5e27\u4f1a\u4f20\u56de\u6b64\u65b9\u6cd5\u7684\u6267\u884c\u7ed3\u679c\u7ed9\u524d\u4e00\u4e2a\u6808\u5e27\uff0c\u63a5\u7740\uff0c\u865a\u62df\u673a\u4f1a\u4e22\u5f03\u5f53\u524d\u6808\u5e27\uff0c\u4f7f\u5f97\u524d\u4e00\u4e2a\u6808\u5e27\u91cd\u65b0\u6210\u4e3a\u5f53\u524d\u6808\u5e27\u3002<\/li>\n<li>Java\u65b9\u6cd5\u6709\u4e24\u79cd\u8fd4\u56de\u51fd\u6570\u7684\u65b9\u5f0f\u3002\n<ul>\n<li>\u4e00\u79cd\u662f\u6b63\u5e38\u7684\u51fd\u6570\u8fd4\u56de\uff0c\u4f7f\u7528return\u6307\u4ee4\u3002<\/li>\n<li>\u53e6\u4e00\u79cd\u662f\u65b9\u6cd5\u6267\u884c\u4e2d\u51fa\u73b0\u672a\u6355\u83b7\u5904\u7406\u7684\u5f02\u5e38\uff0c\u4ee5\u629b\u51fa\u5f02\u5e38\u7684\u65b9\u5f0f\u7ed3\u675f\u3002<\/li>\n<li>\u4f46\u4e0d\u7ba1\u4f7f\u7528\u54ea\u79cd\u65b9\u5f0f\uff0c\u90fd\u4f1a\u5bfc\u81f4\u6808\u5e27\u88ab\u5f39\u51fa\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3><a id=\"_899\"><\/a>\u6808\u5e27\u7684\u5185\u90e8\u7ed3\u6784<\/h3>\n<p>\u6bcf\u4e2a\u6808\u5e27\u4e2d\u5b58\u50a8\u7740\uff1a<\/p>\n<ul>\n<li>\u5c40\u90e8\u53d8\u91cf\u8868\uff08Local Variables\uff09<\/li>\n<li>\u64cd\u4f5c\u6570\u6808\uff08Operand Stack\uff09\uff08\u6216\u8868\u8fbe\u5f0f\u6808\uff09<\/li>\n<li>\u52a8\u6001\u94fe\u63a5\uff08Dynamic Linking\uff09\uff08\u6216\u6307\u5411\u8fd0\u884c\u65f6\u5e38\u91cf\u6c60\u7684\u65b9\u6cd5\u5f15\u7528\uff09<\/li>\n<li>\u65b9\u6cd5\u8fd4\u56de\u5730\u5740\uff08Return Address\uff09\uff08\u6216\u65b9\u6cd5\u6b63\u5e38\u9000\u51fa\u6216\u8005\u5f02\u5e38\u9000\u51fa\u7684\u5b9a\u4e49\uff09<\/li>\n<li>\u4e00\u4e9b\u9644\u52a0\u4fe1\u606f<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/3767a34cfc0b2c08e92ffebdbccedc79.png#align=left&amp;display=inline&amp;height=231&amp;originHeight=396&amp;originWidth=1046&amp;size=0&amp;status=done&amp;style=none&amp;width=609\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/3767a34cfc0b2c08e92ffebdbccedc79.png#align=left&amp;display=inline&amp;height=231&amp;originHeight=396&amp;originWidth=1046&amp;size=0&amp;status=done&amp;style=none&amp;width=609\" alt=\"\"><\/noscript><\/p>\n<p>\u5e76\u884c\u6bcf\u4e2a\u7ebf\u7a0b\u4e0b\u7684\u865a\u62df\u673a\u6808\u90fd\u662f\u79c1\u6709\u7684\uff0c\u56e0\u6b64\u6bcf\u4e2a\u7ebf\u7a0b\u90fd\u6709\u81ea\u5df1\u5404\u81ea\u7684\u865a\u62df\u673a\u6808\uff0c\u5e76\u4e14\u6bcf\u4e2a\u865a\u62df\u673a\u6808\u91cc\u9762\u90fd\u6709\u5f88\u591a\u6808\u5e27\uff0c<strong>\u6808\u5e27\u7684\u5927\u5c0f\u4e3b\u8981\u7531\u5c40\u90e8\u53d8\u91cf\u8868 \u548c \u64cd\u4f5c\u6570\u6808\u51b3\u5b9a\u7684<\/strong><\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/5554e293699171d1f9fb9e09780d5add.png#align=left&amp;display=inline&amp;height=286&amp;originHeight=659&amp;originWidth=719&amp;size=0&amp;status=done&amp;style=none&amp;width=312\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/5554e293699171d1f9fb9e09780d5add.png#align=left&amp;display=inline&amp;height=286&amp;originHeight=659&amp;originWidth=719&amp;size=0&amp;status=done&amp;style=none&amp;width=312\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"_923\"><\/a><\/h2>\n<h2><a id=\"_924\"><\/a><\/h2>\n<h2><a id=\"_925\"><\/a>\u5c40\u90e8\u53d8\u91cf\u8868<\/h2>\n<h3><a id=\"_928\"><\/a>\u8ba4\u8bc6\u5c40\u90e8\u53d8\u91cf\u8868<\/h3>\n<h4><a id=\"_929\"><\/a>\u6982\u5ff5<\/h4>\n<ol>\n<li>\u5c40\u90e8\u53d8\u91cf\u8868\u4e5f\u88ab\u79f0\u4e4b\u4e3a<strong>\u5c40\u90e8\u53d8\u91cf\u6570\u7ec4<\/strong>\u6216\u672c\u5730\u53d8\u91cf\u8868<\/li>\n<li><strong>\u5b9a\u4e49\u4e3a\u4e00\u4e2a\u6570\u5b57\u6570\u7ec4\uff0c\u4e3b\u8981\u7528\u4e8e\u5b58\u50a8\u65b9\u6cd5\u53c2\u6570\u548c\u5b9a\u4e49\u5728\u65b9\u6cd5\u4f53\u5185\u7684\u5c40\u90e8\u53d8\u91cf<\/strong>\uff0c\u8fd9\u4e9b\u6570\u636e\u7c7b\u578b\u5305\u62ec\u5404\u7c7b\u57fa\u672c\u6570\u636e\u7c7b\u578b\u3001\u5bf9\u8c61\u5f15\u7528\uff08reference\uff09\uff0c\u4ee5\u53careturnAddress\u8fd4\u56de\u503c\u7c7b\u578b\u3002<\/li>\n<li>\u7531\u4e8e\u5c40\u90e8\u53d8\u91cf\u8868\u662f\u5efa\u7acb\u5728\u7ebf\u7a0b\u7684\u865a\u62df\u673a\u6808\u4e0a\uff0c\u662f\u7ebf\u7a0b\u7684\u79c1\u6709\u6570\u636e\uff0c\u56e0\u6b64<strong>\u4e0d\u5b58\u5728\u6570\u636e\u5b89\u5168\u95ee\u9898<\/strong><\/li>\n<li><strong>\u5c40\u90e8\u53d8\u91cf\u8868\u6240\u9700\u7684\u5bb9\u91cf\u5927\u5c0f\u662f\u5728\u7f16\u8bd1\u671f\u786e\u5b9a\u4e0b\u6765\u7684<\/strong>\uff0c\u5e76\u4fdd\u5b58\u5728\u65b9\u6cd5\u7684Code\u5c5e\u6027\u7684<strong>maximum local variables<\/strong>\u6570\u636e\u9879\u4e2d\u3002\u5728\u65b9\u6cd5\u8fd0\u884c\u671f\u95f4\u662f\u4e0d\u4f1a\u6539\u53d8\u5c40\u90e8\u53d8\u91cf\u8868\u7684\u5927\u5c0f\u7684\u3002<\/li>\n<li>\u65b9\u6cd5\u5d4c\u5957\u8c03\u7528\u7684\u6b21\u6570\u7531\u6808\u7684\u5927\u5c0f\u51b3\u5b9a\u3002\u4e00\u822c\u6765\u8bf4\uff0c\u6808\u8d8a\u5927\uff0c\u65b9\u6cd5\u5d4c\u5957\u8c03\u7528\u6b21\u6570\u8d8a\u591a\u3002\n<ul>\n<li>\u5bf9\u4e00\u4e2a\u51fd\u6570\u800c\u8a00\uff0c\u5b83\u7684\u53c2\u6570\u548c\u5c40\u90e8\u53d8\u91cf\u8d8a\u591a\uff0c\u4f7f\u5f97\u5c40\u90e8\u53d8\u91cf\u8868\u81a8\u80c0\uff0c\u5b83\u7684\u6808\u5e27\u5c31\u8d8a\u5927\uff0c\u4ee5\u6ee1\u8db3\u65b9\u6cd5\u8c03\u7528\u6240\u9700\u4f20\u9012\u7684\u4fe1\u606f\u589e\u5927\u7684\u9700\u6c42\u3002<\/li>\n<li>\u8fdb\u800c\u51fd\u6570\u8c03\u7528\u5c31\u4f1a\u5360\u7528\u66f4\u591a\u7684\u6808\u7a7a\u95f4\uff0c\u5bfc\u81f4\u5176\u5d4c\u5957\u8c03\u7528\u6b21\u6570\u5c31\u4f1a\u51cf\u5c11\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u5c40\u90e8\u53d8\u91cf\u8868\u4e2d\u7684\u53d8\u91cf\u53ea\u5728\u5f53\u524d\u65b9\u6cd5\u8c03\u7528\u4e2d\u6709\u6548\u3002\n<ul>\n<li>\u5728\u65b9\u6cd5\u6267\u884c\u65f6\uff0c\u865a\u62df\u673a\u901a\u8fc7\u4f7f\u7528\u5c40\u90e8\u53d8\u91cf\u8868\u5b8c\u6210\u53c2\u6570\u503c\u5230\u53c2\u6570\u53d8\u91cf\u5217\u8868\u7684\u4f20\u9012\u8fc7\u7a0b\u3002<\/li>\n<li>\u5f53\u65b9\u6cd5\u8c03\u7528\u7ed3\u675f\u540e\uff0c\u968f\u7740\u65b9\u6cd5\u6808\u5e27\u7684\u9500\u6bc1\uff0c\u5c40\u90e8\u53d8\u91cf\u8868\u4e5f\u4f1a\u968f\u4e4b\u9500\u6bc1\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h4><a id=\"_944\"><\/a>\u4e3e\u4f8b<\/h4>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">LocalVariablesTest<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">int<\/span> count <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        LocalVariablesTest test <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">LocalVariablesTest<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">int<\/span> num <span class=\"token operator\">=<\/span> <span class=\"token number\">10<\/span><span class=\"token punctuation\">;<\/span>\n        test<span class=\"token punctuation\">.<\/span><span class=\"token function\">test1<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token comment\">\/\/\u7ec3\u4e60\uff1a<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">testStatic<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        LocalVariablesTest test <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">LocalVariablesTest<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        Date date <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Date<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">int<\/span> count <span class=\"token operator\">=<\/span> <span class=\"token number\">10<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>count<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token comment\">\/\/\u56e0\u4e3athis\u53d8\u91cf\u4e0d\u5b58\u5728\u4e8e\u5f53\u524d\u65b9\u6cd5\u7684\u5c40\u90e8\u53d8\u91cf\u8868\u4e2d\uff01\uff01<\/span>\n<span class=\"token comment\">\/\/        System.out.println(this.count);<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token comment\">\/\/\u5173\u4e8eSlot\u7684\u4f7f\u7528\u7684\u7406\u89e3<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token function\">LocalVariablesTest<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>count <span class=\"token operator\">=<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">test1<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        Date date <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Date<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        String name1 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"atguigu.com\"<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token function\">test2<\/span><span class=\"token punctuation\">(<\/span>date<span class=\"token punctuation\">,<\/span> name1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>date <span class=\"token operator\">+<\/span> name1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> String <span class=\"token function\">test2<\/span><span class=\"token punctuation\">(<\/span>Date dateP<span class=\"token punctuation\">,<\/span> String name2<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        dateP <span class=\"token operator\">=<\/span> null<span class=\"token punctuation\">;<\/span>\n        name2 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"songhongkang\"<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">double<\/span> weight <span class=\"token operator\">=<\/span> <span class=\"token number\">130.5<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u5360\u636e\u4e24\u4e2aslot<\/span>\n        <span class=\"token keyword\">char<\/span> gender <span class=\"token operator\">=<\/span> <span class=\"token string\">'\u7537'<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">return<\/span> dateP <span class=\"token operator\">+<\/span> name2<span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">test3<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>count<span class=\"token operator\">++<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">test4<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">int<\/span> a <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token keyword\">int<\/span> b <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n            b <span class=\"token operator\">=<\/span> a <span class=\"token operator\">+<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token comment\">\/\/\u53d8\u91cfc\u4f7f\u7528\u4e4b\u524d\u5df2\u7ecf\u9500\u6bc1\u7684\u53d8\u91cfb\u5360\u636e\u7684slot\u7684\u4f4d\u7f6e<\/span>\n        <span class=\"token keyword\">int<\/span> c <span class=\"token operator\">=<\/span> a <span class=\"token operator\">+<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/ff47035b4f40b9e5da7c1286678416ec.png#align=left&amp;display=inline&amp;height=339&amp;originHeight=945&amp;originWidth=1571&amp;size=0&amp;status=done&amp;style=none&amp;width=564\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/ff47035b4f40b9e5da7c1286678416ec.png#align=left&amp;display=inline&amp;height=339&amp;originHeight=945&amp;originWidth=1571&amp;size=0&amp;status=done&amp;style=none&amp;width=564\" alt=\"\"><\/noscript><\/p>\n<p>\u770b\u5b8c\u5b57\u8282\u7801\u540e\uff0c\u53ef\u5f97\u7ed3\u8bba\uff1a\u5c40\u90e8\u53d8\u91cf\u8868\u6240\u9700\u7684\u5bb9\u91cf\u5927\u5c0f\u662f\u5728\u7f16\u8bd1\u671f\u786e\u5b9a\u4e0b\u6765\u7684\u3002<\/p>\n<h4><a id=\"_1008\"><\/a>\u90e8\u5206\u8be6\u89e3<\/h4>\n<p>\u4e3a\u4e86\u66f4\u597d\u8bb2\u89e3\uff0c\u6211\u4eec\u76f4\u63a5\u7528jclasslib\u6765\u770b\u5b57\u8282\u7801\uff0c\u4ee5main\u65b9\u6cd5\u4e3a\u4f8b\u6765\u8bb2\u89e3\u3002\u4e00\u4e9b\u4e00\u76ee\u4e86\u7136\u7684\u5c31\u4e0d\u8bb2\u4e86<\/p>\n<p>1\u30010-15 \u4e5f\u5c31\u662f\u670916\u884c\u5b57\u8282\u7801<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/ef96aa94b4a91d7010a2abf7909566ea.png#align=left&amp;display=inline&amp;height=318&amp;originHeight=469&amp;originWidth=909&amp;size=0&amp;status=done&amp;style=none&amp;width=616\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/ef96aa94b4a91d7010a2abf7909566ea.png#align=left&amp;display=inline&amp;height=318&amp;originHeight=469&amp;originWidth=909&amp;size=0&amp;status=done&amp;style=none&amp;width=616\" alt=\"\"><\/noscript><\/p>\n<p>2\u3001\u65b9\u6cd5\u5f02\u5e38\u4fe1\u606f\u8868<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/30e80f48b30e0f4ab6210b36b768591c.png#align=left&amp;display=inline&amp;height=268&amp;originHeight=474&amp;originWidth=885&amp;size=0&amp;status=done&amp;style=none&amp;width=501\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/30e80f48b30e0f4ab6210b36b768591c.png#align=left&amp;display=inline&amp;height=268&amp;originHeight=474&amp;originWidth=885&amp;size=0&amp;status=done&amp;style=none&amp;width=501\" alt=\"\"><\/noscript><\/p>\n<p>3\u3001Misc<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/5c49e2603b96e0f378ead14c9cccee72.png#align=left&amp;display=inline&amp;height=261&amp;originHeight=402&amp;originWidth=916&amp;size=0&amp;status=done&amp;style=none&amp;width=594\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/5c49e2603b96e0f378ead14c9cccee72.png#align=left&amp;display=inline&amp;height=261&amp;originHeight=402&amp;originWidth=916&amp;size=0&amp;status=done&amp;style=none&amp;width=594\" alt=\"\"><\/noscript><\/p>\n<p>4\u3001\u884c\u53f7\u8868<\/p>\n<p>Java\u4ee3\u7801\u7684\u884c\u53f7\u548c\u5b57\u8282\u7801\u6307\u4ee4\u884c\u53f7\u7684\u5bf9\u5e94\u5173\u7cfb<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/7d715153c2974c6688f0c8e922a2fc86.png#align=left&amp;display=inline&amp;height=268&amp;originHeight=786&amp;originWidth=1134&amp;size=0&amp;status=done&amp;style=none&amp;width=387\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/7d715153c2974c6688f0c8e922a2fc86.png#align=left&amp;display=inline&amp;height=268&amp;originHeight=786&amp;originWidth=1134&amp;size=0&amp;status=done&amp;style=none&amp;width=387\" alt=\"\"><\/noscript><\/p>\n<p>5\u3001\u6ce8\u610f\uff1a\u751f\u6548\u884c\u6570\u548c\u5269\u4f59\u6709\u6548\u884c\u6570\u90fd\u662f\u9488\u5bf9\u4e8e\u5b57\u8282\u7801\u6587\u4ef6\u7684\u884c\u6570<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/b63cd812da551e1f67228c135b1b948a.png#align=left&amp;display=inline&amp;height=251&amp;originHeight=654&amp;originWidth=1450&amp;size=0&amp;status=done&amp;style=none&amp;width=557\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/b63cd812da551e1f67228c135b1b948a.png#align=left&amp;display=inline&amp;height=251&amp;originHeight=654&amp;originWidth=1450&amp;size=0&amp;status=done&amp;style=none&amp;width=557\" alt=\"\"><\/noscript><\/p>\n<p>1\u3001\u56fe\u4e2d\u5708\u7684\u4e1c\u897f\u8868\u793a\u8be5\u5c40\u90e8\u53d8\u91cf\u7684\u4f5c\u7528\u57df<\/p>\n<p>2\u3001Start PC==11\u8868\u793a\u5728\u5b57\u8282\u7801\u768411\u884c\u5f00\u59cb\u751f\u6548\uff0c\u4e5f\u5c31\u662fJava\u4ee3\u7801\u5bf9\u5e94\u7684\u7b2c15\u884c\u3002\u800c\u58f0\u660eint num\u5728java\u4ee3\u7801\u7684\u662f\u7b2c14\u884c\uff0c\u8bf4\u660e\u662f\u4ece\u58f0\u660e\u7684\u4e0b\u4e00\u884c\u5f00\u59cb\u751f\u6548<\/p>\n<p>3\u3001Length== 5\u8868\u793a\u5c40\u90e8\u53d8\u91cf\u5269\u4f59\u6709\u6548\u884c\u6570\uff0cmain\u65b9\u6cd5\u5b57\u8282\u7801\u6307\u4ee4\u603b\u5171\u670916\u884c\uff0c\u4ece11\u884c\u5f00\u59cb\u751f\u6548\uff0c\u90a3\u4e48\u5269\u4e0b\u5c31\u662f16-11 ==5\u3002<\/p>\n<p>4\u3001<code>Ljava\/lang\/String<\/code> \u524d\u9762\u7684L\u8868\u793a\u5f15\u7528\u7c7b\u578b<\/p>\n<h3><a id=\"Slot_1054\"><\/a>\u5173\u4e8eSlot\uff08<strong>\u53d8\u91cf\u69fd<\/strong>\uff09\u7684\u7406\u89e3<\/h3>\n<ol>\n<li>\u53c2\u6570\u503c\u7684\u5b58\u653e \u4ece\u5c40\u90e8\u53d8\u91cf\u6570\u7ec4\u7d22\u5f15 0 \u5f00\u59cb\uff0c\u5230\u6570\u7ec4\u957f\u5ea6-1\u7684\u7d22\u5f15 \u7ed3\u675f\u3002<\/li>\n<li>\u5c40\u90e8\u53d8\u91cf\u8868\uff0c<strong>\u6700\u57fa\u672c\u7684\u5b58\u50a8\u5355\u5143\u662fSlot\uff08\u53d8\u91cf\u69fd\uff09<\/strong>\uff0c\u5c40\u90e8\u53d8\u91cf\u8868\u4e2d\u5b58\u653e\u7f16\u8bd1\u671f\u53ef\u77e5\u7684\u5404\u79cd\u57fa\u672c\u6570\u636e\u7c7b\u578b\uff088\u79cd\uff09\uff0c\u5f15\u7528\u7c7b\u578b\uff08reference\uff09\uff0creturnAddress\u7c7b\u578b\u7684\u53d8\u91cf\u3002<\/li>\n<li>\u5728\u5c40\u90e8\u53d8\u91cf\u8868\u91cc\uff0c<strong>32\u4f4d\u4ee5\u5185\u7684\u7c7b\u578b\u53ea\u5360\u7528\u4e00\u4e2aslot<\/strong>\uff08\u5305\u62ecreturnAddress\u7c7b\u578b\uff09\uff0c<strong>64\u4f4d\u7684\u7c7b\u578b\u5360\u7528\u4e24\u4e2aslot<\/strong>\uff08Long\u548cdouble\uff09\u3002\n<ul>\n<li>byte\u3001short\u3001char\u5728\u50a8\u5b58\u8f6c\u6362\u4e3aint\uff0cboolean\u4e5f\u88ab\u8f6c\u6362\u4e3aint\uff0c0\u8868\u793afalse\uff0c\u975e0\u8868\u793atrue<\/li>\n<li>long\u548cdouble\u5219\u5360\u636e\u4e24\u4e2aslot<\/li>\n<\/ul>\n<\/li>\n<li>JVM\u4f1a\u4e3a\u5c40\u90e8\u53d8\u91cf\u8868\u4e2d\u7684\u6bcf\u4e00\u4e2aSlot\u90fd\u5206\u914d\u4e00\u4e2a\u8bbf\u95ee\u7d22\u5f15\uff0c\u901a\u8fc7\u8fd9\u4e2a\u7d22\u5f15\u5373\u53ef\u6210\u529f\u8bbf\u95ee\u5230\u5c40\u90e8\u53d8\u91cf\u8868\u4e2d\u6307\u5b9a\u7684\u5c40\u90e8\u53d8\u91cf\u503c<\/li>\n<li>\u5f53\u4e00\u4e2a\u5b9e\u4f8b\u65b9\u6cd5\u88ab\u8c03\u7528\u7684\u65f6\u5019\uff0c\u5b83\u7684\u65b9\u6cd5\u53c2\u6570\u548c\u65b9\u6cd5\u4f53\u5185\u90e8\u5b9a\u4e49\u7684\u5c40\u90e8\u53d8\u91cf\u5c06\u4f1a<strong>\u6309\u7167\u987a\u5e8f\u88ab\u590d\u5236<\/strong>\u5230\u5c40\u90e8\u53d8\u91cf\u8868\u4e2d\u7684\u6bcf\u4e00\u4e2aslot\u4e0a<\/li>\n<li>\u5982\u679c\u9700\u8981\u8bbf\u95ee\u5c40\u90e8\u53d8\u91cf\u8868\u4e2d\u4e00\u4e2a64bit\u7684\u5c40\u90e8\u53d8\u91cf\u503c\u65f6\uff0c\u53ea\u9700\u8981\u4f7f\u7528\u524d\u4e00\u4e2a\u7d22\u5f15\u5373\u53ef\u3002\uff08\u6bd4\u5982\uff1a\u8bbf\u95eelong\u6216double\u7c7b\u578b\u53d8\u91cf\uff09<\/li>\n<li>\u5982\u679c\u5f53\u524d\u5e27\u662f\u7531\u6784\u9020\u65b9\u6cd5\u6216\u8005\u5b9e\u4f8b\u65b9\u6cd5\u521b\u5efa\u7684\uff0c\u90a3\u4e48<strong>\u8be5\u5bf9\u8c61\u5f15\u7528this\u5c06\u4f1a\u5b58\u653e\u5728index\u4e3a0\u7684slot\u5904<\/strong>\uff0c\u5176\u4f59\u7684\u53c2\u6570\u6309\u7167\u53c2\u6570\u8868\u987a\u5e8f\u7ee7\u7eed\u6392\u5217\u3002\uff08this\u4e5f\u76f8\u5f53\u4e8e\u4e00\u4e2a\u53d8\u91cf\uff09<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/aacbd5cb602c262997dbb0289b8e1d81.png#align=left&amp;display=inline&amp;height=296&amp;originHeight=473&amp;originWidth=385&amp;size=0&amp;status=done&amp;style=none&amp;width=241\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/aacbd5cb602c262997dbb0289b8e1d81.png#align=left&amp;display=inline&amp;height=296&amp;originHeight=473&amp;originWidth=385&amp;size=0&amp;status=done&amp;style=none&amp;width=241\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"Slot_1072\"><\/a>Slot\u4ee3\u7801\u793a\u4f8b<\/h3>\n<p><strong>this \u5b58\u653e\u5728 index = 0 \u7684\u4f4d\u7f6e\uff1a<\/strong><\/p>\n<p>\u4ee3\u7801<\/p>\n<pre><code class=\"prism language-java\">\t<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">test3<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>count<span class=\"token operator\">++<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u5c40\u90e8\u53d8\u91cf\u8868\uff1athis \u5b58\u653e\u5728 index = 0 \u7684\u4f4d\u7f6e<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f995bc247016df73b1fbe8834c4d43ac.png#align=left&amp;display=inline&amp;height=246&amp;originHeight=522&amp;originWidth=1422&amp;size=0&amp;status=done&amp;style=none&amp;width=670\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f995bc247016df73b1fbe8834c4d43ac.png#align=left&amp;display=inline&amp;height=246&amp;originHeight=522&amp;originWidth=1422&amp;size=0&amp;status=done&amp;style=none&amp;width=670\" alt=\"\"><\/noscript><\/p>\n<p><strong>64\u4f4d\u7684\u7c7b\u578b\uff08long\u548cdouble\uff09\u5360\u7528\u4e24\u4e2aslot<\/strong><\/p>\n<p>\u4ee3\u7801<\/p>\n<pre><code class=\"prism language-java\"> \t<span class=\"token keyword\">public<\/span> String <span class=\"token function\">test2<\/span><span class=\"token punctuation\">(<\/span>Date dateP<span class=\"token punctuation\">,<\/span> String name2<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        dateP <span class=\"token operator\">=<\/span> null<span class=\"token punctuation\">;<\/span>\n        name2 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"songhongkang\"<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">double<\/span> weight <span class=\"token operator\">=<\/span> <span class=\"token number\">130.5<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u5360\u636e\u4e24\u4e2aslot<\/span>\n        <span class=\"token keyword\">char<\/span> gender <span class=\"token operator\">=<\/span> <span class=\"token string\">'\u7537'<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">return<\/span> dateP <span class=\"token operator\">+<\/span> name2<span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>weight \u4e3a double \u7c7b\u578b\uff0cindex \u76f4\u63a5\u4ece 3 \u8e66\u5230\u4e86 5<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/6bbcb171bdd00982e4092d70246b095f.png#align=left&amp;display=inline&amp;height=330&amp;originHeight=610&amp;originWidth=1453&amp;size=0&amp;status=done&amp;style=none&amp;width=786\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/6bbcb171bdd00982e4092d70246b095f.png#align=left&amp;display=inline&amp;height=330&amp;originHeight=610&amp;originWidth=1453&amp;size=0&amp;status=done&amp;style=none&amp;width=786\" alt=\"\"><\/noscript><\/p>\n<p><strong>static \u65e0\u6cd5\u8c03\u7528 this<\/strong><\/p>\n<p>this \u4e0d\u5b58\u5728\u4e0e static \u65b9\u6cd5\u7684\u5c40\u90e8\u53d8\u91cf\u8868\u4e2d\uff0c\u6240\u4ee5\u65e0\u6cd5\u8c03\u7528<\/p>\n<pre><code class=\"prism language-java\">    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">testStatic<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        LocalVariablesTest test <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">LocalVariablesTest<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        Date date <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Date<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">int<\/span> count <span class=\"token operator\">=<\/span> <span class=\"token number\">10<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>count<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token comment\">\/\/\u56e0\u4e3athis\u53d8\u91cf\u4e0d\u5b58\u5728\u4e8e\u5f53\u524d\u65b9\u6cd5\u7684\u5c40\u90e8\u53d8\u91cf\u8868\u4e2d\uff01\uff01<\/span>\n<span class=\"token comment\">\/\/        System.out.println(this.count);<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<h3><a id=\"Slot_1127\"><\/a>Slot\u7684\u91cd\u590d\u5229\u7528<\/h3>\n<p>\u6808\u5e27\u4e2d\u7684\u5c40\u90e8\u53d8\u91cf\u8868\u4e2d\u7684\u69fd\u4f4d\u662f\u53ef\u4ee5\u91cd\u7528\u7684\uff0c\u5982\u679c\u4e00\u4e2a\u5c40\u90e8\u53d8\u91cf\u8fc7\u4e86\u5176\u4f5c\u7528\u57df\uff0c\u90a3\u4e48\u5728\u5176\u4f5c\u7528\u57df\u4e4b\u540e\u7533\u660e\u65b0\u7684\u5c40\u90e8\u53d8\u91cf\u53d8\u5c31\u5f88\u6709\u53ef\u80fd\u4f1a\u590d\u7528\u8fc7\u671f\u5c40\u90e8\u53d8\u91cf\u7684\u69fd\u4f4d\uff0c\u4ece\u800c\u8fbe\u5230\u8282\u7701\u8d44\u6e90\u7684\u76ee\u7684\u3002<\/p>\n<p>\u4ee3\u7801<\/p>\n<pre><code class=\"prism language-java\">    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">test4<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">int<\/span> a <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token keyword\">int<\/span> b <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n            b <span class=\"token operator\">=<\/span> a <span class=\"token operator\">+<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token comment\">\/\/\u53d8\u91cfc\u4f7f\u7528\u4e4b\u524d\u5df2\u7ecf\u9500\u6bc1\u7684\u53d8\u91cfb\u5360\u636e\u7684slot\u7684\u4f4d\u7f6e<\/span>\n        <span class=\"token keyword\">int<\/span> c <span class=\"token operator\">=<\/span> a <span class=\"token operator\">+<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u5c40\u90e8\u53d8\u91cf c \u91cd\u7528\u4e86\u5c40\u90e8\u53d8\u91cf b \u7684 slot \u4f4d\u7f6e<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/3510d0cb33da8056132a2a031fe80545.png#align=left&amp;display=inline&amp;height=278&amp;originHeight=579&amp;originWidth=1410&amp;size=0&amp;status=done&amp;style=none&amp;width=677\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/3510d0cb33da8056132a2a031fe80545.png#align=left&amp;display=inline&amp;height=278&amp;originHeight=579&amp;originWidth=1410&amp;size=0&amp;status=done&amp;style=none&amp;width=677\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"_1152\"><\/a>\u9759\u6001\u53d8\u91cf\u4e0e\u5c40\u90e8\u53d8\u91cf\u7684\u5bf9\u6bd4<\/h3>\n<pre><code class=\"prism language-java\">\u53d8\u91cf\u7684\u5206\u7c7b\uff1a\n<span class=\"token number\">1<\/span>\u3001\u6309\u7167\u6570\u636e\u7c7b\u578b\u5206\uff1a\u2460 \u57fa\u672c\u6570\u636e\u7c7b\u578b  \u2461 \u5f15\u7528\u6570\u636e\u7c7b\u578b\n<span class=\"token number\">2<\/span>\u3001\u6309\u7167\u5728\u7c7b\u4e2d\u58f0\u660e\u7684\u4f4d\u7f6e\u5206\uff1a\n  <span class=\"token number\">2<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span>\u3001\u6210\u5458\u53d8\u91cf\uff1a\u5728\u4f7f\u7528\u524d\uff0c\u90fd\u7ecf\u5386\u8fc7\u9ed8\u8ba4\u521d\u59cb\u5316\u8d4b\u503c\n       <span class=\"token number\">2<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span>\u3001\u7c7b\u53d8\u91cf<span class=\"token operator\">:<\/span> linking\u7684prepare\u9636\u6bb5\uff1a\u7ed9\u7c7b\u53d8\u91cf\u9ed8\u8ba4\u8d4b\u503c\n              <span class=\"token operator\">--<\/span><span class=\"token operator\">-<\/span><span class=\"token operator\">&gt;<\/span> initial\u9636\u6bb5\uff1a\u7ed9\u7c7b\u53d8\u91cf\u663e\u5f0f\u8d4b\u503c\u5373\u9759\u6001\u4ee3\u7801\u5757\u8d4b\u503c\n       <span class=\"token number\">2<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">2<\/span>\u3001\u5b9e\u4f8b\u53d8\u91cf\uff1a\u968f\u7740\u5bf9\u8c61\u7684\u521b\u5efa\uff0c\u4f1a\u5728\u5806\u7a7a\u95f4\u4e2d\u5206\u914d\u5b9e\u4f8b\u53d8\u91cf\u7a7a\u95f4\uff0c\u5e76\u8fdb\u884c\u9ed8\u8ba4\u8d4b\u503c\n  <span class=\"token number\">2<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">2<\/span>\u3001\u5c40\u90e8\u53d8\u91cf\uff1a\u5728\u4f7f\u7528\u524d\uff0c\u5fc5\u987b\u8981\u8fdb\u884c\u663e\u5f0f\u8d4b\u503c\u7684\uff01\u5426\u5219\uff0c\u7f16\u8bd1\u4e0d\u901a\u8fc7\u3002\n<\/code><\/pre>\n<ol>\n<li>\u53c2\u6570\u8868\u5206\u914d\u5b8c\u6bd5\u4e4b\u540e\uff0c\u518d\u6839\u636e\u65b9\u6cd5\u4f53\u5185\u5b9a\u4e49\u7684\u53d8\u91cf\u7684\u987a\u5e8f\u548c\u4f5c\u7528\u57df\u5206\u914d\u3002<\/li>\n<li>\u6211\u4eec\u77e5\u9053\u6210\u5458\u53d8\u91cf\u6709\u4e24\u6b21\u521d\u59cb\u5316\u7684\u673a\u4f1a**\uff0c**\u7b2c\u4e00\u6b21\u662f\u5728\u201c\u51c6\u5907\u9636\u6bb5\u201d\uff0c\u6267\u884c\u7cfb\u7edf\u521d\u59cb\u5316\uff0c\u5bf9\u7c7b\u53d8\u91cf\u8bbe\u7f6e\u96f6\u503c\uff0c\u53e6\u4e00\u6b21\u5219\u662f\u5728\u201c\u521d\u59cb\u5316\u201d\u9636\u6bb5\uff0c\u8d4b\u4e88\u7a0b\u5e8f\u5458\u5728\u4ee3\u7801\u4e2d\u5b9a\u4e49\u7684\u521d\u59cb\u503c\u3002<\/li>\n<li>\u548c\u7c7b\u53d8\u91cf\u521d\u59cb\u5316\u4e0d\u540c\u7684\u662f\uff0c<strong>\u5c40\u90e8\u53d8\u91cf\u8868\u4e0d\u5b58\u5728\u7cfb\u7edf\u521d\u59cb\u5316\u7684\u8fc7\u7a0b<\/strong>\uff0c\u8fd9\u610f\u5473\u7740\u4e00\u65e6\u5b9a\u4e49\u4e86\u5c40\u90e8\u53d8\u91cf\u5219\u5fc5\u987b\u4eba\u4e3a\u7684\u521d\u59cb\u5316\uff0c\u5426\u5219\u65e0\u6cd5\u4f7f\u7528\u3002<\/li>\n<\/ol>\n<h3><a id=\"_1171\"><\/a>\u8865\u5145\u8bf4\u660e<\/h3>\n<ol>\n<li>\u5728\u6808\u5e27\u4e2d\uff0c\u4e0e\u6027\u80fd\u8c03\u4f18\u5173\u7cfb\u6700\u4e3a\u5bc6\u5207\u7684\u90e8\u5206\u5c31\u662f\u524d\u9762\u63d0\u5230\u7684\u5c40\u90e8\u53d8\u91cf\u8868\u3002\u5728\u65b9\u6cd5\u6267\u884c\u65f6\uff0c\u865a\u62df\u673a\u4f7f\u7528\u5c40\u90e8\u53d8\u91cf\u8868\u5b8c\u6210\u65b9\u6cd5\u7684\u4f20\u9012\u3002<\/li>\n<li>\u5c40\u90e8\u53d8\u91cf\u8868\u4e2d\u7684\u53d8\u91cf\u4e5f\u662f\u91cd\u8981\u7684\u5783\u573e\u56de\u6536\u6839\u8282\u70b9\uff0c\u53ea\u8981\u88ab\u5c40\u90e8\u53d8\u91cf\u8868\u4e2d\u76f4\u63a5\u6216\u95f4\u63a5\u5f15\u7528\u7684\u5bf9\u8c61\u90fd\u4e0d\u4f1a\u88ab\u56de\u6536\u3002<\/li>\n<\/ol>\n<h2><a id=\"_1178\"><\/a>\u64cd\u4f5c\u6570\u6808<\/h2>\n<h3><a id=\"_1181\"><\/a>\u64cd\u4f5c\u6570\u6808\u7684\u7279\u70b9<\/h3>\n<ol>\n<li>\u6bcf\u4e00\u4e2a\u72ec\u7acb\u7684\u6808\u5e27\u9664\u4e86\u5305\u542b\u5c40\u90e8\u53d8\u91cf\u8868\u4ee5\u5916\uff0c\u8fd8\u5305\u542b\u4e00\u4e2a\u540e\u8fdb\u5148\u51fa\uff08Last - In - First -Out\uff09\u7684 \u64cd\u4f5c\u6570\u6808\uff0c\u4e5f\u53ef\u4ee5\u79f0\u4e4b\u4e3a<strong>\u8868\u8fbe\u5f0f\u6808<\/strong>\uff08Expression Stack\uff09<\/li>\n<li>\u64cd\u4f5c\u6570\u6808\uff0c\u5728\u65b9\u6cd5\u6267\u884c\u8fc7\u7a0b\u4e2d\uff0c<strong>\u6839\u636e\u5b57\u8282\u7801\u6307\u4ee4\uff0c\u5f80\u6808\u4e2d\u5199\u5165\u6570\u636e\u6216\u63d0\u53d6\u6570\u636e<\/strong>\uff0c\u5373\u5165\u6808\uff08push\uff09\u548c \u51fa\u6808\uff08pop\uff09<\/li>\n<\/ol>\n<ul>\n<li>\u67d0\u4e9b\u5b57\u8282\u7801\u6307\u4ee4\u5c06\u503c\u538b\u5165\u64cd\u4f5c\u6570\u6808\uff0c\u5176\u4f59\u7684\u5b57\u8282\u7801\u6307\u4ee4\u5c06\u64cd\u4f5c\u6570\u53d6\u51fa\u6808\u3002\u4f7f\u7528\u5b83\u4eec\u540e\u518d\u628a\u7ed3\u679c\u538b\u5165\u6808\uff0c<\/li>\n<li>\u6bd4\u5982\uff1a\u6267\u884c\u590d\u5236\u3001\u4ea4\u6362\u3001\u6c42\u548c\u7b49\u64cd\u4f5c<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/ef9088871e5d1c33cb9ea57d63bcda97.png#align=left&amp;display=inline&amp;height=225&amp;originHeight=225&amp;originWidth=636&amp;size=0&amp;status=done&amp;style=none&amp;width=636\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/ef9088871e5d1c33cb9ea57d63bcda97.png#align=left&amp;display=inline&amp;height=225&amp;originHeight=225&amp;originWidth=636&amp;size=0&amp;status=done&amp;style=none&amp;width=636\" alt=\"\"><\/noscript><\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/7a68e3b2b40df96db05675f5ade518e7.png#align=left&amp;display=inline&amp;height=278&amp;originHeight=524&amp;originWidth=1242&amp;size=0&amp;status=done&amp;style=none&amp;width=658\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/7a68e3b2b40df96db05675f5ade518e7.png#align=left&amp;display=inline&amp;height=278&amp;originHeight=524&amp;originWidth=1242&amp;size=0&amp;status=done&amp;style=none&amp;width=658\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"_1200\"><\/a>\u64cd\u4f5c\u6570\u6808\u7684\u4f5c\u7528<\/h3>\n<ol>\n<li>\u64cd\u4f5c\u6570\u6808\uff0c<strong>\u4e3b\u8981\u7528\u4e8e\u4fdd\u5b58\u8ba1\u7b97\u8fc7\u7a0b\u7684\u4e2d\u95f4\u7ed3\u679c\uff0c\u540c\u65f6\u4f5c\u4e3a\u8ba1\u7b97\u8fc7\u7a0b\u4e2d\u53d8\u91cf\u4e34\u65f6\u7684\u5b58\u50a8\u7a7a\u95f4<\/strong>\u3002<\/li>\n<li>\u64cd\u4f5c\u6570\u6808\u5c31\u662fJVM\u6267\u884c\u5f15\u64ce\u7684\u4e00\u4e2a\u5de5\u4f5c\u533a\uff0c\u5f53\u4e00\u4e2a\u65b9\u6cd5\u521a\u5f00\u59cb\u6267\u884c\u7684\u65f6\u5019\uff0c\u4e00\u4e2a\u65b0\u7684\u6808\u5e27\u4e5f\u4f1a\u968f\u4e4b\u88ab\u521b\u5efa\u51fa\u6765\uff0c\u8fd9\u65f6\u65b9\u6cd5\u7684\u64cd\u4f5c\u6570\u6808\u662f\u7a7a\u7684\u3002<\/li>\n<li>\u6bcf\u4e00\u4e2a\u64cd\u4f5c\u6570\u6808\u90fd\u4f1a\u62e5\u6709\u4e00\u4e2a\u660e\u786e\u7684\u6808\u6df1\u5ea6\u7528\u4e8e\u5b58\u50a8\u6570\u503c\uff0c\u5176\u6240\u9700\u7684\u6700\u5927\u6df1\u5ea6\u5728\u7f16\u8bd1\u671f\u5c31\u5b9a\u4e49\u597d\u4e86\uff0c\u4fdd\u5b58\u5728\u65b9\u6cd5\u7684Code\u5c5e\u6027\u4e2d\uff0c\u4e3a<strong>maxstack<\/strong>\u7684\u503c\u3002<\/li>\n<li>\u6808\u4e2d\u7684\u4efb\u4f55\u4e00\u4e2a\u5143\u7d20\u90fd\u662f\u53ef\u4ee5\u4efb\u610f\u7684Java\u6570\u636e\u7c7b\u578b\n<ul>\n<li>32bit\u7684\u7c7b\u578b\u5360\u7528\u4e00\u4e2a\u6808\u5355\u4f4d\u6df1\u5ea6<\/li>\n<li>64bit\u7684\u7c7b\u578b\u5360\u7528\u4e24\u4e2a\u6808\u5355\u4f4d\u6df1\u5ea6<\/li>\n<\/ul>\n<\/li>\n<li>\u64cd\u4f5c\u6570\u6808\u5e76\u975e\u91c7\u7528\u8bbf\u95ee\u7d22\u5f15\u7684\u65b9\u5f0f\u6765\u8fdb\u884c\u6570\u636e\u8bbf\u95ee\u7684\uff0c\u800c\u662f\u53ea\u80fd\u901a\u8fc7\u6807\u51c6\u7684\u5165\u6808\u548c\u51fa\u6808\u64cd\u4f5c\u6765\u5b8c\u6210\u4e00\u6b21\u6570\u636e\u8bbf\u95ee\u3002<strong>\u53ea\u4e0d\u8fc7\u64cd\u4f5c\u6570\u6808\u662f\u7528\u6570\u7ec4\u8fd9\u4e2a\u7ed3\u6784\u6765\u5b9e\u73b0\u7684\u800c\u5df2<\/strong><\/li>\n<li>\u5982\u679c\u88ab\u8c03\u7528\u7684\u65b9\u6cd5\u5e26\u6709\u8fd4\u56de\u503c\u7684\u8bdd\uff0c\u5176\u8fd4\u56de\u503c\u5c06\u4f1a\u88ab\u538b\u5165\u5f53\u524d\u6808\u5e27\u7684\u64cd\u4f5c\u6570\u6808\u4e2d\uff0c\u5e76\u66f4\u65b0PC\u5bc4\u5b58\u5668\u4e2d\u4e0b\u4e00\u6761\u9700\u8981\u6267\u884c\u7684\u5b57\u8282\u7801\u6307\u4ee4\u3002<\/li>\n<li>\u64cd\u4f5c\u6570\u6808\u4e2d\u5143\u7d20\u7684\u6570\u636e\u7c7b\u578b\u5fc5\u987b\u4e0e\u5b57\u8282\u7801\u6307\u4ee4\u7684\u5e8f\u5217\u4e25\u683c\u5339\u914d\uff0c\u8fd9\u7531\u7f16\u8bd1\u5668\u5728\u7f16\u8bd1\u5668\u671f\u95f4\u8fdb\u884c\u9a8c\u8bc1\uff0c\u540c\u65f6\u5728\u7c7b\u52a0\u8f7d\u8fc7\u7a0b\u4e2d\u7684\u7c7b\u68c0\u9a8c\u9636\u6bb5\u7684\u6570\u636e\u6d41\u5206\u6790\u9636\u6bb5\u8981\u518d\u6b21\u9a8c\u8bc1\u3002<\/li>\n<li>\u53e6\u5916\uff0c<strong>\u6211\u4eec\u8bf4Java\u865a\u62df\u673a\u7684\u89e3\u91ca\u5f15\u64ce\u662f\u57fa\u4e8e\u6808\u7684\u6267\u884c\u5f15\u64ce\uff0c\u5176\u4e2d\u7684\u6808\u6307\u7684\u5c31\u662f\u64cd\u4f5c\u6570\u6808<\/strong>\u3002<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/779a99facbe63e9b066244dfa5ea317e.png#align=left&amp;display=inline&amp;height=316&amp;originHeight=773&amp;originWidth=1291&amp;size=0&amp;status=done&amp;style=none&amp;width=528\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/779a99facbe63e9b066244dfa5ea317e.png#align=left&amp;display=inline&amp;height=316&amp;originHeight=773&amp;originWidth=1291&amp;size=0&amp;status=done&amp;style=none&amp;width=528\" alt=\"\"><\/noscript><\/p>\n<p>\u5c40\u90e8\u53d8\u91cf\u8868\u5c31\u76f8\u5f53\u4e8e\u98df\u6750<\/p>\n<p>\u64cd\u4f5c\u6570\u6808\u5c31\u76f8\u5f53\u4e8e\u505a\u6cd5\u6b65\u9aa4<\/p>\n<h2><a id=\"_1225\"><\/a>\u64cd\u4f5c\u6570\u6808\u4ee3\u7801\u8ffd\u8e2a<\/h2>\n<pre><code class=\"prism language-java\">\t<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">testAddOperation<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token comment\">\/\/byte\u3001short\u3001char\u3001boolean\uff1a\u90fd\u4ee5int\u578b\u6765\u4fdd\u5b58<\/span>\n        <span class=\"token keyword\">byte<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">15<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">int<\/span> j <span class=\"token operator\">=<\/span> <span class=\"token number\">8<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">int<\/span> k <span class=\"token operator\">=<\/span> i <span class=\"token operator\">+<\/span> j<span class=\"token punctuation\">;<\/span>\n\n       <span class=\"token comment\">\/\/ int m = 800;<\/span>\n\n    <span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u5bf9\u5e94\u5b57\u8282\u7801\u6307\u4ee4<\/p>\n<pre><code class=\"prism language-java\"> <span class=\"token number\">0<\/span> bipush <span class=\"token number\">15<\/span>\n <span class=\"token number\">2<\/span> istore_1\n <span class=\"token number\">3<\/span> bipush <span class=\"token number\">8<\/span>\n <span class=\"token number\">5<\/span> istore_2\n <span class=\"token number\">6<\/span> iload_1\n <span class=\"token number\">7<\/span> iload_2\n <span class=\"token number\">8<\/span> iadd\n <span class=\"token number\">9<\/span> istore_3\n<span class=\"token number\">10<\/span> <span class=\"token keyword\">return<\/span>\n<\/code><\/pre>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/9cd4ecaa381d618815d4f86cd1059765.png#align=left&amp;display=inline&amp;height=277&amp;originHeight=468&amp;originWidth=939&amp;size=0&amp;status=done&amp;style=none&amp;width=556\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/9cd4ecaa381d618815d4f86cd1059765.png#align=left&amp;display=inline&amp;height=277&amp;originHeight=468&amp;originWidth=939&amp;size=0&amp;status=done&amp;style=none&amp;width=556\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"_1260\"><\/a>\u4e00\u6b65\u4e00\u6b65\u770b\u6d41\u7a0b<\/h3>\n<p>1\u3001\u9996\u5148\u6267\u884c\u7b2c\u4e00\u6761\u8bed\u53e5\uff0cPC\u5bc4\u5b58\u5668\u6307\u5411\u7684\u662f0\uff0c\u4e5f\u5c31\u662f\u6307\u4ee4\u5730\u5740\u4e3a0\uff0c\u7136\u540e\u4f7f\u7528bipush\u8ba9\u64cd\u4f5c\u657015\u5165\u64cd\u4f5c\u6570\u6808\u3002<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/4d65b2f241804de4be578550fdf2c3b7.png#align=left&amp;display=inline&amp;height=290&amp;originHeight=344&amp;originWidth=630&amp;size=0&amp;status=done&amp;style=none&amp;width=531\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/4d65b2f241804de4be578550fdf2c3b7.png#align=left&amp;display=inline&amp;height=290&amp;originHeight=344&amp;originWidth=630&amp;size=0&amp;status=done&amp;style=none&amp;width=531\" alt=\"\"><\/noscript><\/p>\n<p>2\u3001\u6267\u884c\u5b8c\u540e\uff0cPC\u5bc4\u5b58\u5668\u5f80\u4e0b\u79fb\uff0c\u6307\u5411\u4e0b\u4e00\u884c\u4ee3\u7801\uff0c\u4e0b\u4e00\u884c\u4ee3\u7801\u5c31\u662f\u5c06\u64cd\u4f5c\u6570\u6808\u7684\u5143\u7d20\u5b58\u50a8\u5230\u5c40\u90e8\u53d8\u91cf\u88681\u7684\u4f4d\u7f6e\uff08istore_1\uff09\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u5c40\u90e8\u53d8\u91cf\u8868\u7684\u5df2\u7ecf\u589e\u52a0\u4e86\u4e00\u4e2a\u5143\u7d20\u3002\u5e76\u4e14\u64cd\u4f5c\u6570\u6808\u4e3a\u7a7a\u4e86<\/p>\n<ul>\n<li>\u89e3\u91ca\u4e3a\u4ec0\u4e48\u5c40\u90e8\u53d8\u91cf\u8868\u7d22\u5f15\u4ece 1 \u5f00\u59cb\uff0c\u56e0\u4e3a\u8be5\u65b9\u6cd5\u4e3a\u5b9e\u4f8b\u65b9\u6cd5\uff0c\u5c40\u90e8\u53d8\u91cf\u8868\u7d22\u5f15\u4e3a 0 \u7684\u4f4d\u7f6e\u5b58\u653e\u7684\u662f this<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/0c6ee8513c1a0ce1ff7522fade744949.png#align=left&amp;display=inline&amp;height=229&amp;originHeight=322&amp;originWidth=591&amp;size=0&amp;status=done&amp;style=none&amp;width=421\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/0c6ee8513c1a0ce1ff7522fade744949.png#align=left&amp;display=inline&amp;height=229&amp;originHeight=322&amp;originWidth=591&amp;size=0&amp;status=done&amp;style=none&amp;width=421\" alt=\"\"><\/noscript><\/p>\n<p>3\u3001\u7136\u540ePC\u4e0b\u79fb\uff0c\u6307\u5411\u7684\u662f\u4e0b\u4e00\u884c\u3002\u8ba9\u64cd\u4f5c\u65708\u4e5f\u5165\u6808\uff0c\u540c\u65f6\u6267\u884cstore\u64cd\u4f5c\uff0c\u5b58\u5165\u5c40\u90e8\u53d8\u91cf\u8868\u4e2d<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/402edb81bf89b295df32588c87ca47fa.png#align=left&amp;display=inline&amp;height=294&amp;originHeight=656&amp;originWidth=1218&amp;size=0&amp;status=done&amp;style=none&amp;width=545\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/402edb81bf89b295df32588c87ca47fa.png#align=left&amp;display=inline&amp;height=294&amp;originHeight=656&amp;originWidth=1218&amp;size=0&amp;status=done&amp;style=none&amp;width=545\" alt=\"\"><\/noscript><\/p>\n<p>4\u3001\u7136\u540e\u4ece\u5c40\u90e8\u53d8\u91cf\u8868\u4e2d\uff0c\u4f9d\u6b21\u5c06\u6570\u636e\u653e\u5728\u64cd\u4f5c\u6570\u6808\u4e2d\uff0c\u7b49\u5f85\u6267\u884c add \u64cd\u4f5c<\/p>\n<p>iload_1\uff1a\u53d6\u51fa\u5c40\u90e8\u53d8\u91cf\u8868\u4e2d\u7d22\u5f15\u4e3a1\u7684\u6570\u636e\u5165\u64cd\u4f5c\u6570\u6808<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/8e087068831f42e2a61d0fc113ec3fdb.png#align=left&amp;display=inline&amp;height=311&amp;originHeight=656&amp;originWidth=1222&amp;size=0&amp;status=done&amp;style=none&amp;width=579\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/8e087068831f42e2a61d0fc113ec3fdb.png#align=left&amp;display=inline&amp;height=311&amp;originHeight=656&amp;originWidth=1222&amp;size=0&amp;status=done&amp;style=none&amp;width=579\" alt=\"\"><\/noscript><\/p>\n<p>5\u3001\u7136\u540e\u5c06\u64cd\u4f5c\u6570\u6808\u4e2d\u7684\u4e24\u4e2a\u5143\u7d20\u6267\u884c\u76f8\u52a0\u64cd\u4f5c\uff0c\u5e76\u5b58\u50a8\u5728\u5c40\u90e8\u53d8\u91cf\u88683\u7684\u4f4d\u7f6e<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/d623442d2a577f5e442c0c6e371b11de.png#align=left&amp;display=inline&amp;height=326&amp;originHeight=656&amp;originWidth=1214&amp;size=0&amp;status=done&amp;style=none&amp;width=603\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/d623442d2a577f5e442c0c6e371b11de.png#align=left&amp;display=inline&amp;height=326&amp;originHeight=656&amp;originWidth=1214&amp;size=0&amp;status=done&amp;style=none&amp;width=603\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"_1297\"><\/a>\u5c0f\u95ee\u9898<\/h3>\n<p><strong>\u5173\u4e8e\u7c7b\u578b\u8f6c\u6362\u7684\u8bf4\u660e<\/strong><\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/74e91696596193a9034576d6a25231c1.png#align=left&amp;display=inline&amp;height=300&amp;originHeight=780&amp;originWidth=1442&amp;size=0&amp;status=done&amp;style=none&amp;width=555\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/74e91696596193a9034576d6a25231c1.png#align=left&amp;display=inline&amp;height=300&amp;originHeight=780&amp;originWidth=1442&amp;size=0&amp;status=done&amp;style=none&amp;width=555\" alt=\"\"><\/noscript><\/p>\n<ul>\n<li>\u56e0\u4e3a 8 \u53ef\u4ee5\u5b58\u653e\u5728 byte \u7c7b\u578b\u4e2d\uff0c\u6240\u4ee5\u538b\u5165\u64cd\u4f5c\u6570\u6808\u7684\u7c7b\u578b\u4e3a byte \uff0c\u800c\u4e0d\u662f int \uff0c\u6240\u4ee5\u6267\u884c\u7684\u5b57\u8282\u7801\u6307\u4ee4\u4e3a bipush 8<\/li>\n<li>\u4f46\u662f\u5b58\u50a8\u5728\u5c40\u90e8\u53d8\u91cf\u7684\u65f6\u5019\uff0c\u4f1a\u8f6c\u6210 int \u7c7b\u578b\u7684\u53d8\u91cf\uff1aistore_4<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/9878e8e9c0f75acec6eea85a63424ef9.png#align=left&amp;display=inline&amp;height=347&amp;originHeight=761&amp;originWidth=1333&amp;size=0&amp;status=done&amp;style=none&amp;width=607\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/9878e8e9c0f75acec6eea85a63424ef9.png#align=left&amp;display=inline&amp;height=347&amp;originHeight=761&amp;originWidth=1333&amp;size=0&amp;status=done&amp;style=none&amp;width=607\" alt=\"\"><\/noscript><\/p>\n<ul>\n<li>m\u6539\u6210800\u4e4b\u540e\uff0cbyte\u5b58\u50a8\u4e0d\u4e86\uff0c\u5c31\u6210\u4e86short\u578b\uff0csipush 800<\/li>\n<\/ul>\n<p><strong>\u5982\u679c\u88ab\u8c03\u7528\u7684\u65b9\u6cd5\u5e26\u6709\u8fd4\u56de\u503c\uff0c\u8fd4\u56de\u503c\u5165\u64cd\u4f5c\u6570\u6808<\/strong><\/p>\n<pre><code class=\"prism language-java\">  <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">int<\/span> <span class=\"token function\">getSum<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">int<\/span> m <span class=\"token operator\">=<\/span> <span class=\"token number\">10<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">int<\/span> n <span class=\"token operator\">=<\/span> <span class=\"token number\">20<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">int<\/span> k <span class=\"token operator\">=<\/span> m <span class=\"token operator\">+<\/span> n<span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">return<\/span> k<span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">testGetSum<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token comment\">\/\/\u83b7\u53d6\u4e0a\u4e00\u4e2a\u6808\u6862\u8fd4\u56de\u7684\u7ed3\u679c\uff0c\u5e76\u4fdd\u5b58\u5728\u64cd\u4f5c\u6570\u6808\u4e2d<\/span>\n        <span class=\"token keyword\">int<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token function\">getSum<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">int<\/span> j <span class=\"token operator\">=<\/span> <span class=\"token number\">10<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>getSum() \u65b9\u6cd5\u5b57\u8282\u7801\u6307\u4ee4\uff1a\u6700\u540e\u5e26\u7740\u4e2a ireturn<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/15551e728a8f580da9acd15b0439522d.png#align=left&amp;display=inline&amp;height=286&amp;originHeight=565&amp;originWidth=1208&amp;size=0&amp;status=done&amp;style=none&amp;width=612\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/15551e728a8f580da9acd15b0439522d.png#align=left&amp;display=inline&amp;height=286&amp;originHeight=565&amp;originWidth=1208&amp;size=0&amp;status=done&amp;style=none&amp;width=612\" alt=\"\"><\/noscript><\/p>\n<p>testGetSum() \u65b9\u6cd5\u5b57\u8282\u7801\u6307\u4ee4\uff1a\u4e00\u4e0a\u6765\u5c31\u52a0\u8f7d getSum() \u65b9\u6cd5\u7684\u8fd4\u56de\u503c()<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/354e3cc5f8e2c381ca6a1cff228ed49c.png#align=left&amp;display=inline&amp;height=315&amp;originHeight=742&amp;originWidth=1413&amp;size=0&amp;status=done&amp;style=none&amp;width=600\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/354e3cc5f8e2c381ca6a1cff228ed49c.png#align=left&amp;display=inline&amp;height=315&amp;originHeight=742&amp;originWidth=1413&amp;size=0&amp;status=done&amp;style=none&amp;width=600\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"_1348\"><\/a>\u6808\u9876\u7f13\u5b58\u6280\u672f<\/h2>\n<p><strong>\u6808\u9876\u7f13\u5b58\u6280\u672f\uff1aTop Of Stack Cashing<\/strong><\/p>\n<ol>\n<li>\u524d\u9762\u63d0\u8fc7\uff0c\u57fa\u4e8e\u6808\u5f0f\u67b6\u6784\u7684\u865a\u62df\u673a\u6240\u4f7f\u7528\u7684\u96f6\u5730\u5740\u6307\u4ee4\u66f4\u52a0\u7d27\u51d1\uff0c\u4f46\u5b8c\u6210\u4e00\u9879\u64cd\u4f5c\u7684\u65f6\u5019\u5fc5\u7136\u9700\u8981\u4f7f\u7528\u66f4\u591a\u7684\u5165\u6808\u548c\u51fa\u6808\u6307\u4ee4\uff0c\u8fd9\u540c\u65f6\u4e5f\u5c31\u610f\u5473\u7740\u5c06\u9700\u8981\u66f4\u591a\u7684\u6307\u4ee4\u5206\u6d3e\uff08instruction dispatch\uff09\u6b21\u6570\uff08\u4e5f\u5c31\u662f\u4f60\u4f1a\u53d1\u73b0\u6307\u4ee4\u5f88\u591a\uff09\u548c\u5bfc\u81f4\u5185\u5b58\u8bfb\/\u5199\u6b21\u6570\u591a\uff0c\u6548\u7387\u4e0d\u9ad8\u3002<\/li>\n<li>\u7531\u4e8e\u64cd\u4f5c\u6570\u662f\u5b58\u50a8\u5728\u5185\u5b58\u4e2d\u7684\uff0c\u56e0\u6b64\u9891\u7e41\u5730\u6267\u884c\u5185\u5b58\u8bfb\/\u5199\u64cd\u4f5c\u5fc5\u7136\u4f1a\u5f71\u54cd\u6267\u884c\u901f\u5ea6\u3002\u4e3a\u4e86\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0cHotSpot JVM\u7684\u8bbe\u8ba1\u8005\u4eec\u63d0\u51fa\u4e86\u6808\u9876\u7f13\u5b58\uff08Tos\uff0cTop-of-Stack Cashing\uff09\u6280\u672f\uff0c<strong>\u5c06\u6808\u9876\u5143\u7d20\u5168\u90e8\u7f13\u5b58\u5728\u7269\u7406CPU\u7684\u5bc4\u5b58\u5668\u4e2d\uff0c\u4ee5\u6b64\u964d\u4f4e\u5bf9\u5185\u5b58\u7684\u8bfb\/\u5199\u6b21\u6570\uff0c\u63d0\u5347\u6267\u884c\u5f15\u64ce\u7684\u6267\u884c\u6548\u7387\u3002<\/strong><\/li>\n<li>\u5bc4\u5b58\u5668\u7684\u4e3b\u8981\u4f18\u70b9\uff1a\u6307\u4ee4\u66f4\u5c11\uff0c\u6267\u884c\u901f\u5ea6\u5feb\uff0c\u4f46\u662f\u6307\u4ee4\u96c6\uff08\u4e5f\u5c31\u662f\u6307\u4ee4\u79cd\u7c7b\uff09\u5f88\u591a<\/li>\n<\/ol>\n<h2><a id=\"_1360\"><\/a>\u52a8\u6001\u94fe\u63a5<\/h2>\n<p><strong>\u52a8\u6001\u94fe\u63a5\uff08\u6216\u6307\u5411\u8fd0\u884c\u65f6\u5e38\u91cf\u6c60\u7684\u65b9\u6cd5\u5f15\u7528\uff09<\/strong><\/p>\n<ol>\n<li>\u6bcf\u4e00\u4e2a\u6808\u5e27\u5185\u90e8\u90fd\u5305\u542b<strong>\u4e00\u4e2a\u6307\u5411\u8fd0\u884c\u65f6\u5e38\u91cf\u6c60\u4e2d\u8be5\u6808\u5e27\u6240\u5c5e\u65b9\u6cd5\u7684\u5f15\u7528<\/strong>\u3002\u5305\u542b\u8fd9\u4e2a\u5f15\u7528\u7684\u76ee\u7684\u5c31\u662f<strong>\u4e3a\u4e86\u652f\u6301\u5f53\u524d\u65b9\u6cd5\u7684\u4ee3\u7801\u80fd\u591f\u5b9e\u73b0\u52a8\u6001\u94fe\u63a5<\/strong>\uff08Dynamic Linking\uff09\uff0c\u6bd4\u5982\uff1ainvokedynamic\u6307\u4ee4<\/li>\n<li>\u5728Java\u6e90\u6587\u4ef6\u88ab\u7f16\u8bd1\u5230\u5b57\u8282\u7801\u6587\u4ef6\u4e2d\u65f6\uff0c\u6240\u6709\u7684\u53d8\u91cf\u548c\u65b9\u6cd5\u5f15\u7528\u90fd\u4f5c\u4e3a\u7b26\u53f7\u5f15\u7528\uff08Symbolic Reference\uff09\u4fdd\u5b58\u5728class\u6587\u4ef6\u7684\u5e38\u91cf\u6c60\u91cc\u3002\u6bd4\u5982\uff1a\u63cf\u8ff0\u4e00\u4e2a\u65b9\u6cd5\u8c03\u7528\u4e86\u53e6\u5916\u7684\u5176\u4ed6\u65b9\u6cd5\u65f6\uff0c\u5c31\u662f\u901a\u8fc7\u5e38\u91cf\u6c60\u4e2d\u6307\u5411\u65b9\u6cd5\u7684\u7b26\u53f7\u5f15\u7528\u6765\u8868\u793a\u7684\uff0c\u90a3\u4e48<strong>\u52a8\u6001\u94fe\u63a5\u7684\u4f5c\u7528\u5c31\u662f\u4e3a\u4e86\u5c06\u8fd9\u4e9b\u7b26\u53f7\u5f15\u7528\u8f6c\u6362\u4e3a\u8c03\u7528\u65b9\u6cd5\u7684\u76f4\u63a5\u5f15\u7528<\/strong><\/li>\n<\/ol>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">DynamicLinkingTest<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n\n    <span class=\"token keyword\">int<\/span> num <span class=\"token operator\">=<\/span> <span class=\"token number\">10<\/span><span class=\"token punctuation\">;<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">methodA<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"methodA()....\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">methodB<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"methodB()....\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        <span class=\"token function\">methodA<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        num<span class=\"token operator\">++<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u5bf9\u5e94\u5b57\u8282\u7801<\/p>\n<pre><code class=\"prism language-java\">Classfile <span class=\"token operator\">\/<\/span>F<span class=\"token operator\">:<\/span><span class=\"token operator\">\/<\/span>IDEAWorkSpaceSourceCode<span class=\"token operator\">\/<\/span>JVMDemo<span class=\"token operator\">\/<\/span>out<span class=\"token operator\">\/<\/span>production<span class=\"token operator\">\/<\/span>chapter05<span class=\"token operator\">\/<\/span>com<span class=\"token operator\">\/<\/span>atguigu<span class=\"token operator\">\/<\/span>java1<span class=\"token operator\">\/<\/span>DynamicLinkingTest<span class=\"token punctuation\">.<\/span><span class=\"token keyword\">class<\/span>\n  <span class=\"token class-name\">Last<\/span> modified <span class=\"token number\">2020<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">11<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">10<\/span><span class=\"token punctuation\">;<\/span> size <span class=\"token number\">712<\/span> bytes\n  MD5 checksum e56913c945f897c7ee6c0a608629bca8\n  Compiled from <span class=\"token string\">\"DynamicLinkingTest.java\"<\/span>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">com<span class=\"token punctuation\">.<\/span>atguigu<span class=\"token punctuation\">.<\/span>java1<span class=\"token punctuation\">.<\/span>DynamicLinkingTest<\/span>\n  minor version<span class=\"token operator\">:<\/span> <span class=\"token number\">0<\/span>\n  major version<span class=\"token operator\">:<\/span> <span class=\"token number\">52<\/span>\n  flags<span class=\"token operator\">:<\/span> ACC_PUBLIC<span class=\"token punctuation\">,<\/span> ACC_SUPER\nConstant pool<span class=\"token operator\">:<\/span>\n   #<span class=\"token number\">1<\/span> <span class=\"token operator\">=<\/span> Methodref          #<span class=\"token number\">9.<\/span>#<span class=\"token number\">23<\/span>         <span class=\"token comment\">\/\/ java\/lang\/Object.\"&lt;init&gt;\":()V<\/span>\n   #<span class=\"token number\">2<\/span> <span class=\"token operator\">=<\/span> Fieldref           #<span class=\"token number\">8.<\/span>#<span class=\"token number\">24<\/span>         <span class=\"token comment\">\/\/ com\/atguigu\/java1\/DynamicLinkingTest.num:I<\/span>\n   #<span class=\"token number\">3<\/span> <span class=\"token operator\">=<\/span> Fieldref           #<span class=\"token number\">25.<\/span>#<span class=\"token number\">26<\/span>        <span class=\"token comment\">\/\/ java\/lang\/System.out:Ljava\/io\/PrintStream;<\/span>\n   #<span class=\"token number\">4<\/span> <span class=\"token operator\">=<\/span> String             #<span class=\"token number\">27<\/span>            <span class=\"token comment\">\/\/ methodA()....<\/span>\n   #<span class=\"token number\">5<\/span> <span class=\"token operator\">=<\/span> Methodref          #<span class=\"token number\">28.<\/span>#<span class=\"token number\">29<\/span>        <span class=\"token comment\">\/\/ java\/io\/PrintStream.println:(Ljava\/lang\/String;)V<\/span>\n   #<span class=\"token number\">6<\/span> <span class=\"token operator\">=<\/span> String             #<span class=\"token number\">30<\/span>            <span class=\"token comment\">\/\/ methodB()....<\/span>\n   #<span class=\"token number\">7<\/span> <span class=\"token operator\">=<\/span> Methodref          #<span class=\"token number\">8.<\/span>#<span class=\"token number\">31<\/span>         <span class=\"token comment\">\/\/ com\/atguigu\/java1\/DynamicLinkingTest.methodA:()V<\/span>\n   #<span class=\"token number\">8<\/span> <span class=\"token operator\">=<\/span> Class              #<span class=\"token number\">32<\/span>            <span class=\"token comment\">\/\/ com\/atguigu\/java1\/DynamicLinkingTest<\/span>\n   #<span class=\"token number\">9<\/span> <span class=\"token operator\">=<\/span> Class              #<span class=\"token number\">33<\/span>            <span class=\"token comment\">\/\/ java\/lang\/Object<\/span>\n  #<span class=\"token number\">10<\/span> <span class=\"token operator\">=<\/span> Utf8               num\n  #<span class=\"token number\">11<\/span> <span class=\"token operator\">=<\/span> Utf8               I\n  #<span class=\"token number\">12<\/span> <span class=\"token operator\">=<\/span> Utf8               <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>init<span class=\"token punctuation\">&gt;<\/span><\/span>\n  #<span class=\"token number\">13<\/span> <span class=\"token operator\">=<\/span> Utf8               <span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>V\n  #<span class=\"token number\">14<\/span> <span class=\"token operator\">=<\/span> Utf8               Code\n  #<span class=\"token number\">15<\/span> <span class=\"token operator\">=<\/span> Utf8               LineNumberTable\n  #<span class=\"token number\">16<\/span> <span class=\"token operator\">=<\/span> Utf8               LocalVariableTable\n  #<span class=\"token number\">17<\/span> <span class=\"token operator\">=<\/span> Utf8               <span class=\"token keyword\">this<\/span>\n  #<span class=\"token number\">18<\/span> <span class=\"token operator\">=<\/span> Utf8               Lcom<span class=\"token operator\">\/<\/span>atguigu<span class=\"token operator\">\/<\/span>java1<span class=\"token operator\">\/<\/span>DynamicLinkingTest<span class=\"token punctuation\">;<\/span>\n  #<span class=\"token number\">19<\/span> <span class=\"token operator\">=<\/span> Utf8               methodA\n  #<span class=\"token number\">20<\/span> <span class=\"token operator\">=<\/span> Utf8               methodB\n  #<span class=\"token number\">21<\/span> <span class=\"token operator\">=<\/span> Utf8               SourceFile\n  #<span class=\"token number\">22<\/span> <span class=\"token operator\">=<\/span> Utf8               DynamicLinkingTest<span class=\"token punctuation\">.<\/span>java\n  #<span class=\"token number\">23<\/span> <span class=\"token operator\">=<\/span> NameAndType        #<span class=\"token number\">12<\/span><span class=\"token operator\">:<\/span>#<span class=\"token number\">13<\/span>        <span class=\"token comment\">\/\/ \"&lt;init&gt;\":()V<\/span>\n  #<span class=\"token number\">24<\/span> <span class=\"token operator\">=<\/span> NameAndType        #<span class=\"token number\">10<\/span><span class=\"token operator\">:<\/span>#<span class=\"token number\">11<\/span>        <span class=\"token comment\">\/\/ num:I<\/span>\n  #<span class=\"token number\">25<\/span> <span class=\"token operator\">=<\/span> Class              #<span class=\"token number\">34<\/span>            <span class=\"token comment\">\/\/ java\/lang\/System<\/span>\n  #<span class=\"token number\">26<\/span> <span class=\"token operator\">=<\/span> NameAndType        #<span class=\"token number\">35<\/span><span class=\"token operator\">:<\/span>#<span class=\"token number\">36<\/span>        <span class=\"token comment\">\/\/ out:Ljava\/io\/PrintStream;<\/span>\n  #<span class=\"token number\">27<\/span> <span class=\"token operator\">=<\/span> Utf8               <span class=\"token function\">methodA<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span>\n  #<span class=\"token number\">28<\/span> <span class=\"token operator\">=<\/span> Class              #<span class=\"token number\">37<\/span>            <span class=\"token comment\">\/\/ java\/io\/PrintStream<\/span>\n  #<span class=\"token number\">29<\/span> <span class=\"token operator\">=<\/span> NameAndType        #<span class=\"token number\">38<\/span><span class=\"token operator\">:<\/span>#<span class=\"token number\">39<\/span>        <span class=\"token comment\">\/\/ println:(Ljava\/lang\/String;)V<\/span>\n  #<span class=\"token number\">30<\/span> <span class=\"token operator\">=<\/span> Utf8               <span class=\"token function\">methodB<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span>\n  #<span class=\"token number\">31<\/span> <span class=\"token operator\">=<\/span> NameAndType        #<span class=\"token number\">19<\/span><span class=\"token operator\">:<\/span>#<span class=\"token number\">13<\/span>        <span class=\"token comment\">\/\/ methodA:()V<\/span>\n  #<span class=\"token number\">32<\/span> <span class=\"token operator\">=<\/span> Utf8               com<span class=\"token operator\">\/<\/span>atguigu<span class=\"token operator\">\/<\/span>java1<span class=\"token operator\">\/<\/span>DynamicLinkingTest\n  #<span class=\"token number\">33<\/span> <span class=\"token operator\">=<\/span> Utf8               java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>Object\n  #<span class=\"token number\">34<\/span> <span class=\"token operator\">=<\/span> Utf8               java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>System\n  #<span class=\"token number\">35<\/span> <span class=\"token operator\">=<\/span> Utf8               out\n  #<span class=\"token number\">36<\/span> <span class=\"token operator\">=<\/span> Utf8               Ljava<span class=\"token operator\">\/<\/span>io<span class=\"token operator\">\/<\/span>PrintStream<span class=\"token punctuation\">;<\/span>\n  #<span class=\"token number\">37<\/span> <span class=\"token operator\">=<\/span> Utf8               java<span class=\"token operator\">\/<\/span>io<span class=\"token operator\">\/<\/span>PrintStream\n  #<span class=\"token number\">38<\/span> <span class=\"token operator\">=<\/span> Utf8               println\n  #<span class=\"token number\">39<\/span> <span class=\"token operator\">=<\/span> Utf8               <span class=\"token punctuation\">(<\/span>Ljava<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>String<span class=\"token punctuation\">;<\/span><span class=\"token punctuation\">)<\/span>V\n<span class=\"token punctuation\">{<!-- --><\/span>\n  <span class=\"token keyword\">int<\/span> num<span class=\"token punctuation\">;<\/span>\n    descriptor<span class=\"token operator\">:<\/span> I\n    flags<span class=\"token operator\">:<\/span>\n\n  <span class=\"token keyword\">public<\/span> com<span class=\"token punctuation\">.<\/span>atguigu<span class=\"token punctuation\">.<\/span>java1<span class=\"token punctuation\">.<\/span><span class=\"token function\">DynamicLinkingTest<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    descriptor<span class=\"token operator\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>V\n    flags<span class=\"token operator\">:<\/span> ACC_PUBLIC\n    Code<span class=\"token operator\">:<\/span>\n      stack<span class=\"token operator\">=<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> locals<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> args_size<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span>\n         <span class=\"token number\">0<\/span><span class=\"token operator\">:<\/span> aload_0\n         <span class=\"token number\">1<\/span><span class=\"token operator\">:<\/span> invokespecial #<span class=\"token number\">1<\/span>                  <span class=\"token comment\">\/\/ Method java\/lang\/Object.\"&lt;init&gt;\":()V<\/span>\n         <span class=\"token number\">4<\/span><span class=\"token operator\">:<\/span> aload_0\n         <span class=\"token number\">5<\/span><span class=\"token operator\">:<\/span> bipush        <span class=\"token number\">10<\/span>\n         <span class=\"token number\">7<\/span><span class=\"token operator\">:<\/span> putfield      #<span class=\"token number\">2<\/span>                  <span class=\"token comment\">\/\/ Field num:I<\/span>\n        <span class=\"token number\">10<\/span><span class=\"token operator\">:<\/span> <span class=\"token keyword\">return<\/span>\n      LineNumberTable<span class=\"token operator\">:<\/span>\n        line <span class=\"token number\">7<\/span><span class=\"token operator\">:<\/span> <span class=\"token number\">0<\/span>\n        line <span class=\"token number\">9<\/span><span class=\"token operator\">:<\/span> <span class=\"token number\">4<\/span>\n      LocalVariableTable<span class=\"token operator\">:<\/span>\n        Start  Length  Slot  Name   Signature\n            <span class=\"token number\">0<\/span>      <span class=\"token number\">11<\/span>     <span class=\"token number\">0<\/span>  <span class=\"token keyword\">this<\/span>   Lcom<span class=\"token operator\">\/<\/span>atguigu<span class=\"token operator\">\/<\/span>java1<span class=\"token operator\">\/<\/span>DynamicLinkingTest<span class=\"token punctuation\">;<\/span>\n\n  <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">methodA<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    descriptor<span class=\"token operator\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>V\n    flags<span class=\"token operator\">:<\/span> ACC_PUBLIC\n    Code<span class=\"token operator\">:<\/span>\n      stack<span class=\"token operator\">=<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> locals<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> args_size<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span>\n         <span class=\"token number\">0<\/span><span class=\"token operator\">:<\/span> getstatic     #<span class=\"token number\">3<\/span>                  <span class=\"token comment\">\/\/ Field java\/lang\/System.out:Ljava\/io\/PrintStream;<\/span>\n         <span class=\"token number\">3<\/span><span class=\"token operator\">:<\/span> ldc           #<span class=\"token number\">4<\/span>                  <span class=\"token comment\">\/\/ String methodA()....<\/span>\n         <span class=\"token number\">5<\/span><span class=\"token operator\">:<\/span> invokevirtual #<span class=\"token number\">5<\/span>                  <span class=\"token comment\">\/\/ Method java\/io\/PrintStream.println:(Ljava\/lang\/String;)V<\/span>\n         <span class=\"token number\">8<\/span><span class=\"token operator\">:<\/span> <span class=\"token keyword\">return<\/span>\n      LineNumberTable<span class=\"token operator\">:<\/span>\n        line <span class=\"token number\">12<\/span><span class=\"token operator\">:<\/span> <span class=\"token number\">0<\/span>\n        line <span class=\"token number\">13<\/span><span class=\"token operator\">:<\/span> <span class=\"token number\">8<\/span>\n      LocalVariableTable<span class=\"token operator\">:<\/span>\n        Start  Length  Slot  Name   Signature\n            <span class=\"token number\">0<\/span>       <span class=\"token number\">9<\/span>     <span class=\"token number\">0<\/span>  <span class=\"token keyword\">this<\/span>   Lcom<span class=\"token operator\">\/<\/span>atguigu<span class=\"token operator\">\/<\/span>java1<span class=\"token operator\">\/<\/span>DynamicLinkingTest<span class=\"token punctuation\">;<\/span>\n\n  <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">methodB<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    descriptor<span class=\"token operator\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>V\n    flags<span class=\"token operator\">:<\/span> ACC_PUBLIC\n    Code<span class=\"token operator\">:<\/span>\n      stack<span class=\"token operator\">=<\/span><span class=\"token number\">3<\/span><span class=\"token punctuation\">,<\/span> locals<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> args_size<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span>\n         <span class=\"token number\">0<\/span><span class=\"token operator\">:<\/span> getstatic     #<span class=\"token number\">3<\/span>                  <span class=\"token comment\">\/\/ Field java\/lang\/System.out:Ljava\/io\/PrintStream;<\/span>\n         <span class=\"token number\">3<\/span><span class=\"token operator\">:<\/span> ldc           #<span class=\"token number\">6<\/span>                  <span class=\"token comment\">\/\/ String methodB()....<\/span>\n         <span class=\"token number\">5<\/span><span class=\"token operator\">:<\/span> invokevirtual #<span class=\"token number\">5<\/span>                  <span class=\"token comment\">\/\/ Method java\/io\/PrintStream.println:(Ljava\/lang\/String;)V<\/span>\n         <span class=\"token number\">8<\/span><span class=\"token operator\">:<\/span> aload_0\n         <span class=\"token number\">9<\/span><span class=\"token operator\">:<\/span> invokevirtual #<span class=\"token number\">7<\/span>                  <span class=\"token comment\">\/\/ Method methodA:()V<\/span>\n        <span class=\"token number\">12<\/span><span class=\"token operator\">:<\/span> aload_0\n        <span class=\"token number\">13<\/span><span class=\"token operator\">:<\/span> dup\n        <span class=\"token number\">14<\/span><span class=\"token operator\">:<\/span> getfield      #<span class=\"token number\">2<\/span>                  <span class=\"token comment\">\/\/ Field num:I<\/span>\n        <span class=\"token number\">17<\/span><span class=\"token operator\">:<\/span> iconst_1\n        <span class=\"token number\">18<\/span><span class=\"token operator\">:<\/span> iadd\n        <span class=\"token number\">19<\/span><span class=\"token operator\">:<\/span> putfield      #<span class=\"token number\">2<\/span>                  <span class=\"token comment\">\/\/ Field num:I<\/span>\n        <span class=\"token number\">22<\/span><span class=\"token operator\">:<\/span> <span class=\"token keyword\">return<\/span>\n      LineNumberTable<span class=\"token operator\">:<\/span>\n        line <span class=\"token number\">16<\/span><span class=\"token operator\">:<\/span> <span class=\"token number\">0<\/span>\n        line <span class=\"token number\">18<\/span><span class=\"token operator\">:<\/span> <span class=\"token number\">8<\/span>\n        line <span class=\"token number\">20<\/span><span class=\"token operator\">:<\/span> <span class=\"token number\">12<\/span>\n        line <span class=\"token number\">21<\/span><span class=\"token operator\">:<\/span> <span class=\"token number\">22<\/span>\n      LocalVariableTable<span class=\"token operator\">:<\/span>\n        Start  Length  Slot  Name   Signature\n            <span class=\"token number\">0<\/span>      <span class=\"token number\">23<\/span>     <span class=\"token number\">0<\/span>  <span class=\"token keyword\">this<\/span>   Lcom<span class=\"token operator\">\/<\/span>atguigu<span class=\"token operator\">\/<\/span>java1<span class=\"token operator\">\/<\/span>DynamicLinkingTest<span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\nSourceFile<span class=\"token operator\">:<\/span> <span class=\"token string\">\"DynamicLinkingTest.java\"<\/span>\n<\/code><\/pre>\n<p>1\u3001\u5728\u5b57\u8282\u7801\u6307\u4ee4\u4e2d\uff0cmethodB() \u65b9\u6cd5\u4e2d\u901a\u8fc7 invokevirtual #7 \u6307\u4ee4\u8c03\u7528\u4e86\u65b9\u6cd5 A \uff0c\u90a3\u4e48 #7 \u662f\u4e2a\u5565\u5462\uff1f<\/p>\n<p>2\u3001\u5f80\u4e0a\u9762\u7ffb\uff0c\u627e\u5230\u5e38\u91cf\u6c60\u7684\u5b9a\u4e49\uff1a<code>#7 = Methodref #8.#31<\/code><\/p>\n<ul>\n<li>\u5148\u627e #8 \uff1a\n<ul>\n<li><code>#8 = Class #32<\/code> \uff1a\u53bb\u627e #32<\/li>\n<li><code>#32 = Utf8 com\/atguigu\/java1\/DynamicLinkingTest<\/code><\/li>\n<li>\u7ed3\u8bba\uff1a\u901a\u8fc7 #8 \u6211\u4eec\u627e\u5230\u4e86 <code>DynamicLinkingTest<\/code> \u8fd9\u4e2a\u7c7b<\/li>\n<\/ul>\n<\/li>\n<li>\u518d\u6765\u627e #31\uff1a\n<ul>\n<li><code>#31 = NameAndType #19:#13<\/code> \uff1a\u53bb\u627e #19 \u548c #13<\/li>\n<li><code>#19 = Utf8 methodA<\/code> \uff1a\u65b9\u6cd5\u540d\u4e3a methodA<\/li>\n<li><code>#13 = Utf8 ()V<\/code> \uff1a\u65b9\u6cd5\u6ca1\u6709\u5f62\u53c2\uff0c\u8fd4\u56de\u503c\u4e3a void<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>3\u3001\u7ed3\u8bba\uff1a\u901a\u8fc7 #7 \u6211\u4eec\u5c31\u80fd\u627e\u5230\u9700\u8981\u8c03\u7528\u7684 methodA() \u65b9\u6cd5\uff0c\u5e76\u8fdb\u884c\u8c03\u7528<\/p>\n<p>4\u3001\u5728\u4e0a\u9762\uff0c\u5176\u5b9e\u8fd8\u6709\u5f88\u591a\u7b26\u53f7\u5f15\u7528\uff0c\u6bd4\u5982 Object\u3001System\u3001PrintStream \u7b49\u7b49<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/4644bcdbc2cd86a45239f5cde43844d0.png#align=left&amp;display=inline&amp;height=249&amp;originHeight=594&amp;originWidth=1194&amp;size=0&amp;status=done&amp;style=none&amp;width=500\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/4644bcdbc2cd86a45239f5cde43844d0.png#align=left&amp;display=inline&amp;height=249&amp;originHeight=594&amp;originWidth=1194&amp;size=0&amp;status=done&amp;style=none&amp;width=500\" alt=\"\"><\/noscript><\/p>\n<p><strong>\u4e3a\u4ec0\u4e48\u8981\u7528\u5e38\u91cf\u6c60\u5462\uff1f<\/strong><\/p>\n<ol>\n<li>\u56e0\u4e3a\u5728\u4e0d\u540c\u7684\u65b9\u6cd5\uff0c\u90fd\u53ef\u80fd\u8c03\u7528\u5e38\u91cf\u6216\u8005\u65b9\u6cd5\uff0c\u6240\u4ee5\u53ea\u9700\u8981\u5b58\u50a8\u4e00\u4efd\u5373\u53ef\uff0c\u7136\u540e\u8bb0\u5f55\u5176\u5f15\u7528\u5373\u53ef\uff0c\u8282\u7701\u4e86\u7a7a\u95f4\u3002<\/li>\n<li>\u5e38\u91cf\u6c60\u7684\u4f5c\u7528\uff1a\u5c31\u662f\u4e3a\u4e86\u63d0\u4f9b\u4e00\u4e9b\u7b26\u53f7\u548c\u5e38\u91cf\uff0c\u4fbf\u4e8e\u6307\u4ee4\u7684\u8bc6\u522b<\/li>\n<\/ol>\n<h2><a id=\"_1544\"><\/a>\u65b9\u6cd5\u7684\u8c03\u7528<\/h2>\n<h3><a id=\"_1547\"><\/a>\u9759\u6001\u94fe\u63a5\u4e0e\u52a8\u6001\u94fe\u63a5<\/h3>\n<p>\u5728JVM\u4e2d\uff0c\u5c06\u7b26\u53f7\u5f15\u7528\u8f6c\u6362\u4e3a\u8c03\u7528\u65b9\u6cd5\u7684\u76f4\u63a5\u5f15\u7528\u4e0e\u65b9\u6cd5\u7684\u7ed1\u5b9a\u673a\u5236\u76f8\u5173<\/p>\n<ul>\n<li><strong>\u9759\u6001\u94fe\u63a5<\/strong>\uff1a<\/li>\n<\/ul>\n<p>\u5f53\u4e00\u4e2a\u5b57\u8282\u7801\u6587\u4ef6\u88ab\u88c5\u8f7d\u8fdbJVM\u5185\u90e8\u65f6\uff0c\u5982\u679c\u88ab\u8c03\u7528\u7684\u76ee\u6807\u65b9\u6cd5\u5728\u7f16\u8bd1\u671f\u786e\u5b9a\uff0c\u4e14\u8fd0\u884c\u671f\u4fdd\u6301\u4e0d\u53d8\u65f6\uff0c\u8fd9\u79cd\u60c5\u51b5\u4e0b\u5c06\u8c03\u7528\u65b9\u6cd5\u7684\u7b26\u53f7\u5f15\u7528\u8f6c\u6362\u4e3a\u76f4\u63a5\u5f15\u7528\u7684\u8fc7\u7a0b\u79f0\u4e4b\u4e3a\u9759\u6001\u94fe\u63a5<\/p>\n<ul>\n<li><strong>\u52a8\u6001\u94fe\u63a5<\/strong>\uff1a<\/li>\n<\/ul>\n<p>\u5982\u679c\u88ab\u8c03\u7528\u7684\u65b9\u6cd5\u5728\u7f16\u8bd1\u671f\u65e0\u6cd5\u88ab\u786e\u5b9a\u4e0b\u6765\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c\u53ea\u80fd\u591f\u5728\u7a0b\u5e8f\u8fd0\u884c\u671f\u5c06\u8c03\u7528\u7684\u65b9\u6cd5\u7684\u7b26\u53f7\u8f6c\u6362\u4e3a\u76f4\u63a5\u5f15\u7528\uff0c\u7531\u4e8e\u8fd9\u79cd\u5f15\u7528\u8f6c\u6362\u8fc7\u7a0b\u5177\u5907\u52a8\u6001\u6027\uff0c\u56e0\u6b64\u4e5f\u88ab\u79f0\u4e4b\u4e3a\u52a8\u6001\u94fe\u63a5\u3002<\/p>\n<h3><a id=\"_1563\"><\/a>\u65e9\u671f\u7ed1\u5b9a\u4e0e\u665a\u671f\u7ed1\u5b9a<\/h3>\n<blockquote>\n<p>\u9759\u6001\u94fe\u63a5\u4e0e\u52a8\u6001\u94fe\u63a5\u9488\u5bf9\u7684\u662f\u65b9\u6cd5\u3002\u65e9\u671f\u7ed1\u5b9a\u548c\u665a\u671f\u7ed1\u5b9a\u8303\u56f4\u66f4\u5e7f\u3002\u65e9\u671f\u7ed1\u5b9a\u6db5\u76d6\u4e86\u9759\u6001\u94fe\u63a5\uff0c\u665a\u671f\u7ed1\u5b9a\u6db5\u76d6\u4e86\u52a8\u6001\u94fe\u63a5\u3002<\/p>\n<\/blockquote>\n<p>\u9759\u6001\u94fe\u63a5\u548c\u52a8\u6001\u94fe\u63a5\u5bf9\u5e94\u7684\u65b9\u6cd5\u7684\u7ed1\u5b9a\u673a\u5236\u4e3a\uff1a\u65e9\u671f\u7ed1\u5b9a\uff08Early Binding\uff09\u548c\u665a\u671f\u7ed1\u5b9a\uff08Late Binding\uff09\u3002<strong>\u7ed1\u5b9a\u662f\u4e00\u4e2a\u5b57\u6bb5\u3001\u65b9\u6cd5\u6216\u8005\u7c7b\u5728\u7b26\u53f7\u5f15\u7528\u88ab\u66ff\u6362\u4e3a\u76f4\u63a5\u5f15\u7528\u7684\u8fc7\u7a0b<\/strong>\uff0c\u8fd9\u4ec5\u4ec5\u53d1\u751f\u4e00\u6b21\u3002<\/p>\n<ul>\n<li><strong>\u65e9\u671f\u7ed1\u5b9a<\/strong><\/li>\n<\/ul>\n<p>\u65e9\u671f\u7ed1\u5b9a\u5c31\u662f\u6307\u88ab\u8c03\u7528\u7684\u76ee\u6807\u65b9\u6cd5\u5982\u679c\u5728\u7f16\u8bd1\u671f\u53ef\u77e5\uff0c\u4e14\u8fd0\u884c\u671f\u4fdd\u6301\u4e0d\u53d8\u65f6\uff0c\u5373\u53ef\u5c06\u8fd9\u4e2a\u65b9\u6cd5\u4e0e\u6240\u5c5e\u7684\u7c7b\u578b\u8fdb\u884c\u7ed1\u5b9a\uff0c\u8fd9\u6837\u4e00\u6765\uff0c\u7531\u4e8e\u660e\u786e\u4e86\u88ab\u8c03\u7528\u7684\u76ee\u6807\u65b9\u6cd5\u7a76\u7adf\u662f\u54ea\u4e00\u4e2a\uff0c\u56e0\u6b64\u4e5f\u5c31<strong>\u53ef\u4ee5\u4f7f\u7528\u9759\u6001\u94fe\u63a5\u7684\u65b9\u5f0f\u5c06\u7b26\u53f7\u5f15\u7528\u8f6c\u6362\u4e3a\u76f4\u63a5\u5f15\u7528<\/strong>\u3002<\/p>\n<ul>\n<li><strong>\u665a\u671f\u7ed1\u5b9a<\/strong><\/li>\n<\/ul>\n<p>\u5982\u679c\u88ab\u8c03\u7528\u7684\u65b9\u6cd5\u5728\u7f16\u8bd1\u671f\u65e0\u6cd5\u88ab\u786e\u5b9a\u4e0b\u6765\uff0c<strong>\u53ea\u80fd\u591f\u5728\u7a0b\u5e8f\u8fd0\u884c\u671f\u6839\u636e\u5b9e\u9645\u7684\u7c7b\u578b\u7ed1\u5b9a\u76f8\u5173\u7684\u65b9\u6cd5<\/strong>\uff0c\u8fd9\u79cd\u7ed1\u5b9a\u65b9\u5f0f\u4e5f\u5c31\u88ab\u79f0\u4e4b\u4e3a\u665a\u671f\u7ed1\u5b9a\u3002<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Animal<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">eat<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"\u52a8\u7269\u8fdb\u98df\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">interface<\/span> <span class=\"token class-name\">Huntable<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">void<\/span> <span class=\"token function\">hunt<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Dog<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">Animal<\/span> <span class=\"token keyword\">implements<\/span> <span class=\"token class-name\">Huntable<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token annotation punctuation\">@Override<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">eat<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"\u72d7\u5403\u9aa8\u5934\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token annotation punctuation\">@Override<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">hunt<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"\u6355\u98df\u8017\u5b50\uff0c\u591a\u7ba1\u95f2\u4e8b\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Cat<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">Animal<\/span> <span class=\"token keyword\">implements<\/span> <span class=\"token class-name\">Huntable<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token function\">Cat<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u8868\u73b0\u4e3a\uff1a\u65e9\u671f\u7ed1\u5b9a<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token function\">Cat<\/span><span class=\"token punctuation\">(<\/span>String name<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u8868\u73b0\u4e3a\uff1a\u65e9\u671f\u7ed1\u5b9a<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token annotation punctuation\">@Override<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">eat<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">eat<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u8868\u73b0\u4e3a\uff1a\u65e9\u671f\u7ed1\u5b9a<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"\u732b\u5403\u9c7c\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token annotation punctuation\">@Override<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">hunt<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"\u6355\u98df\u8017\u5b50\uff0c\u5929\u7ecf\u5730\u4e49\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">AnimalTest<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">showAnimal<\/span><span class=\"token punctuation\">(<\/span>Animal animal<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        animal<span class=\"token punctuation\">.<\/span><span class=\"token function\">eat<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u8868\u73b0\u4e3a\uff1a\u665a\u671f\u7ed1\u5b9a<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">showHunt<\/span><span class=\"token punctuation\">(<\/span>Huntable h<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        h<span class=\"token punctuation\">.<\/span><span class=\"token function\">hunt<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u8868\u73b0\u4e3a\uff1a\u665a\u671f\u7ed1\u5b9a<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u90e8\u5206\u5b57\u8282\u7801<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token punctuation\">{<!-- --><\/span>\n  <span class=\"token keyword\">public<\/span> com<span class=\"token punctuation\">.<\/span>atguigu<span class=\"token punctuation\">.<\/span>java2<span class=\"token punctuation\">.<\/span><span class=\"token function\">AnimalTest<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    descriptor<span class=\"token operator\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>V\n    flags<span class=\"token operator\">:<\/span> ACC_PUBLIC\n    Code<span class=\"token operator\">:<\/span>\n      stack<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> locals<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> args_size<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span>\n         <span class=\"token number\">0<\/span><span class=\"token operator\">:<\/span> aload_0\n         <span class=\"token number\">1<\/span><span class=\"token operator\">:<\/span> invokespecial #<span class=\"token number\">1<\/span>                  <span class=\"token comment\">\/\/ Method java\/lang\/Object.\"&lt;init&gt;\":()V<\/span>\n         <span class=\"token number\">4<\/span><span class=\"token operator\">:<\/span> <span class=\"token keyword\">return<\/span>\n      LineNumberTable<span class=\"token operator\">:<\/span>\n        line <span class=\"token number\">54<\/span><span class=\"token operator\">:<\/span> <span class=\"token number\">0<\/span>\n      LocalVariableTable<span class=\"token operator\">:<\/span>\n        Start  Length  Slot  Name   Signature\n            <span class=\"token number\">0<\/span>       <span class=\"token number\">5<\/span>     <span class=\"token number\">0<\/span>  <span class=\"token keyword\">this<\/span>   Lcom<span class=\"token operator\">\/<\/span>atguigu<span class=\"token operator\">\/<\/span>java2<span class=\"token operator\">\/<\/span>AnimalTest<span class=\"token punctuation\">;<\/span>\n\n  <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">showAnimal<\/span><span class=\"token punctuation\">(<\/span>com<span class=\"token punctuation\">.<\/span>atguigu<span class=\"token punctuation\">.<\/span>java2<span class=\"token punctuation\">.<\/span>Animal<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    descriptor<span class=\"token operator\">:<\/span> <span class=\"token punctuation\">(<\/span>Lcom<span class=\"token operator\">\/<\/span>atguigu<span class=\"token operator\">\/<\/span>java2<span class=\"token operator\">\/<\/span>Animal<span class=\"token punctuation\">;<\/span><span class=\"token punctuation\">)<\/span>V\n    flags<span class=\"token operator\">:<\/span> ACC_PUBLIC\n    Code<span class=\"token operator\">:<\/span>\n      stack<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> locals<span class=\"token operator\">=<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> args_size<span class=\"token operator\">=<\/span><span class=\"token number\">2<\/span>\n         <span class=\"token number\">0<\/span><span class=\"token operator\">:<\/span> aload_1\n         <span class=\"token number\">1<\/span><span class=\"token operator\">:<\/span> invokevirtual #<span class=\"token number\">2<\/span>                  <span class=\"token comment\">\/\/ Method com\/atguigu\/java2\/Animal.eat:()V<\/span>\n         <span class=\"token number\">4<\/span><span class=\"token operator\">:<\/span> <span class=\"token keyword\">return<\/span>\n      LineNumberTable<span class=\"token operator\">:<\/span>\n        line <span class=\"token number\">56<\/span><span class=\"token operator\">:<\/span> <span class=\"token number\">0<\/span>\n        line <span class=\"token number\">57<\/span><span class=\"token operator\">:<\/span> <span class=\"token number\">4<\/span>\n      LocalVariableTable<span class=\"token operator\">:<\/span>\n        Start  Length  Slot  Name   Signature\n            <span class=\"token number\">0<\/span>       <span class=\"token number\">5<\/span>     <span class=\"token number\">0<\/span>  <span class=\"token keyword\">this<\/span>   Lcom<span class=\"token operator\">\/<\/span>atguigu<span class=\"token operator\">\/<\/span>java2<span class=\"token operator\">\/<\/span>AnimalTest<span class=\"token punctuation\">;<\/span>\n            <span class=\"token number\">0<\/span>       <span class=\"token number\">5<\/span>     <span class=\"token number\">1<\/span> animal   Lcom<span class=\"token operator\">\/<\/span>atguigu<span class=\"token operator\">\/<\/span>java2<span class=\"token operator\">\/<\/span>Animal<span class=\"token punctuation\">;<\/span>\n\n  <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">showHunt<\/span><span class=\"token punctuation\">(<\/span>com<span class=\"token punctuation\">.<\/span>atguigu<span class=\"token punctuation\">.<\/span>java2<span class=\"token punctuation\">.<\/span>Huntable<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    descriptor<span class=\"token operator\">:<\/span> <span class=\"token punctuation\">(<\/span>Lcom<span class=\"token operator\">\/<\/span>atguigu<span class=\"token operator\">\/<\/span>java2<span class=\"token operator\">\/<\/span>Huntable<span class=\"token punctuation\">;<\/span><span class=\"token punctuation\">)<\/span>V\n    flags<span class=\"token operator\">:<\/span> ACC_PUBLIC\n    Code<span class=\"token operator\">:<\/span>\n      stack<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> locals<span class=\"token operator\">=<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> args_size<span class=\"token operator\">=<\/span><span class=\"token number\">2<\/span>\n         <span class=\"token number\">0<\/span><span class=\"token operator\">:<\/span> aload_1\n         <span class=\"token number\">1<\/span><span class=\"token operator\">:<\/span> invokeinterface #<span class=\"token number\">3<\/span><span class=\"token punctuation\">,<\/span>  <span class=\"token number\">1<\/span>            <span class=\"token comment\">\/\/ InterfaceMethod com\/atguigu\/java2\/Huntable.hunt:()V<\/span>\n         <span class=\"token number\">6<\/span><span class=\"token operator\">:<\/span> <span class=\"token keyword\">return<\/span>\n      LineNumberTable<span class=\"token operator\">:<\/span>\n        line <span class=\"token number\">60<\/span><span class=\"token operator\">:<\/span> <span class=\"token number\">0<\/span>\n        line <span class=\"token number\">61<\/span><span class=\"token operator\">:<\/span> <span class=\"token number\">6<\/span>\n      LocalVariableTable<span class=\"token operator\">:<\/span>\n        Start  Length  Slot  Name   Signature\n            <span class=\"token number\">0<\/span>       <span class=\"token number\">7<\/span>     <span class=\"token number\">0<\/span>  <span class=\"token keyword\">this<\/span>   Lcom<span class=\"token operator\">\/<\/span>atguigu<span class=\"token operator\">\/<\/span>java2<span class=\"token operator\">\/<\/span>AnimalTest<span class=\"token punctuation\">;<\/span>\n            <span class=\"token number\">0<\/span>       <span class=\"token number\">7<\/span>     <span class=\"token number\">1<\/span>     h   Lcom<span class=\"token operator\">\/<\/span>atguigu<span class=\"token operator\">\/<\/span>java2<span class=\"token operator\">\/<\/span>Huntable<span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\nSourceFile<span class=\"token operator\">:<\/span> <span class=\"token string\">\"AnimalTest.java\"<\/span>\n<\/code><\/pre>\n<p>invokevirtual \u4f53\u73b0\u4e3a\u665a\u671f\u7ed1\u5b9a<\/p>\n<p>invokeinterface \u4e5f\u4f53\u73b0\u4e3a\u665a\u671f\u7ed1\u5b9a<\/p>\n<p>invokespecial \u4f53\u73b0\u4e3a\u65e9\u671f\u7ed1\u5b9a<\/p>\n<h3><a id=\"_1705\"><\/a>\u591a\u6001\u4e0e\u7ed1\u5b9a<\/h3>\n<ol>\n<li>\u968f\u7740\u9ad8\u7ea7\u8bed\u8a00\u7684\u6a2a\u7a7a\u51fa\u4e16\uff0c\u7c7b\u4f3c\u4e8eJava\u4e00\u6837\u7684\u57fa\u4e8e\u9762\u5411\u5bf9\u8c61\u7684\u7f16\u7a0b\u8bed\u8a00\u5982\u4eca\u8d8a\u6765\u8d8a\u591a\uff0c\u5c3d\u7ba1\u8fd9\u7c7b\u7f16\u7a0b\u8bed\u8a00\u5728\u8bed\u6cd5\u98ce\u683c\u4e0a\u5b58\u5728\u4e00\u5b9a\u7684\u5dee\u522b\uff0c\u4f46\u662f\u5b83\u4eec\u5f7c\u6b64\u4e4b\u95f4\u59cb\u7ec8\u4fdd\u6301\u7740\u4e00\u4e2a\u5171\u6027\uff0c\u90a3\u5c31\u662f\u90fd\u652f\u6301\u5c01\u88c5\u3001\u7ee7\u627f\u548c\u591a\u6001\u7b49\u9762\u5411\u5bf9\u8c61\u7279\u6027\uff0c\u65e2\u7136\u8fd9\u4e00\u7c7b\u7684\u7f16\u7a0b\u8bed\u8a00\u5177\u5907\u591a\u6001\u7279\u6027\uff0c\u90a3\u4e48\u81ea\u7136\u4e5f\u5c31\u5177\u5907\u65e9\u671f\u7ed1\u5b9a\u548c\u665a\u671f\u7ed1\u5b9a\u4e24\u79cd\u7ed1\u5b9a\u65b9\u5f0f\u3002<\/li>\n<li>Java\u4e2d\u4efb\u4f55\u4e00\u4e2a\u666e\u901a\u7684\u65b9\u6cd5\u5176\u5b9e\u90fd\u5177\u5907\u865a\u51fd\u6570\u7684\u7279\u5f81\uff0c\u5b83\u4eec\u76f8\u5f53\u4e8eC\u8bed\u8a00\u4e2d\u7684\u865a\u51fd\u6570\uff08C\u4e2d\u5219\u9700\u8981\u4f7f\u7528\u5173\u952e\u5b57virtual\u6765\u663e\u5f0f\u5b9a\u4e49\uff09\u3002\u5982\u679c\u5728Java\u7a0b\u5e8f\u4e2d\u4e0d\u5e0c\u671b\u67d0\u4e2a\u65b9\u6cd5\u62e5\u6709\u865a\u51fd\u6570\u7684\u7279\u5f81\u65f6\uff0c\u5219\u53ef\u4ee5\u4f7f\u7528\u5173\u952e\u5b57final\u6765\u6807\u8bb0\u8fd9\u4e2a\u65b9\u6cd5\u3002<\/li>\n<\/ol>\n<h4><a id=\"_1712\"><\/a>\u865a\u65b9\u6cd5\u4e0e\u975e\u865a\u65b9\u6cd5<\/h4>\n<p><strong>\u865a\u65b9\u6cd5\u4e0e\u975e\u865a\u65b9\u6cd5\u7684\u533a\u522b<\/strong><\/p>\n<ol>\n<li>\u5982\u679c\u65b9\u6cd5\u5728\u7f16\u8bd1\u671f\u5c31\u786e\u5b9a\u4e86\u5177\u4f53\u7684\u8c03\u7528\u7248\u672c\uff0c\u8fd9\u4e2a\u7248\u672c\u5728\u8fd0\u884c\u65f6\u662f\u4e0d\u53ef\u53d8\u7684\u3002\u8fd9\u6837\u7684\u65b9\u6cd5\u79f0\u4e3a\u975e\u865a\u65b9\u6cd5\u3002<\/li>\n<li>\u9759\u6001\u65b9\u6cd5\u3001\u79c1\u6709\u65b9\u6cd5\u3001final\u65b9\u6cd5\u3001\u5b9e\u4f8b\u6784\u9020\u5668\u3001\u7236\u7c7b\u65b9\u6cd5\u90fd\u662f\u975e\u865a\u65b9\u6cd5\u3002<\/li>\n<li>\u5176\u4ed6\u65b9\u6cd5\u79f0\u4e3a\u865a\u65b9\u6cd5\u3002<\/li>\n<\/ol>\n<p><strong>\u5b50\u7c7b\u5bf9\u8c61\u7684\u591a\u6001\u7684\u4f7f\u7528\u524d\u63d0\uff1a<\/strong><\/p>\n<ol>\n<li>\u7c7b\u7684\u7ee7\u627f\u5173\u7cfb<\/li>\n<li>\u65b9\u6cd5\u7684\u91cd\u5199<\/li>\n<\/ol>\n<p><strong>\u865a\u62df\u673a\u4e2d\u8c03\u7528\u65b9\u6cd5\u7684\u6307\u4ee4<\/strong><\/p>\n<ul>\n<li><strong>\u666e\u901a\u6307\u4ee4\uff1a<\/strong><\/li>\n<\/ul>\n<ol>\n<li>invokestatic\uff1a\u8c03\u7528\u9759\u6001\u65b9\u6cd5\uff0c\u89e3\u6790\u9636\u6bb5\u786e\u5b9a\u552f\u4e00\u65b9\u6cd5\u7248\u672c<\/li>\n<li>invokespecial\uff1a\u8c03\u7528<code>&lt;init&gt;<\/code>\u65b9\u6cd5\u3001\u79c1\u6709\u53ca\u7236\u7c7b\u65b9\u6cd5\uff0c\u89e3\u6790\u9636\u6bb5\u786e\u5b9a\u552f\u4e00\u65b9\u6cd5\u7248\u672c<\/li>\n<li>invokevirtual\uff1a\u8c03\u7528\u6240\u6709\u865a\u65b9\u6cd5<\/li>\n<li>invokeinterface\uff1a\u8c03\u7528\u63a5\u53e3\u65b9\u6cd5<\/li>\n<\/ol>\n<ul>\n<li><strong>\u52a8\u6001\u8c03\u7528\u6307\u4ee4<\/strong><\/li>\n<\/ul>\n<p>invokedynamic\uff1a\u52a8\u6001\u89e3\u6790\u51fa\u9700\u8981\u8c03\u7528\u7684\u65b9\u6cd5\uff0c\u7136\u540e\u6267\u884c<\/p>\n<p>\u524d\u56db\u6761\u6307\u4ee4\u56fa\u5316\u5728\u865a\u62df\u673a\u5185\u90e8\uff0c\u65b9\u6cd5\u7684\u8c03\u7528\u6267\u884c\u4e0d\u53ef\u4eba\u4e3a\u5e72\u9884\u3002\u800cinvokedynamic\u6307\u4ee4\u5219\u652f\u6301\u7531\u7528\u6237\u786e\u5b9a\u65b9\u6cd5\u7248\u672c\u3002\u5176\u4e2dinvokestatic\u6307\u4ee4\u548cinvokespecial\u6307\u4ee4\u8c03\u7528\u7684\u65b9\u6cd5\u79f0\u4e3a\u975e\u865a\u65b9\u6cd5\uff0c\u5176\u4f59\u7684\uff08final\u4fee\u9970\u7684\u9664\u5916\uff09\u79f0\u4e3a\u865a\u65b9\u6cd5\u3002<\/p>\n<h4><a id=\"_1756\"><\/a>\u4e3e\u4f8b<\/h4>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Father<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token function\">Father<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"father\u7684\u6784\u9020\u5668\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">showStatic<\/span><span class=\"token punctuation\">(<\/span>String str<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"father \"<\/span> <span class=\"token operator\">+<\/span> str<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">showFinal<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"father show final\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">showCommon<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"father \u666e\u901a\u65b9\u6cd5\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Son<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">Father<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token function\">Son<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token comment\">\/\/invokespecial<\/span>\n        <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token function\">Son<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> age<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token comment\">\/\/invokespecial<\/span>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token comment\">\/\/\u4e0d\u662f\u91cd\u5199\u7684\u7236\u7c7b\u7684\u9759\u6001\u65b9\u6cd5\uff0c\u56e0\u4e3a\u9759\u6001\u65b9\u6cd5\u4e0d\u80fd\u88ab\u91cd\u5199\uff01<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">showStatic<\/span><span class=\"token punctuation\">(<\/span>String str<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"son \"<\/span> <span class=\"token operator\">+<\/span> str<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">showPrivate<\/span><span class=\"token punctuation\">(<\/span>String str<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"son private\"<\/span> <span class=\"token operator\">+<\/span> str<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">show<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token comment\">\/\/invokestatic<\/span>\n        <span class=\"token function\">showStatic<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"atguigu.com\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token comment\">\/\/invokestatic<\/span>\n        <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">showStatic<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"good!\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token comment\">\/\/invokespecial<\/span>\n        <span class=\"token function\">showPrivate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"hello!\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token comment\">\/\/invokespecial<\/span>\n        <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">showCommon<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        <span class=\"token comment\">\/\/invokevirtual<\/span>\n        <span class=\"token function\">showFinal<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u56e0\u4e3a\u6b64\u65b9\u6cd5\u58f0\u660e\u6709final\uff0c\u4e0d\u80fd\u88ab\u5b50\u7c7b\u91cd\u5199\uff0c\u6240\u4ee5\u4e5f\u8ba4\u4e3a\u6b64\u65b9\u6cd5\u662f\u975e\u865a\u65b9\u6cd5\u3002<\/span>\n        <span class=\"token comment\">\/\/\u865a\u65b9\u6cd5\u5982\u4e0b\uff1a<\/span>\n        \n        <span class=\"token comment\">\/*\n        invokevirtual  \u4f60\u6ca1\u6709\u663e\u793a\u7684\u52a0super.\uff0c\u7f16\u8bd1\u5668\u8ba4\u4e3a\u4f60\u53ef\u80fd\u8c03\u7528\u5b50\u7c7b\u7684showCommon(\u5373\u4f7fson\u5b50\u7c7b\u6ca1\u6709\u91cd\u5199\uff0c\u4e5f\t\t  \u4f1a\u8ba4\u4e3a)\uff0c\u6240\u4ee5\u7f16\u8bd1\u671f\u95f4\u786e\u5b9a\u4e0d\u4e0b\u6765\uff0c\u5c31\u662f\u865a\u65b9\u6cd5\u3002\n        *\/<\/span>\n        <span class=\"token function\">showCommon<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token function\">info<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        MethodInterface in <span class=\"token operator\">=<\/span> null<span class=\"token punctuation\">;<\/span>\n        <span class=\"token comment\">\/\/invokeinterface<\/span>\n        in<span class=\"token punctuation\">.<\/span><span class=\"token function\">methodA<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">info<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">display<\/span><span class=\"token punctuation\">(<\/span>Father f<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        f<span class=\"token punctuation\">.<\/span><span class=\"token function\">showCommon<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        Son so <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Son<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        so<span class=\"token punctuation\">.<\/span><span class=\"token function\">show<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">interface<\/span> <span class=\"token class-name\">MethodInterface<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">void<\/span> <span class=\"token function\">methodA<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>Son \u7c7b\u4e2d show() \u65b9\u6cd5\u7684\u5b57\u8282\u7801\u6307\u4ee4\u5982\u4e0b<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/9d4e3026425cf7f4047e45f6bcf268b5.png#align=left&amp;display=inline&amp;height=295&amp;originHeight=785&amp;originWidth=1343&amp;size=0&amp;status=done&amp;style=none&amp;width=505\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/9d4e3026425cf7f4047e45f6bcf268b5.png#align=left&amp;display=inline&amp;height=295&amp;originHeight=785&amp;originWidth=1343&amp;size=0&amp;status=done&amp;style=none&amp;width=505\" alt=\"\"><\/noscript><\/p>\n<h4><a id=\"_invokedynamic__1849\"><\/a>\u5173\u4e8e invokedynamic \u6307\u4ee4<\/h4>\n<ol>\n<li>JVM\u5b57\u8282\u7801\u6307\u4ee4\u96c6\u4e00\u76f4\u6bd4\u8f83\u7a33\u5b9a\uff0c\u4e00\u76f4\u5230Java7\u4e2d\u624d\u589e\u52a0\u4e86\u4e00\u4e2ainvokedynamic\u6307\u4ee4\uff0c\u8fd9\u662fJava\u4e3a\u4e86\u5b9e\u73b0\u3010\u52a8\u6001\u7c7b\u578b\u8bed\u8a00\u3011\u652f\u6301\u800c\u505a\u7684\u4e00\u79cd\u6539\u8fdb\u3002<\/li>\n<li>\u4f46\u662f\u5728Java7\u4e2d\u5e76\u6ca1\u6709\u63d0\u4f9b\u76f4\u63a5\u751f\u6210invokedynamic\u6307\u4ee4\u7684\u65b9\u6cd5\uff0c\u9700\u8981\u501f\u52a9ASM\u8fd9\u79cd\u5e95\u5c42\u5b57\u8282\u7801\u5de5\u5177\u6765\u4ea7\u751finvokedynamic\u6307\u4ee4\u3002\u76f4\u5230Java8\u7684Lambda\u8868\u8fbe\u5f0f\u7684\u51fa\u73b0\uff0cinvokedynamic\u6307\u4ee4\u7684\u751f\u6210\uff0c\u5728Java\u4e2d\u624d\u6709\u4e86\u76f4\u63a5\u7684\u751f\u6210\u65b9\u5f0f\u3002<\/li>\n<li>Java7\u4e2d\u589e\u52a0\u7684\u52a8\u6001\u8bed\u8a00\u7c7b\u578b\u652f\u6301\u7684\u672c\u8d28\u662f\u5bf9Java\u865a\u62df\u673a\u89c4\u8303\u7684\u4fee\u6539\uff0c\u800c\u4e0d\u662f\u5bf9Java\u8bed\u8a00\u89c4\u5219\u7684\u4fee\u6539\uff0c\u8fd9\u4e00\u5757\u76f8\u5bf9\u6765\u8bb2\u6bd4\u8f83\u590d\u6742\uff0c\u589e\u52a0\u4e86\u865a\u62df\u673a\u4e2d\u7684\u65b9\u6cd5\u8c03\u7528\uff0c\u6700\u76f4\u63a5\u7684\u53d7\u76ca\u8005\u5c31\u662f\u8fd0\u884c\u5728Java\u5e73\u53f0\u7684\u52a8\u6001\u8bed\u8a00\u7684\u7f16\u8bd1\u5668\u3002<\/li>\n<\/ol>\n<pre><code class=\"prism language-java\"><span class=\"token annotation punctuation\">@FunctionalInterface<\/span>\n<span class=\"token keyword\">interface<\/span> <span class=\"token class-name\">Func<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">boolean<\/span> <span class=\"token function\">func<\/span><span class=\"token punctuation\">(<\/span>String str<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Lambda<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">lambda<\/span><span class=\"token punctuation\">(<\/span>Func func<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        Lambda lambda <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Lambda<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        Func func <span class=\"token operator\">=<\/span> s <span class=\"token operator\">-<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token keyword\">return<\/span> <span class=\"token boolean\">true<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n\n        lambda<span class=\"token punctuation\">.<\/span><span class=\"token function\">lambda<\/span><span class=\"token punctuation\">(<\/span>func<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        lambda<span class=\"token punctuation\">.<\/span><span class=\"token function\">lambda<\/span><span class=\"token punctuation\">(<\/span>s <span class=\"token operator\">-<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token keyword\">return<\/span> <span class=\"token boolean\">true<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/86647b5f69fa795d59fa15fd03228c43.png#align=left&amp;display=inline&amp;height=338&amp;originHeight=722&amp;originWidth=1200&amp;size=0&amp;status=done&amp;style=none&amp;width=562\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/86647b5f69fa795d59fa15fd03228c43.png#align=left&amp;display=inline&amp;height=338&amp;originHeight=722&amp;originWidth=1200&amp;size=0&amp;status=done&amp;style=none&amp;width=562\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"_1889\"><\/a>\u52a8\u6001\u8bed\u8a00\u548c\u9759\u6001\u8bed\u8a00<\/h3>\n<ol>\n<li>\u52a8\u6001\u7c7b\u578b\u8bed\u8a00\u548c\u9759\u6001\u7c7b\u578b\u8bed\u8a00\u4e24\u8005\u7684\u533a\u522b\u5c31\u5728\u4e8e<strong>\u5bf9\u7c7b\u578b\u7684\u68c0\u67e5\u662f\u5728\u7f16\u8bd1\u671f\u8fd8\u662f\u5728\u8fd0\u884c\u671f<\/strong>\uff0c\u6ee1\u8db3\u524d\u8005\u5c31\u662f\u9759\u6001\u7c7b\u578b\u8bed\u8a00\uff0c\u53cd\u4e4b\u662f\u52a8\u6001\u7c7b\u578b\u8bed\u8a00\u3002<\/li>\n<li>\u8bf4\u7684\u518d\u76f4\u767d\u4e00\u70b9\u5c31\u662f\uff0c\u9759\u6001\u7c7b\u578b\u8bed\u8a00\u662f\u5224\u65ad\u53d8\u91cf\u81ea\u8eab\u7684\u7c7b\u578b\u4fe1\u606f\uff1b\u52a8\u6001\u7c7b\u578b\u8bed\u8a00\u662f\u5224\u65ad\u53d8\u91cf\u503c\u7684\u7c7b\u578b\u4fe1\u606f\uff0c\u53d8\u91cf\u6ca1\u6709\u7c7b\u578b\u4fe1\u606f\uff0c\u53d8\u91cf\u503c\u624d\u6709\u7c7b\u578b\u4fe1\u606f\uff0c\u8fd9\u662f\u52a8\u6001\u8bed\u8a00\u7684\u4e00\u4e2a\u91cd\u8981\u7279\u5f81\u3002<\/li>\n<\/ol>\n<p>Java\uff1aString info = \u201cmogu blog\u201d; (Java\u662f\u9759\u6001\u7c7b\u578b\u8bed\u8a00\u7684\uff0c\u4f1a\u5148\u7f16\u8bd1\u5c31\u8fdb\u884c\u7c7b\u578b\u68c0\u67e5)<br \/> JS\uff1avar name = \u201cshkstart\u201d; var name = 10; \uff08\u8fd0\u884c\u65f6\u624d\u8fdb\u884c\u68c0\u67e5\uff09<\/p>\n<pre><code>Python: info = 130.5 (\u8fd0\u884c\u65f6\u624d\u68c0\u67e5)\n<\/code><\/pre>\n<h3><a id=\"Java_1905\"><\/a>Java\u8bed\u8a00\u4e2d\u65b9\u6cd5\u91cd\u5199\u7684\u672c\u8d28<\/h3>\n<ol>\n<li>\u627e\u5230\u64cd\u4f5c\u6570\u6808\u9876\u7684\u7b2c\u4e00\u4e2a\u5143\u7d20\u6240\u6267\u884c\u7684\u5bf9\u8c61\u7684\u5b9e\u9645\u7c7b\u578b\uff0c\u8bb0\u4f5cC\u3002<\/li>\n<li>\u5982\u679c\u5728\u7c7b\u578bC\u4e2d\u627e\u5230\u4e0e\u5e38\u91cf\u4e2d\u7684\u63cf\u8ff0\u7b26\u5408\u7b80\u5355\u540d\u79f0\u90fd\u76f8\u7b26\u7684\u65b9\u6cd5\uff0c\u5219\u8fdb\u884c\u8bbf\u95ee\u6743\u9650\u6821\u9a8c\u3002\n<ul>\n<li>\u5982\u679c\u901a\u8fc7\u5219\u8fd4\u56de\u8fd9\u4e2a\u65b9\u6cd5\u7684\u76f4\u63a5\u5f15\u7528\uff0c\u67e5\u627e\u8fc7\u7a0b\u7ed3\u675f<\/li>\n<li>\u5982\u679c\u4e0d\u901a\u8fc7\uff0c\u5219\u8fd4\u56dejava.lang.IllegalAccessError \u5f02\u5e38<\/li>\n<\/ul>\n<\/li>\n<li>\u5426\u5219\uff0c\u6309\u7167\u7ee7\u627f\u5173\u7cfb\u4ece\u4e0b\u5f80\u4e0a\u4f9d\u6b21\u5bf9C\u7684\u5404\u4e2a\u7236\u7c7b\u8fdb\u884c\u7b2c2\u6b65\u7684\u641c\u7d22\u548c\u9a8c\u8bc1\u8fc7\u7a0b\u3002<\/li>\n<li>\u5982\u679c\u59cb\u7ec8\u6ca1\u6709\u627e\u5230\u5408\u9002\u7684\u65b9\u6cd5\uff0c\u5219\u629b\u51fajava.lang.AbstractMethodError\u5f02\u5e38\u3002<\/li>\n<\/ol>\n<blockquote>\n<p>\u4e0a\u9762\u8fd9\u4e2a\u8fc7\u7a0b\u79f0\u4e3a<strong>\u52a8\u6001\u5206\u6d3e<\/strong><\/p>\n<\/blockquote>\n<p><strong>IllegalAccessError\u4ecb\u7ecd<\/strong><\/p>\n<ol>\n<li>\u7a0b\u5e8f\u8bd5\u56fe\u8bbf\u95ee\u6216\u4fee\u6539\u4e00\u4e2a\u5c5e\u6027\u6216\u8c03\u7528\u4e00\u4e2a\u65b9\u6cd5\uff0c\u8fd9\u4e2a\u5c5e\u6027\u6216\u65b9\u6cd5\uff0c\u4f60\u6ca1\u6709\u6743\u9650\u8bbf\u95ee\u3002\u4e00\u822c\u7684\uff0c\u8fd9\u4e2a\u4f1a\u5f15\u8d77\u7f16\u8bd1\u5668\u5f02\u5e38\u3002\u8fd9\u4e2a\u9519\u8bef\u5982\u679c\u53d1\u751f\u5728\u8fd0\u884c\u65f6\uff0c\u5c31\u8bf4\u660e\u4e00\u4e2a\u7c7b\u53d1\u751f\u4e86\u4e0d\u517c\u5bb9\u7684\u6539\u53d8\u3002<\/li>\n<li>\u6bd4\u5982\uff0c\u4f60\u628a\u5e94\u8be5\u6709\u7684jar\u5305\u653e\u4ece\u5de5\u7a0b\u4e2d\u62ff\u8d70\u4e86\uff0c\u6216\u8005Maven\u4e2d\u5b58\u5728jar\u5305\u51b2\u7a81<\/li>\n<\/ol>\n<h3><a id=\"_1929\"><\/a>\u865a\u65b9\u6cd5\u8868<\/h3>\n<ol>\n<li>\u5728\u9762\u5411\u5bf9\u8c61\u7684\u7f16\u7a0b\u4e2d\uff0c\u4f1a\u5f88\u9891\u7e41\u7684\u4f7f\u7528\u5230<strong>\u52a8\u6001\u5206\u6d3e<\/strong>\uff0c\u5982\u679c\u5728\u6bcf\u6b21\u52a8\u6001\u5206\u6d3e\u7684\u8fc7\u7a0b\u4e2d\u90fd\u8981\u91cd\u65b0\u5728\u7c7b\u7684\u65b9\u6cd5\u5143\u6570\u636e\u4e2d\u641c\u7d22\u5408\u9002\u7684\u76ee\u6807\u7684\u8bdd\u5c31\u53ef\u80fd\u5f71\u54cd\u5230\u6267\u884c\u6548\u7387\u3002\u56e0\u6b64\uff0c\u4e3a\u4e86\u63d0\u9ad8\u6027\u80fd\uff0c<strong>JVM\u91c7\u7528\u5728\u7c7b\u7684\u65b9\u6cd5\u533a\u5efa\u7acb\u4e00\u4e2a\u865a\u65b9\u6cd5\u8868\uff08virtual method table\uff09\u6765\u5b9e\u73b0<\/strong>\uff0c\u975e\u865a\u65b9\u6cd5\u4e0d\u4f1a\u51fa\u73b0\u5728\u8868\u4e2d\u3002\u4f7f\u7528\u7d22\u5f15\u8868\u6765\u4ee3\u66ff\u67e5\u627e\u3002\u3010\u4e0a\u9762\u52a8\u6001\u5206\u6d3e\u7684\u8fc7\u7a0b\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u5982\u679c\u5b50\u7c7b\u627e\u4e0d\u5230\uff0c\u8fd8\u8981\u4ece\u4e0b\u5f80\u4e0a\u627e\u5176\u7236\u7c7b\uff0c\u975e\u5e38\u8017\u65f6\u3011<\/li>\n<li>\u6bcf\u4e2a\u7c7b\u4e2d\u90fd\u6709\u4e00\u4e2a\u865a\u65b9\u6cd5\u8868\uff0c\u8868\u4e2d\u5b58\u653e\u7740\u5404\u4e2a\u65b9\u6cd5\u7684\u5b9e\u9645\u5165\u53e3\u3002<\/li>\n<li>\u865a\u65b9\u6cd5\u8868\u662f\u4ec0\u4e48\u65f6\u5019\u88ab\u521b\u5efa\u7684\u5462\uff1f\u865a\u65b9\u6cd5\u8868\u4f1a\u5728\u7c7b\u52a0\u8f7d\u7684\u94fe\u63a5\u9636\u6bb5\u88ab\u521b\u5efa\u5e76\u5f00\u59cb\u521d\u59cb\u5316\uff0c\u7c7b\u7684\u53d8\u91cf\u521d\u59cb\u503c\u51c6\u5907\u5b8c\u6210\u4e4b\u540e\uff0cJVM\u4f1a\u628a\u8be5\u7c7b\u7684\u865a\u65b9\u6cd5\u8868\u4e5f\u521d\u59cb\u5316\u5b8c\u6bd5\u3002<\/li>\n<\/ol>\n<p><strong>\u4f8b\u5b501<\/strong><\/p>\n<p>\u5982\u56fe\u6240\u793a\uff1a\u5982\u679c\u7c7b\u4e2d\u91cd\u5199\u4e86\u65b9\u6cd5\uff0c\u90a3\u4e48\u8c03\u7528\u7684\u65f6\u5019\uff0c\u5c31\u4f1a\u76f4\u63a5\u5728\u8be5\u7c7b\u7684\u865a\u65b9\u6cd5\u8868\u4e2d\u67e5\u627e<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/71771c61ce1ec32cc41f3adb84b136eb.png#align=left&amp;display=inline&amp;height=292&amp;originHeight=646&amp;originWidth=906&amp;size=0&amp;status=done&amp;style=none&amp;width=410\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/71771c61ce1ec32cc41f3adb84b136eb.png#align=left&amp;display=inline&amp;height=292&amp;originHeight=646&amp;originWidth=906&amp;size=0&amp;status=done&amp;style=none&amp;width=410\" alt=\"\"><\/noscript><\/p>\n<p>1\u3001\u6bd4\u5982\u8bf4son\u5728\u8c03\u7528toString\u7684\u65f6\u5019\uff0cSon\u6ca1\u6709\u91cd\u5199\u8fc7\uff0cSon\u7684\u7236\u7c7bFather\u4e5f\u6ca1\u6709\u91cd\u5199\u8fc7\uff0c\u90a3\u5c31\u76f4\u63a5\u8c03\u7528Object\u7c7b\u7684toString\u3002\u90a3\u4e48\u5c31\u76f4\u63a5\u5728\u865a\u65b9\u6cd5\u8868\u91cc\u6307\u660etoString\u76f4\u63a5\u6307\u5411Object\u7c7b\u3002<\/p>\n<p>2\u3001\u4e0b\u6b21Son\u5bf9\u8c61\u518d\u8c03\u7528toString\u5c31\u76f4\u63a5\u53bb\u627eObject\uff0c\u4e0d\u7528\u5148\u627eSon\u2013&gt;\u518d\u627eFather\u2013&gt;\u6700\u540e\u624d\u5230Object\u7684\u8fd9\u6837\u7684\u4e00\u4e2a\u8fc7\u7a0b\u3002<\/p>\n<p><strong>\u4f8b\u5b502<\/strong><\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/0fb54b807ee88785b2645e0cd8525277.png#align=left&amp;display=inline&amp;height=514&amp;originHeight=1060&amp;originWidth=1433&amp;size=0&amp;status=done&amp;style=none&amp;width=695\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/0fb54b807ee88785b2645e0cd8525277.png#align=left&amp;display=inline&amp;height=514&amp;originHeight=1060&amp;originWidth=1433&amp;size=0&amp;status=done&amp;style=none&amp;width=695\" alt=\"\"><\/noscript><\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f9007b01e52c253d2f2c34227f5442d4.png#align=left&amp;display=inline&amp;height=293&amp;originHeight=869&amp;originWidth=1901&amp;size=0&amp;status=done&amp;style=none&amp;width=640\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f9007b01e52c253d2f2c34227f5442d4.png#align=left&amp;display=inline&amp;height=293&amp;originHeight=869&amp;originWidth=1901&amp;size=0&amp;status=done&amp;style=none&amp;width=640\" alt=\"\"><\/noscript><\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/e6a66411ffe8876e8ed23794b0e2f285.png#align=left&amp;display=inline&amp;height=303&amp;originHeight=844&amp;originWidth=1876&amp;size=0&amp;status=done&amp;style=none&amp;width=674\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/e6a66411ffe8876e8ed23794b0e2f285.png#align=left&amp;display=inline&amp;height=303&amp;originHeight=844&amp;originWidth=1876&amp;size=0&amp;status=done&amp;style=none&amp;width=674\" alt=\"\"><\/noscript><\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/1bddcb112dbc08e28bb003ca3c1ff2e1.png#align=left&amp;display=inline&amp;height=333&amp;originHeight=1012&amp;originWidth=1914&amp;size=0&amp;status=done&amp;style=none&amp;width=630\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/1bddcb112dbc08e28bb003ca3c1ff2e1.png#align=left&amp;display=inline&amp;height=333&amp;originHeight=1012&amp;originWidth=1914&amp;size=0&amp;status=done&amp;style=none&amp;width=630\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"_1968\"><\/a>\u65b9\u6cd5\u8fd4\u56de\u5730\u5740<\/h2>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/14a121df0d19b0cf60189b0abe2b2976.png#align=left&amp;display=inline&amp;height=331&amp;originHeight=457&amp;originWidth=517&amp;size=0&amp;status=done&amp;style=none&amp;width=375\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/14a121df0d19b0cf60189b0abe2b2976.png#align=left&amp;display=inline&amp;height=331&amp;originHeight=457&amp;originWidth=517&amp;size=0&amp;status=done&amp;style=none&amp;width=375\" alt=\"\"><\/noscript><\/p>\n<blockquote>\n<p>\u5728\u4e00\u4e9b\u5e16\u5b50\u91cc\uff0c\u65b9\u6cd5\u8fd4\u56de\u5730\u5740\u3001\u52a8\u6001\u94fe\u63a5\u3001\u4e00\u4e9b\u9644\u52a0\u4fe1\u606f \u4e5f\u53eb\u505a\u5e27\u6570\u636e\u533a<\/p>\n<\/blockquote>\n<ol>\n<li>\u5b58\u653e\u8c03\u7528\u8be5\u65b9\u6cd5\u7684pc\u5bc4\u5b58\u5668\u7684\u503c\u3002\u4e00\u4e2a\u65b9\u6cd5\u7684\u7ed3\u675f\uff0c\u6709\u4e24\u79cd\u65b9\u5f0f\uff1a\n<ul>\n<li>\u6b63\u5e38\u6267\u884c\u5b8c\u6210<\/li>\n<li>\u51fa\u73b0\u672a\u5904\u7406\u7684\u5f02\u5e38\uff0c\u975e\u6b63\u5e38\u9000\u51fa<\/li>\n<\/ul>\n<\/li>\n<li>\u65e0\u8bba\u901a\u8fc7\u54ea\u79cd\u65b9\u5f0f\u9000\u51fa\uff0c\u5728\u65b9\u6cd5\u9000\u51fa\u540e\u90fd\u8fd4\u56de\u5230\u8be5\u65b9\u6cd5\u88ab\u8c03\u7528\u7684\u4f4d\u7f6e\u3002\u65b9\u6cd5\u6b63\u5e38\u9000\u51fa\u65f6\uff0c<strong>\u8c03\u7528\u8005\u7684pc\u8ba1\u6570\u5668\u7684\u503c\u4f5c\u4e3a\u8fd4\u56de\u5730\u5740\uff0c\u5373\u8c03\u7528\u8be5\u65b9\u6cd5\u7684\u6307\u4ee4\u7684\u4e0b\u4e00\u6761\u6307\u4ee4\u7684\u5730\u5740<\/strong>\u3002\u800c\u901a\u8fc7\u5f02\u5e38\u9000\u51fa\u7684\uff0c\u8fd4\u56de\u5730\u5740\u662f\u8981\u901a\u8fc7\u5f02\u5e38\u8868\u6765\u786e\u5b9a\uff0c\u6808\u5e27\u4e2d\u4e00\u822c\u4e0d\u4f1a\u4fdd\u5b58\u8fd9\u90e8\u5206\u4fe1\u606f\u3002<\/li>\n<li>\u672c\u8d28\u4e0a\uff0c\u65b9\u6cd5\u7684\u9000\u51fa\u5c31\u662f\u5f53\u524d\u6808\u5e27\u51fa\u6808\u7684\u8fc7\u7a0b\u3002\u6b64\u65f6\uff0c\u9700\u8981\u6062\u590d\u4e0a\u5c42\u65b9\u6cd5\u7684\u5c40\u90e8\u53d8\u91cf\u8868\u3001\u64cd\u4f5c\u6570\u6808\u3001\u5c06\u8fd4\u56de\u503c\u538b\u5165\u8c03\u7528\u8005\u6808\u5e27\u7684\u64cd\u4f5c\u6570\u6808\u3001\u8bbe\u7f6ePC\u5bc4\u5b58\u5668\u503c\u7b49\uff0c\u8ba9\u8c03\u7528\u8005\u65b9\u6cd5\u7ee7\u7eed\u6267\u884c\u4e0b\u53bb\u3002<\/li>\n<li>\u6b63\u5e38\u5b8c\u6210\u51fa\u53e3\u548c\u5f02\u5e38\u5b8c\u6210\u51fa\u53e3\u7684\u533a\u522b\u5728\u4e8e\uff1a\u901a\u8fc7\u5f02\u5e38\u5b8c\u6210\u51fa\u53e3\u9000\u51fa\u7684\u4e0d\u4f1a\u7ed9\u4ed6\u7684\u4e0a\u5c42\u8c03\u7528\u8005\u4ea7\u751f\u4efb\u4f55\u7684\u8fd4\u56de\u503c\u3002<\/li>\n<\/ol>\n<p><strong>\u65b9\u6cd5\u9000\u51fa\u7684\u4e24\u79cd\u65b9\u5f0f<\/strong><\/p>\n<p>\u5f53\u4e00\u4e2a\u65b9\u6cd5\u5f00\u59cb\u6267\u884c\u540e\uff0c\u53ea\u6709\u4e24\u79cd\u65b9\u5f0f\u53ef\u4ee5\u9000\u51fa\u8fd9\u4e2a\u65b9\u6cd5\uff0c<\/p>\n<p><strong>\u6b63\u5e38\u9000\u51fa\uff1a<\/strong><\/p>\n<ol>\n<li>\u6267\u884c\u5f15\u64ce\u9047\u5230\u4efb\u610f\u4e00\u4e2a\u65b9\u6cd5\u8fd4\u56de\u7684\u5b57\u8282\u7801\u6307\u4ee4\uff08return\uff09\uff0c\u4f1a\u6709\u8fd4\u56de\u503c\u4f20\u9012\u7ed9\u4e0a\u5c42\u7684\u65b9\u6cd5\u8c03\u7528\u8005\uff0c\u7b80\u79f0<strong>\u6b63\u5e38\u5b8c\u6210\u51fa\u53e3<\/strong>\uff1b<\/li>\n<li>\u4e00\u4e2a\u65b9\u6cd5\u5728\u6b63\u5e38\u8c03\u7528\u5b8c\u6210\u4e4b\u540e\uff0c\u7a76\u7adf\u9700\u8981\u4f7f\u7528\u54ea\u4e00\u4e2a\u8fd4\u56de\u6307\u4ee4\uff0c\u8fd8\u9700\u8981\u6839\u636e\u65b9\u6cd5\u8fd4\u56de\u503c\u7684\u5b9e\u9645\u6570\u636e\u7c7b\u578b\u800c\u5b9a\u3002<\/li>\n<li>\u5728\u5b57\u8282\u7801\u6307\u4ee4\u4e2d\uff0c\u8fd4\u56de\u6307\u4ee4\u5305\u542b\uff1a\n<ul>\n<li>ireturn\uff1a\u5f53\u8fd4\u56de\u503c\u662fboolean\uff0cbyte\uff0cchar\uff0cshort\u548cint\u7c7b\u578b\u65f6\u4f7f\u7528<\/li>\n<li>lreturn\uff1aLong\u7c7b\u578b<\/li>\n<li>freturn\uff1aFloat\u7c7b\u578b<\/li>\n<li>dreturn\uff1aDouble\u7c7b\u578b<\/li>\n<li>areturn\uff1a\u5f15\u7528\u7c7b\u578b<\/li>\n<li>return\uff1a\u8fd4\u56de\u503c\u7c7b\u578b\u4e3avoid\u7684\u65b9\u6cd5\u3001\u5b9e\u4f8b\u521d\u59cb\u5316\u65b9\u6cd5\u3001\u7c7b\u548c\u63a5\u53e3\u7684\u521d\u59cb\u5316\u65b9\u6cd5<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><strong>\u5f02\u5e38\u9000\u51fa\uff1a<\/strong><\/p>\n<ol>\n<li>\u5728\u65b9\u6cd5\u6267\u884c\u8fc7\u7a0b\u4e2d\u9047\u5230\u5f02\u5e38\uff08Exception\uff09\uff0c\u5e76\u4e14\u8fd9\u4e2a\u5f02\u5e38\u6ca1\u6709\u5728\u65b9\u6cd5\u5185\u8fdb\u884c\u5904\u7406\uff0c\u4e5f\u5c31\u662f\u53ea\u8981\u5728\u672c\u65b9\u6cd5\u7684\u5f02\u5e38\u8868\u4e2d\u6ca1\u6709\u641c\u7d22\u5230\u5339\u914d\u7684\u5f02\u5e38\u5904\u7406\u5668\uff0c\u5c31\u4f1a\u5bfc\u81f4\u65b9\u6cd5\u9000\u51fa\uff0c\u7b80\u79f0<strong>\u5f02\u5e38\u5b8c\u6210\u51fa\u53e3<\/strong>\u3002<\/li>\n<li>\u65b9\u6cd5\u6267\u884c\u8fc7\u7a0b\u4e2d\uff0c\u629b\u51fa\u5f02\u5e38\u65f6\u7684\u5f02\u5e38\u5904\u7406\uff0c\u5b58\u50a8\u5728\u4e00\u4e2a\u5f02\u5e38\u5904\u7406\u8868\uff0c\u65b9\u4fbf\u5728\u53d1\u751f\u5f02\u5e38\u7684\u65f6\u5019\u627e\u5230\u5904\u7406\u5f02\u5e38\u7684\u4ee3\u7801<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/98d09ccd29f7ba8260d752a913bbf88d.png#align=left&amp;display=inline&amp;height=155&amp;originHeight=155&amp;originWidth=1059&amp;size=0&amp;status=done&amp;style=none&amp;width=1059\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/98d09ccd29f7ba8260d752a913bbf88d.png#align=left&amp;display=inline&amp;height=155&amp;originHeight=155&amp;originWidth=1059&amp;size=0&amp;status=done&amp;style=none&amp;width=1059\" alt=\"\"><\/noscript><\/p>\n<p>\u5f02\u5e38\u5904\u7406\u8868\uff1a<\/p>\n<ul>\n<li>\u53cd\u7f16\u8bd1\u5b57\u8282\u7801\u6587\u4ef6\uff0c\u53ef\u5f97\u5230 Exception table<\/li>\n<li>from \uff1a\u5b57\u8282\u7801\u6307\u4ee4\u8d77\u59cb\u5730\u5740<\/li>\n<li>to \uff1a\u5b57\u8282\u7801\u6307\u4ee4\u7ed3\u675f\u5730\u5740<\/li>\n<li>target \uff1a\u51fa\u73b0\u5f02\u5e38\u8df3\u8f6c\u81f3\u5730\u5740\u4e3a 11 \u7684\u6307\u4ee4\u6267\u884c<\/li>\n<li>type \uff1a\u6355\u83b7\u5f02\u5e38\u7684\u7c7b\u578b<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/2f0c6888e0000dd91d4765ce910150bc.png#align=left&amp;display=inline&amp;height=678&amp;originHeight=678&amp;originWidth=1378&amp;size=0&amp;status=done&amp;style=none&amp;width=1378\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/2f0c6888e0000dd91d4765ce910150bc.png#align=left&amp;display=inline&amp;height=678&amp;originHeight=678&amp;originWidth=1378&amp;size=0&amp;status=done&amp;style=none&amp;width=1378\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"_2033\"><\/a>\u4e00\u4e9b\u9644\u52a0\u4fe1\u606f<\/h2>\n<p>\u6808\u5e27\u4e2d\u8fd8\u5141\u8bb8\u643a\u5e26\u4e0eJava\u865a\u62df\u673a\u5b9e\u73b0\u76f8\u5173\u7684\u4e00\u4e9b\u9644\u52a0\u4fe1\u606f\u3002\u4f8b\u5982\uff1a\u5bf9\u7a0b\u5e8f\u8c03\u8bd5\u63d0\u4f9b\u652f\u6301\u7684\u4fe1\u606f\u3002<\/p>\n<h2><a id=\"_2037\"><\/a>\u6808\u7684\u76f8\u5173\u9762\u8bd5\u9898<\/h2>\n<ul>\n<li>\u4e3e\u4f8b\u6808\u6ea2\u51fa\u7684\u60c5\u51b5\uff1f\uff08StackOverflowError\uff09\n<ul>\n<li>\u901a\u8fc7 -Xss\u8bbe\u7f6e\u6808\u7684\u5927\u5c0f<\/li>\n<\/ul>\n<\/li>\n<li>\u8c03\u6574\u6808\u5927\u5c0f\uff0c\u5c31\u80fd\u4fdd\u8bc1\u4e0d\u51fa\u73b0\u6ea2\u51fa\u4e48\uff1f\n<ul>\n<li>\u4e0d\u80fd\u4fdd\u8bc1\u4e0d\u6ea2\u51fa<\/li>\n<\/ul>\n<\/li>\n<li>\u5206\u914d\u7684\u6808\u5185\u5b58\u8d8a\u5927\u8d8a\u597d\u4e48\uff1f\n<ul>\n<li>\u4e0d\u662f\uff0c\u4e00\u5b9a\u65f6\u95f4\u5185\u964d\u4f4e\u4e86OOM\u6982\u7387\uff0c\u4f46\u662f\u4f1a\u6324\u5360\u5176\u5b83\u7684\u7ebf\u7a0b\u7a7a\u95f4\uff0c\u56e0\u4e3a\u6574\u4e2a\u7a7a\u95f4\u662f\u6709\u9650\u7684\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u5783\u573e\u56de\u6536\u662f\u5426\u6d89\u53ca\u5230\u865a\u62df\u673a\u6808\uff1f\n<ul>\n<li>\u4e0d\u4f1a<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u8fd0\u884c\u65f6\u6570\u636e\u533a\uff0c\u662f\u5426\u5b58\u5728Error\u548cGC\uff1f<\/p>\n<table>\n<thead>\n<tr>\n<th>\u8fd0\u884c\u65f6\u6570\u636e\u533a<\/th>\n<th>\u662f\u5426\u5b58\u5728Error<\/th>\n<th>\u662f\u5426\u5b58\u5728GC<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u7a0b\u5e8f\u8ba1\u6570\u5668<\/td>\n<td>\u5426<\/td>\n<td>\u5426<\/td>\n<\/tr>\n<tr>\n<td>\u865a\u62df\u673a\u6808<\/td>\n<td>\u662f<\/td>\n<td>\u5426<\/td>\n<\/tr>\n<tr>\n<td>\u672c\u5730\u65b9\u6cd5\u6808<\/td>\n<td>\u662f<\/td>\n<td>\u5426<\/td>\n<\/tr>\n<tr>\n<td>\u65b9\u6cd5\u533a<\/td>\n<td>\u662f\uff08OOM\uff09<\/td>\n<td>\u662f<\/td>\n<\/tr>\n<tr>\n<td>\u5806<\/td>\n<td>\u662f<\/td>\n<td>\u662f<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><a id=\"_2063\"><\/a><\/h3>\n<h3><a id=\"_2064\"><\/a>\u65b9\u6cd5\u4e2d\u5b9a\u4e49\u7684\u5c40\u90e8\u53d8\u91cf\u662f\u5426\u7ebf\u7a0b\u5b89\u5168\uff1f<\/h3>\n<p>\u5177\u4f53\u95ee\u9898\u5177\u4f53\u5206\u6790<\/p>\n<ol>\n<li>\u5982\u679c\u53ea\u6709\u4e00\u4e2a\u7ebf\u7a0b\u624d\u53ef\u4ee5\u64cd\u4f5c\u6b64\u6570\u636e\uff0c\u5219\u5fc5\u662f\u7ebf\u7a0b\u5b89\u5168\u7684\u3002<\/li>\n<li>\u5982\u679c\u6709\u591a\u4e2a\u7ebf\u7a0b\u64cd\u4f5c\u6b64\u6570\u636e\uff0c\u5219\u6b64\u6570\u636e\u662f\u5171\u4eab\u6570\u636e\u3002\u5982\u679c\u4e0d\u8003\u8651\u540c\u6b65\u673a\u5236\u7684\u8bdd\uff0c\u4f1a\u5b58\u5728\u7ebf\u7a0b\u5b89\u5168\u95ee\u9898\u3002<\/li>\n<\/ol>\n<p><strong>\u5177\u4f53\u95ee\u9898\u5177\u4f53\u5206\u6790\uff1a<\/strong><\/p>\n<ul>\n<li>\u5982\u679c\u5bf9\u8c61\u662f\u5728\u5185\u90e8\u4ea7\u751f\uff0c\u5e76\u5728\u5185\u90e8\u6d88\u4ea1\uff0c\u6ca1\u6709\u8fd4\u56de\u5230\u5916\u90e8\uff0c\u90a3\u4e48\u5b83\u5c31\u662f\u7ebf\u7a0b\u5b89\u5168\u7684\uff0c\u53cd\u4e4b\u5219\u662f\u7ebf\u7a0b\u4e0d\u5b89\u5168\u7684\u3002<\/li>\n<\/ul>\n<pre><code class=\"prism language-java\"><span class=\"token comment\">\/**\n * \u9762\u8bd5\u9898\uff1a\n * \u65b9\u6cd5\u4e2d\u5b9a\u4e49\u7684\u5c40\u90e8\u53d8\u91cf\u662f\u5426\u7ebf\u7a0b\u5b89\u5168\uff1f\u5177\u4f53\u60c5\u51b5\u5177\u4f53\u5206\u6790\n *\n *   \u4f55\u4e3a\u7ebf\u7a0b\u5b89\u5168\uff1f\n *      \u5982\u679c\u53ea\u6709\u4e00\u4e2a\u7ebf\u7a0b\u624d\u53ef\u4ee5\u64cd\u4f5c\u6b64\u6570\u636e\uff0c\u5219\u5fc5\u662f\u7ebf\u7a0b\u5b89\u5168\u7684\u3002\n *      \u5982\u679c\u6709\u591a\u4e2a\u7ebf\u7a0b\u64cd\u4f5c\u6b64\u6570\u636e\uff0c\u5219\u6b64\u6570\u636e\u662f\u5171\u4eab\u6570\u636e\u3002\u5982\u679c\u4e0d\u8003\u8651\u540c\u6b65\u673a\u5236\u7684\u8bdd\uff0c\u4f1a\u5b58\u5728\u7ebf\u7a0b\u5b89\u5168\u95ee\u9898\u3002\n *\/<\/span>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">StringBuilderTest<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n\n    <span class=\"token keyword\">int<\/span> num <span class=\"token operator\">=<\/span> <span class=\"token number\">10<\/span><span class=\"token punctuation\">;<\/span>\n\n    <span class=\"token comment\">\/\/s1\u7684\u58f0\u660e\u65b9\u5f0f\u662f\u7ebf\u7a0b\u5b89\u5168\u7684\uff08\u53ea\u5728\u65b9\u6cd5\u5185\u90e8\u7528\u4e86\uff09<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">method1<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token comment\">\/\/StringBuilder:\u7ebf\u7a0b\u4e0d\u5b89\u5168<\/span>\n        StringBuilder s1 <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">StringBuilder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        s1<span class=\"token punctuation\">.<\/span><span class=\"token function\">append<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"a\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        s1<span class=\"token punctuation\">.<\/span><span class=\"token function\">append<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"b\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token comment\">\/\/...<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token comment\">\/\/sBuilder\u7684\u64cd\u4f5c\u8fc7\u7a0b\uff1a\u662f\u7ebf\u7a0b\u4e0d\u5b89\u5168\u7684\uff08\u4f5c\u4e3a\u53c2\u6570\u4f20\u8fdb\u6765\uff0c\u53ef\u80fd\u88ab\u5176\u5b83\u7ebf\u7a0b\u64cd\u4f5c\uff09<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">method2<\/span><span class=\"token punctuation\">(<\/span>StringBuilder sBuilder<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        sBuilder<span class=\"token punctuation\">.<\/span><span class=\"token function\">append<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"a\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        sBuilder<span class=\"token punctuation\">.<\/span><span class=\"token function\">append<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"b\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token comment\">\/\/...<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token comment\">\/\/s1\u7684\u64cd\u4f5c\uff1a\u662f\u7ebf\u7a0b\u4e0d\u5b89\u5168\u7684\uff08\u6709\u8fd4\u56de\u503c\uff0c\u53ef\u80fd\u88ab\u5176\u5b83\u7ebf\u7a0b\u64cd\u4f5c\uff09<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> StringBuilder <span class=\"token function\">method3<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        StringBuilder s1 <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">StringBuilder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        s1<span class=\"token punctuation\">.<\/span><span class=\"token function\">append<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"a\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        s1<span class=\"token punctuation\">.<\/span><span class=\"token function\">append<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"b\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">return<\/span> s1<span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token comment\">\/\/s1\u7684\u64cd\u4f5c\uff1a\u662f\u7ebf\u7a0b\u5b89\u5168\u7684\uff08s1\u81ea\u5df1\u6d88\u4ea1\u4e86\uff0c\u6700\u540e\u8fd4\u56de\u7684\u667a\u5546s1.toString\u7684\u4e00\u4e2a\u65b0\u5bf9\u8c61\uff09<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> String <span class=\"token function\">method4<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        StringBuilder s1 <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">StringBuilder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        s1<span class=\"token punctuation\">.<\/span><span class=\"token function\">append<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"a\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        s1<span class=\"token punctuation\">.<\/span><span class=\"token function\">append<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"b\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">return<\/span> s1<span class=\"token punctuation\">.<\/span><span class=\"token function\">toString<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        StringBuilder s <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">StringBuilder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n\n        <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            s<span class=\"token punctuation\">.<\/span><span class=\"token function\">append<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"a\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            s<span class=\"token punctuation\">.<\/span><span class=\"token function\">append<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"b\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">start<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        <span class=\"token function\">method2<\/span><span class=\"token punctuation\">(<\/span>s<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n    <span class=\"token punctuation\">}<\/span>\n\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<h1><a id=\"_2143\"><\/a>\u516d\u3001\u5806<\/h1>\n<h2><a id=\"_2144\"><\/a>\u5806\u7684\u6838\u5fc3\u6982\u8ff0<\/h2>\n<h3><a id=\"_2145\"><\/a>\u5806\u4e0e\u8fdb\u7a0b<\/h3>\n<ol>\n<li>\n<p>\u5806\u9488\u5bf9\u4e00\u4e2aJVM\u8fdb\u7a0b\u6765\u8bf4\u662f\u552f\u4e00\u7684\u3002\u4e5f\u5c31\u662f<strong>\u4e00\u4e2a\u8fdb\u7a0b\u53ea\u6709\u4e00\u4e2aJVM\u5b9e\u4f8b<\/strong>\uff0c\u4e00\u4e2aJVM\u5b9e\u4f8b\u4e2d\u5c31\u6709\u4e00\u4e2a\u8fd0\u884c\u65f6\u6570\u636e\u533a\uff0c\u4e00\u4e2a\u8fd0\u884c\u65f6\u6570\u636e\u533a\u53ea\u6709\u4e00\u4e2a\u5806\u548c\u4e00\u4e2a\u65b9\u6cd5\u533a\u3002<\/p>\n<\/li>\n<li>\n<p>\u4f46\u662f<strong>\u8fdb\u7a0b\u5305\u542b\u591a\u4e2a\u7ebf\u7a0b\uff0c\u4ed6\u4eec\u662f\u5171\u4eab\u540c\u4e00\u5806\u7a7a\u95f4\u7684<\/strong>\u3002<\/p>\n<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/458508b1dfca655655c6062fcb47e531.png#align=left&amp;display=inline&amp;height=267&amp;originHeight=543&amp;originWidth=1233&amp;size=0&amp;status=done&amp;style=none&amp;width=607\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/458508b1dfca655655c6062fcb47e531.png#align=left&amp;display=inline&amp;height=267&amp;originHeight=543&amp;originWidth=1233&amp;size=0&amp;status=done&amp;style=none&amp;width=607\" alt=\"\"><\/noscript><\/p>\n<ol>\n<li>\n<p>\u4e00\u4e2aJVM\u5b9e\u4f8b\u53ea\u5b58\u5728\u4e00\u4e2a\u5806\u5185\u5b58\uff0c\u5806\u4e5f\u662fJava\u5185\u5b58\u7ba1\u7406\u7684\u6838\u5fc3\u533a\u57df\u3002<\/p>\n<\/li>\n<li>\n<p>Java\u5806\u533a\u5728JVM\u542f\u52a8\u7684\u65f6\u5019\u5373\u88ab\u521b\u5efa\uff0c\u5176\u7a7a\u95f4\u5927\u5c0f\u4e5f\u5c31\u786e\u5b9a\u4e86\uff0c\u5806\u662fJVM\u7ba1\u7406\u7684\u6700\u5927\u4e00\u5757\u5185\u5b58\u7a7a\u95f4\uff0c\u5e76\u4e14\u5806\u5185\u5b58\u7684\u5927\u5c0f\u662f\u53ef\u4ee5\u8c03\u8282\u7684\u3002<\/p>\n<\/li>\n<li>\n<p>\u300aJava\u865a\u62df\u673a\u89c4\u8303\u300b\u89c4\u5b9a\uff0c\u5806\u53ef\u4ee5\u5904\u4e8e\u7269\u7406\u4e0a\u4e0d\u8fde\u7eed\u7684\u5185\u5b58\u7a7a\u95f4\u4e2d\uff0c\u4f46\u5728\u903b\u8f91\u4e0a\u5b83\u5e94\u8be5\u88ab\u89c6\u4e3a\u8fde\u7eed\u7684\u3002<\/p>\n<\/li>\n<li>\n<p>\u6240\u6709\u7684\u7ebf\u7a0b\u5171\u4eabJava\u5806\uff0c\u5728\u8fd9\u91cc\u8fd8\u53ef\u4ee5\u5212\u5206\u7ebf\u7a0b\u79c1\u6709\u7684\u7f13\u51b2\u533a\uff08Thread Local Allocation Buffer\uff0c<strong>TLAB<\/strong>\uff09\u3002<\/p>\n<\/li>\n<li>\n<p>\u300aJava\u865a\u62df\u673a\u89c4\u8303\u300b\u4e2d\u5bf9Java\u5806\u7684\u63cf\u8ff0\u662f\uff1a<strong>\u6240\u6709\u7684\u5bf9\u8c61\u5b9e\u4f8b\u4ee5\u53ca\u6570\u7ec4\u90fd\u5e94\u5f53\u5728\u8fd0\u884c\u65f6\u5206\u914d\u5728\u5806\u4e0a<\/strong>\u3002\uff08The heap is the run-time data area from which memory for all class instances and arrays is allocated\uff09<\/p>\n<ul>\n<li>\u4ece\u5b9e\u9645\u4f7f\u7528\u89d2\u5ea6\u770b\uff1a\u201c\u51e0\u4e4e\u201d\u6240\u6709\u7684\u5bf9\u8c61\u5b9e\u4f8b\u90fd\u5728\u5806\u5206\u914d\u5185\u5b58\uff0c\u4f46\u5e76\u975e\u5168\u90e8\u3002\u56e0\u4e3a\u8fd8\u6709\u4e00\u4e9b\u5bf9\u8c61\u662f\u5728\u6808\u4e0a\u5206\u914d\u7684\uff08\u9003\u9038\u5206\u6790\uff0c\u6807\u91cf\u66ff\u6362\uff09<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u6570\u7ec4\u548c\u5bf9\u8c61\u53ef\u80fd\u6c38\u8fdc\u4e0d\u4f1a\u5b58\u50a8\u5728\u6808\u4e0a\uff08<strong>\u4e0d\u4e00\u5b9a<\/strong>\uff09\uff0c\u56e0\u4e3a\u6808\u5e27\u4e2d\u4fdd\u5b58\u5f15\u7528\uff0c\u8fd9\u4e2a\u5f15\u7528\u6307\u5411\u5bf9\u8c61\u6216\u8005\u6570\u7ec4\u5728\u5806\u4e2d\u7684\u4f4d\u7f6e\u3002<\/p>\n<\/li>\n<li>\n<p>\u5728\u65b9\u6cd5\u7ed3\u675f\u540e\uff0c\u5806\u4e2d\u7684\u5bf9\u8c61\u4e0d\u4f1a\u9a6c\u4e0a\u88ab\u79fb\u9664\uff0c\u4ec5\u4ec5\u5728\u5783\u573e\u6536\u96c6\u7684\u65f6\u5019\u624d\u4f1a\u88ab\u79fb\u9664\u3002<\/p>\n<ul>\n<li>\n<p>\u4e5f\u5c31\u662f\u89e6\u53d1\u4e86GC\u7684\u65f6\u5019\uff0c\u624d\u4f1a\u8fdb\u884c\u56de\u6536<\/p>\n<\/li>\n<li>\n<p>\u5982\u679c\u5806\u4e2d\u5bf9\u8c61\u9a6c\u4e0a\u88ab\u56de\u6536\uff0c\u90a3\u4e48\u7528\u6237\u7ebf\u7a0b\u5c31\u4f1a\u6536\u5230\u5f71\u54cd\uff0c\u56e0\u4e3a\u6709stop the word<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u5806\uff0c\u662fGC\uff08Garbage Collection\uff0c\u5783\u573e\u6536\u96c6\u5668\uff09\u6267\u884c\u5783\u573e\u56de\u6536\u7684\u91cd\u70b9\u533a\u57df\u3002<\/p>\n<\/li>\n<\/ol>\n<blockquote>\n<p>\u968f\u7740JVM\u7684\u8fed\u4ee3\u5347\u7ea7\uff0c\u539f\u6765\u4e00\u4e9b\u7edd\u5bf9\u7684\u4e8b\u60c5\uff0c\u5728\u540e\u7eed\u7248\u672c\u4e2d\u4e5f\u5f00\u59cb\u6709\u4e86\u7279\u4f8b\uff0c\u53d8\u7684\u4e0d\u518d\u90a3\u4e48\u7edd\u5bf9\u3002<\/p>\n<\/blockquote>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">SimpleHeap<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">int<\/span> id<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u5c5e\u6027\u3001\u6210\u5458\u53d8\u91cf<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token function\">SimpleHeap<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> id<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>id <span class=\"token operator\">=<\/span> id<span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">show<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"My ID is \"<\/span> <span class=\"token operator\">+<\/span> id<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        SimpleHeap sl <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">SimpleHeap<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        SimpleHeap s2 <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">SimpleHeap<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">int<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> arr <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">int<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">10<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n        Object<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> arr1 <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Object<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">10<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/48b56f553c2fc3ee91a41dff515b44c9.png#align=left&amp;display=inline&amp;height=212&amp;originHeight=435&amp;originWidth=840&amp;size=0&amp;status=done&amp;style=none&amp;width=409\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/48b56f553c2fc3ee91a41dff515b44c9.png#align=left&amp;display=inline&amp;height=212&amp;originHeight=435&amp;originWidth=840&amp;size=0&amp;status=done&amp;style=none&amp;width=409\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"_2194\"><\/a>\u5806\u5185\u5b58\u7ec6\u5206<\/h3>\n<p>\u73b0\u4ee3\u5783\u573e\u6536\u96c6\u5668\u5927\u90e8\u5206\u90fd\u57fa\u4e8e\u5206\u4ee3\u6536\u96c6\u7406\u8bba\u8bbe\u8ba1\uff0c\u5806\u7a7a\u95f4\u7ec6\u5206\u4e3a\uff1a<\/p>\n<ol>\n<li>\n<p>Java7 \u53ca\u4e4b\u524d\u5806\u5185\u5b58\u903b\u8f91\u4e0a\u5206\u4e3a\u4e09\u90e8\u5206\uff1a\u65b0\u751f\u533a+\u517b\u8001\u533a+\u6c38\u4e45\u533a<\/p>\n<ul>\n<li>\n<p>Young Generation Space \u65b0\u751f\u533a Young\/New<\/p>\n<ul>\n<li>\u53c8\u88ab\u5212\u5206\u4e3aEden\u533a\u548cSurvivor\u533a<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Old generation space \u517b\u8001\u533a Old\/Tenure<\/p>\n<\/li>\n<li>\n<p>Permanent Space \u6c38\u4e45\u533a Perm<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Java 8\u53ca\u4e4b\u540e\u5806\u5185\u5b58\u903b\u8f91\u4e0a\u5206\u4e3a\u4e09\u90e8\u5206\uff1a\u65b0\u751f\u533a+\u517b\u8001\u533a+\u5143\u7a7a\u95f4<\/p>\n<ul>\n<li>\n<p>Young Generation Space \u65b0\u751f\u533a\uff0c\u53c8\u88ab\u5212\u5206\u4e3aEden\u533a\u548cSurvivor\u533a<\/p>\n<\/li>\n<li>\n<p>Old generation space \u517b\u8001\u533a<\/p>\n<\/li>\n<li>\n<p>Meta Space \u5143\u7a7a\u95f4 Meta<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>\u7ea6\u5b9a\uff1a\u65b0\u751f\u533a &lt;\u2013&gt; \u65b0\u751f\u4ee3 &lt;\u2013&gt; \u5e74\u8f7b\u4ee3 \u3001 \u517b\u8001\u533a &lt;\u2013&gt; \u8001\u5e74\u533a &lt;\u2013&gt; \u8001\u5e74\u4ee3\u3001 \u6c38\u4e45\u533a &lt;\u2013&gt; \u6c38\u4e45\u4ee3<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/e60fc572a52688bf564ea39120b30beb.png#align=left&amp;display=inline&amp;height=431&amp;originHeight=695&amp;originWidth=971&amp;size=0&amp;status=done&amp;style=none&amp;width=602\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/e60fc572a52688bf564ea39120b30beb.png#align=left&amp;display=inline&amp;height=431&amp;originHeight=695&amp;originWidth=971&amp;size=0&amp;status=done&amp;style=none&amp;width=602\" alt=\"\"><\/noscript><\/p>\n<ol start=\"2\">\n<li>\u5806\u7a7a\u95f4\u5185\u90e8\u7ed3\u6784\uff0cJDK1.8\u4e4b\u524d\u4ece\u6c38\u4e45\u4ee3 \u66ff\u6362\u6210 \u5143\u7a7a\u95f4<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/9ea7e150fdca7dff8ce0d99e50c8f771.png#align=left&amp;display=inline&amp;height=278&amp;originHeight=667&amp;originWidth=1233&amp;size=0&amp;status=done&amp;style=none&amp;width=514\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/9ea7e150fdca7dff8ce0d99e50c8f771.png#align=left&amp;display=inline&amp;height=278&amp;originHeight=667&amp;originWidth=1233&amp;size=0&amp;status=done&amp;style=none&amp;width=514\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"JVisualVM_2220\"><\/a>JVisualVM\u53ef\u89c6\u5316\u67e5\u770b\u5806\u5185\u5b58<\/h2>\n<p>\u8fd0\u884c\u4e0b\u9762\u4ee3\u7801<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">HeapDemo<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"start...\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            TimeUnit<span class=\"token punctuation\">.<\/span>MINUTES<span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">30<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">InterruptedException<\/span> e<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            e<span class=\"token punctuation\">.<\/span><span class=\"token function\">printStackTrace<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"end...\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>1\u3001\u53cc\u51fbjdk\u76ee\u5f55\u4e0b\u7684\u8fd9\u4e2a\u6587\u4ef6<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/a8861d87a2205c72f5a51a51f61c7025.png#align=left&amp;display=inline&amp;height=335&amp;originHeight=656&amp;originWidth=1202&amp;size=0&amp;status=done&amp;style=none&amp;width=613\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/a8861d87a2205c72f5a51a51f61c7025.png#align=left&amp;display=inline&amp;height=335&amp;originHeight=656&amp;originWidth=1202&amp;size=0&amp;status=done&amp;style=none&amp;width=613\" alt=\"\"><\/noscript><br \/> 2\u3001\u5de5\u5177 -&gt; \u63d2\u4ef6 -&gt; \u5b89\u88c5Visual GC\u63d2\u4ef6<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/8d12b585398167f508c8a80ccbce54a7.png#align=left&amp;display=inline&amp;height=373&amp;originHeight=606&amp;originWidth=1080&amp;size=0&amp;status=done&amp;style=none&amp;width=664\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/8d12b585398167f508c8a80ccbce54a7.png#align=left&amp;display=inline&amp;height=373&amp;originHeight=606&amp;originWidth=1080&amp;size=0&amp;status=done&amp;style=none&amp;width=664\" alt=\"\"><\/noscript><br \/> 3\u3001\u8fd0\u884c\u4e0a\u9762\u7684\u4ee3\u7801<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/a57db800f04d27f9679109dfde0ff55b.png#align=left&amp;display=inline&amp;height=338&amp;originHeight=779&amp;originWidth=1361&amp;size=0&amp;status=done&amp;style=none&amp;width=590\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/a57db800f04d27f9679109dfde0ff55b.png#align=left&amp;display=inline&amp;height=338&amp;originHeight=779&amp;originWidth=1361&amp;size=0&amp;status=done&amp;style=none&amp;width=590\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"_OOM_2241\"><\/a>\u8bbe\u7f6e\u5806\u5185\u5b58\u5927\u5c0f\u4e0e OOM<\/h2>\n<h3><a id=\"_2242\"><\/a>\u8bbe\u7f6e\u5806\u5185\u5b58<\/h3>\n<ol>\n<li>\n<p>Java\u5806\u533a\u7528\u4e8e\u5b58\u50a8Java\u5bf9\u8c61\u5b9e\u4f8b\uff0c\u90a3\u4e48\u5806\u7684\u5927\u5c0f\u5728JVM\u542f\u52a8\u65f6\u5c31\u5df2\u7ecf\u8bbe\u5b9a\u597d\u4e86\uff0c\u5927\u5bb6\u53ef\u4ee5\u901a\u8fc7\u9009\u9879\"-Xms\"\u548c\"-Xmx\"\u6765\u8fdb\u884c\u8bbe\u7f6e\u3002<\/p>\n<ul>\n<li>\n<p><strong>-Xms<\/strong>\u7528\u4e8e\u8868\u793a\u5806\u533a\u7684\u8d77\u59cb\u5185\u5b58\uff0c\u7b49\u4ef7\u4e8e**-XX:InitialHeapSize**<\/p>\n<\/li>\n<li>\n<p><strong>-Xmx<\/strong>\u5219\u7528\u4e8e\u8868\u793a\u5806\u533a\u7684\u6700\u5927\u5185\u5b58\uff0c\u7b49\u4ef7\u4e8e**-XX:MaxHeapSize**<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u4e00\u65e6\u5806\u533a\u4e2d\u7684\u5185\u5b58\u5927\u5c0f\u8d85\u8fc7\u201c-Xmx\"\u6240\u6307\u5b9a\u7684\u6700\u5927\u5185\u5b58\u65f6\uff0c\u5c06\u4f1a\u629b\u51faOutofMemoryError\u5f02\u5e38\u3002<\/p>\n<\/li>\n<li>\n<p>\u901a\u5e38\u4f1a\u5c06-Xms\u548c-Xmx\u4e24\u4e2a\u53c2\u6570\u914d\u7f6e\u76f8\u540c\u7684\u503c<\/p>\n<\/li>\n<\/ol>\n<ul>\n<li>\n<p>\u539f\u56e0\uff1a\u5047\u8bbe\u4e24\u4e2a\u4e0d\u4e00\u6837\uff0c\u521d\u59cb\u5185\u5b58\u5c0f\uff0c\u6700\u5927\u5185\u5b58\u5927\u3002\u5728\u8fd0\u884c\u671f\u95f4\u5982\u679c\u5806\u5185\u5b58\u4e0d\u591f\u7528\u4e86\uff0c\u4f1a\u4e00\u76f4\u6269\u5bb9\u76f4\u5230\u6700\u5927\u5185\u5b58\u3002\u5982\u679c\u5185\u5b58\u591f\u7528\u4e14\u591a\u4e86\uff0c\u4e5f\u4f1a\u4e0d\u65ad\u7684\u7f29\u5bb9\u91ca\u653e\u3002\u9891\u7e41\u7684\u6269\u5bb9\u548c\u91ca\u653e\u9020\u6210\u4e0d\u5fc5\u8981\u7684\u538b\u529b\uff0c\u907f\u514d\u5728GC\u4e4b\u540e\u8c03\u6574\u5806\u5185\u5b58\u7ed9\u670d\u52a1\u5668\u5e26\u6765\u538b\u529b\u3002<\/p>\n<\/li>\n<li>\n<p>\u5982\u679c\u4e24\u4e2a\u8bbe\u7f6e\u4e00\u6837\u7684\u5c31\u5c11\u4e86\u9891\u7e41\u6269\u5bb9\u548c\u7f29\u5bb9\u7684\u6b65\u9aa4\u3002\u5185\u5b58\u4e0d\u591f\u4e86\u5c31\u76f4\u63a5\u62a5OOM<\/p>\n<\/li>\n<\/ul>\n<ol start=\"4\">\n<li>\u9ed8\u8ba4\u60c5\u51b5\u4e0b:\n<ul>\n<li>\n<p>\u521d\u59cb\u5185\u5b58\u5927\u5c0f\uff1a\u7269\u7406\u7535\u8111\u5185\u5b58\u5927\u5c0f\/64<\/p>\n<\/li>\n<li>\n<p>\u6700\u5927\u5185\u5b58\u5927\u5c0f\uff1a\u7269\u7406\u7535\u8111\u5185\u5b58\u5927\u5c0f\/4<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<pre><code class=\"prism language-java\"><span class=\"token comment\">\/**\n * 1. \u8bbe\u7f6e\u5806\u7a7a\u95f4\u5927\u5c0f\u7684\u53c2\u6570\n * -Xms \u7528\u6765\u8bbe\u7f6e\u5806\u7a7a\u95f4\uff08\u5e74\u8f7b\u4ee3+\u8001\u5e74\u4ee3\uff09\u7684\u521d\u59cb\u5185\u5b58\u5927\u5c0f\n *      -X \u662fjvm\u7684\u8fd0\u884c\u53c2\u6570\n *      ms \u662fmemory start\n * -Xmx \u7528\u6765\u8bbe\u7f6e\u5806\u7a7a\u95f4\uff08\u5e74\u8f7b\u4ee3+\u8001\u5e74\u4ee3\uff09\u7684\u6700\u5927\u5185\u5b58\u5927\u5c0f\n *\n * 2. \u9ed8\u8ba4\u5806\u7a7a\u95f4\u7684\u5927\u5c0f\n *    \u521d\u59cb\u5185\u5b58\u5927\u5c0f\uff1a\u7269\u7406\u7535\u8111\u5185\u5b58\u5927\u5c0f \/ 64\n *             \u6700\u5927\u5185\u5b58\u5927\u5c0f\uff1a\u7269\u7406\u7535\u8111\u5185\u5b58\u5927\u5c0f \/ 4\n * 3. \u624b\u52a8\u8bbe\u7f6e\uff1a-Xms600m -Xmx600m\n *     \u5f00\u53d1\u4e2d\u5efa\u8bae\u5c06\u521d\u59cb\u5806\u5185\u5b58\u548c\u6700\u5927\u7684\u5806\u5185\u5b58\u8bbe\u7f6e\u6210\u76f8\u540c\u7684\u503c\u3002\n *\n * 4. \u67e5\u770b\u8bbe\u7f6e\u7684\u53c2\u6570\uff1a\u65b9\u5f0f\u4e00\uff1a jps   \/  jstat -gc \u8fdb\u7a0bid\n *                  \u65b9\u5f0f\u4e8c\uff1a-XX:+PrintGCDetails\n *\/<\/span>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">HeapSpaceInitial<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token comment\">\/\/\u8fd4\u56deJava\u865a\u62df\u673a\u4e2d\u7684\u5806\u5185\u5b58\u603b\u91cf<\/span>\n        <span class=\"token keyword\">long<\/span> initialMemory <span class=\"token operator\">=<\/span> Runtime<span class=\"token punctuation\">.<\/span><span class=\"token function\">getRuntime<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">totalMemory<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">1024<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">1024<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token comment\">\/\/\u8fd4\u56deJava\u865a\u62df\u673a\u8bd5\u56fe\u4f7f\u7528\u7684\u6700\u5927\u5806\u5185\u5b58\u91cf<\/span>\n        <span class=\"token keyword\">long<\/span> maxMemory <span class=\"token operator\">=<\/span> Runtime<span class=\"token punctuation\">.<\/span><span class=\"token function\">getRuntime<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">maxMemory<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">1024<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">1024<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"-Xms : \"<\/span> <span class=\"token operator\">+<\/span> initialMemory <span class=\"token operator\">+<\/span> <span class=\"token string\">\"M\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"-Xmx : \"<\/span> <span class=\"token operator\">+<\/span> maxMemory <span class=\"token operator\">+<\/span> <span class=\"token string\">\"M\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"\u7cfb\u7edf\u5185\u5b58\u5927\u5c0f\u4e3a\uff1a\"<\/span> <span class=\"token operator\">+<\/span> initialMemory <span class=\"token operator\">*<\/span> <span class=\"token number\">64.0<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">1024<\/span> <span class=\"token operator\">+<\/span> <span class=\"token string\">\"G\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"\u7cfb\u7edf\u5185\u5b58\u5927\u5c0f\u4e3a\uff1a\"<\/span> <span class=\"token operator\">+<\/span> maxMemory <span class=\"token operator\">*<\/span> <span class=\"token number\">4.0<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">1024<\/span> <span class=\"token operator\">+<\/span> <span class=\"token string\">\"G\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            Thread<span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1000000<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">InterruptedException<\/span> e<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            e<span class=\"token punctuation\">.<\/span><span class=\"token function\">printStackTrace<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n\u8f93\u51fa\u7ed3\u679c\uff1a\n<span class=\"token operator\">-<\/span>Xms <span class=\"token operator\">:<\/span> <span class=\"token number\">123<\/span>M\n<span class=\"token operator\">-<\/span>Xmx <span class=\"token operator\">:<\/span> <span class=\"token number\">1794<\/span>M\n\u7cfb\u7edf\u5185\u5b58\u5927\u5c0f\u4e3a\uff1a<span class=\"token number\">7.6875<\/span>G\n\u7cfb\u7edf\u5185\u5b58\u5927\u5c0f\u4e3a\uff1a<span class=\"token number\">7.0078125<\/span>G\n<\/code><\/pre>\n<p>1\u3001\u7b14\u8005\u7535\u8111\u5185\u5b58\u5927\u5c0f\u662f8G\uff0c\u4e0d\u8db38G\u7684\u539f\u56e0\u662f\u64cd\u4f5c\u7cfb\u7edf\u81ea\u8eab\u8fd8\u5360\u636e\u4e86\u4e00\u4e9b\u3002<br \/> 2\u3001\u4e24\u4e2a\u4e0d\u4e00\u6837\u7684\u539f\u56e0\u5f85\u4f1a\u518d\u8bf4<br \/> \u8bbe\u7f6e\u4e0b\u53c2\u6570\u518d\u770b<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/d18a1fe061027cf55b8f4a010af2ecd3.png#align=left&amp;display=inline&amp;height=521&amp;originHeight=521&amp;originWidth=1355&amp;size=0&amp;status=done&amp;style=none&amp;width=1355\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/d18a1fe061027cf55b8f4a010af2ecd3.png#align=left&amp;display=inline&amp;height=521&amp;originHeight=521&amp;originWidth=1355&amp;size=0&amp;status=done&amp;style=none&amp;width=1355\" alt=\"\"><\/noscript><\/p>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">HeapSpaceInitial<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token comment\">\/\/\u8fd4\u56deJava\u865a\u62df\u673a\u4e2d\u7684\u5806\u5185\u5b58\u603b\u91cf<\/span>\n        <span class=\"token keyword\">long<\/span> initialMemory <span class=\"token operator\">=<\/span> Runtime<span class=\"token punctuation\">.<\/span><span class=\"token function\">getRuntime<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">totalMemory<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">1024<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">1024<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token comment\">\/\/\u8fd4\u56deJava\u865a\u62df\u673a\u8bd5\u56fe\u4f7f\u7528\u7684\u6700\u5927\u5806\u5185\u5b58\u91cf<\/span>\n        <span class=\"token keyword\">long<\/span> maxMemory <span class=\"token operator\">=<\/span> Runtime<span class=\"token punctuation\">.<\/span><span class=\"token function\">getRuntime<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">maxMemory<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">1024<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">1024<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"-Xms : \"<\/span> <span class=\"token operator\">+<\/span> initialMemory <span class=\"token operator\">+<\/span> <span class=\"token string\">\"M\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"-Xmx : \"<\/span> <span class=\"token operator\">+<\/span> maxMemory <span class=\"token operator\">+<\/span> <span class=\"token string\">\"M\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            Thread<span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1000000<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">InterruptedException<\/span> e<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            e<span class=\"token punctuation\">.<\/span><span class=\"token function\">printStackTrace<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n\u8f93\u51fa\u7ed3\u679c\uff1a\n<span class=\"token operator\">-<\/span>Xms <span class=\"token operator\">:<\/span> <span class=\"token number\">575<\/span>M\n<span class=\"token operator\">-<\/span>Xmx <span class=\"token operator\">:<\/span> <span class=\"token number\">575<\/span>M\n<\/code><\/pre>\n<p>\u4e3a\u4ec0\u4e48\u4f1a\u5c1125M<br \/> <strong>\u65b9\u5f0f\u4e00\uff1a jps \/ jstat -gc \u8fdb\u7a0bid<\/strong><br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/a71d93cbc09f87348bdd330f6ae6c3f1.png#align=left&amp;display=inline&amp;height=337&amp;originHeight=337&amp;originWidth=1644&amp;size=0&amp;status=done&amp;style=none&amp;width=1644\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/a71d93cbc09f87348bdd330f6ae6c3f1.png#align=left&amp;display=inline&amp;height=337&amp;originHeight=337&amp;originWidth=1644&amp;size=0&amp;status=done&amp;style=none&amp;width=1644\" alt=\"\"><\/noscript><\/p>\n<blockquote>\n<p>jps\uff1a\u67e5\u770bjava\u8fdb\u7a0b<br \/> jstat\uff1a\u67e5\u770b\u67d0\u8fdb\u7a0b\u5185\u5b58\u4f7f\u7528\u60c5\u51b5<\/p>\n<\/blockquote>\n<p>SOC: S0\u533a\u603b\u5171\u5bb9\u91cf<br \/> S1C: S1\u533a\u603b\u5171\u5bb9\u91cf<br \/> S0U: S0\u533a\u4f7f\u7528\u7684\u91cf<br \/> S1U: S1\u533a\u4f7f\u7528\u7684\u91cf<br \/> EC: \u4f0a\u7538\u56ed\u533a\u603b\u5171\u5bb9\u91cf<br \/> EU: \u4f0a\u7538\u56ed\u533a\u4f7f\u7528\u7684\u91cf<br \/> OC: \u8001\u5e74\u4ee3\u603b\u5171\u5bb9\u91cf<br \/> OU: \u8001\u5e74\u4ee3\u4f7f\u7528\u7684\u91cf<br \/> 1\u3001<br \/> 25600+25600+153600+409600 = 614400K<br \/> 614400 \/1024 = 600M<br \/> 2\u3001<br \/> 25600+153600+409600 = 588800K<br \/> 588800 \/1024 = 575M<br \/> 3\u3001<br \/> \u5e76\u975e\u5de7\u5408\uff0cS0\u533a\u548cS1\u533a\u4e24\u4e2a\u53ea\u6709\u4e00\u4e2a\u80fd\u4f7f\u7528\uff0c\u53e6\u4e00\u4e2a\u7528\u4e0d\u4e86\uff08\u540e\u9762\u4f1a\u8be6\u89e3\uff09<br \/> <strong>\u65b9\u5f0f\u4e8c\uff1a-XX:+PrintGCDetails<\/strong><br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/df0a4687c977037d86e61f669791bc44.png#align=left&amp;display=inline&amp;height=500&amp;originHeight=500&amp;originWidth=1561&amp;size=0&amp;status=done&amp;style=none&amp;width=1561\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/df0a4687c977037d86e61f669791bc44.png#align=left&amp;display=inline&amp;height=500&amp;originHeight=500&amp;originWidth=1561&amp;size=0&amp;status=done&amp;style=none&amp;width=1561\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"OOM_2350\"><\/a>OOM<\/h3>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">OOMTest<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        ArrayList<span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>Picture<span class=\"token punctuation\">&gt;<\/span><\/span> list <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">ArrayList<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token operator\">&gt;<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">while<\/span><span class=\"token punctuation\">(<\/span><span class=\"token boolean\">true<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n                Thread<span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">20<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">InterruptedException<\/span> e<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n                e<span class=\"token punctuation\">.<\/span><span class=\"token function\">printStackTrace<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span>\n            list<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Picture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Random<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">nextInt<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1024<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">1024<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Picture<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">byte<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> pixels<span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token function\">Picture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> length<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>pixels <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">byte<\/span><span class=\"token punctuation\">[<\/span>length<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>1\u3001\u8bbe\u7f6e\u865a\u62df\u673a\u53c2\u6570<br \/> <code>-Xms600m -Xmx600m<\/code><br \/> \u6700\u7ec8\u8f93\u51fa\u7ed3\u679c\uff1a<br \/> Exception in thread \u201cmain\u201d java.lang.OutOfMemoryError: Java heap space<br \/> at com.atguigu.java.Picture.(OOMTest.java:29)<br \/> at com.atguigu.java.OOMTest.main(OOMTest.java:20)<br \/> Process finished with exit code 1<br \/> 2\u3001\u5806\u5185\u5b58\u53d8\u5316\u56fe<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/fad2cfad4a6e4964c16ce37d4b8cb3c8.png#align=left&amp;display=inline&amp;height=605&amp;originHeight=937&amp;originWidth=1393&amp;size=0&amp;status=done&amp;style=none&amp;width=899\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/fad2cfad4a6e4964c16ce37d4b8cb3c8.png#align=left&amp;display=inline&amp;height=605&amp;originHeight=937&amp;originWidth=1393&amp;size=0&amp;status=done&amp;style=none&amp;width=899\" alt=\"\"><\/noscript><br \/> 3\u3001\u539f\u56e0\uff1a\u5927\u5bf9\u8c61\u5bfc\u81f4\u5806\u5185\u5b58\u6ea2\u51fa<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/61952dd85a1b05998fd57d061a56e785.png#align=left&amp;display=inline&amp;height=515&amp;originHeight=759&amp;originWidth=1393&amp;size=0&amp;status=done&amp;style=none&amp;width=945\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/61952dd85a1b05998fd57d061a56e785.png#align=left&amp;display=inline&amp;height=515&amp;originHeight=759&amp;originWidth=1393&amp;size=0&amp;status=done&amp;style=none&amp;width=945\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"_2383\"><\/a>\u5e74\u8f7b\u4ee3\u4e0e\u8001\u5e74\u4ee3<\/h2>\n<p>1\u3001\u5b58\u50a8\u5728JVM\u4e2d\u7684Java\u5bf9\u8c61\u53ef\u4ee5\u88ab\u5212\u5206\u4e3a\u4e24\u7c7b\uff1a<\/p>\n<ul>\n<li>\n<p>\u4e00\u7c7b\u662f\u751f\u547d\u5468\u671f\u8f83\u77ed\u7684\u77ac\u65f6\u5bf9\u8c61\uff0c\u8fd9\u7c7b\u5bf9\u8c61\u7684\u521b\u5efa\u548c\u6d88\u4ea1\u90fd\u975e\u5e38\u8fc5\u901f<\/p>\n<\/li>\n<li>\n<p>\u53e6\u5916\u4e00\u7c7b\u5bf9\u8c61\u7684\u751f\u547d\u5468\u671f\u5374\u975e\u5e38\u957f\uff0c\u5728\u67d0\u4e9b\u6781\u7aef\u7684\u60c5\u51b5\u4e0b\u8fd8\u80fd\u591f\u4e0eJVM\u7684\u751f\u547d\u5468\u671f\u4fdd\u6301\u4e00\u81f4<br \/> 2\u3001Java\u5806\u533a\u8fdb\u4e00\u6b65\u7ec6\u5206\u7684\u8bdd\uff0c\u53ef\u4ee5\u5212\u5206\u4e3a\u5e74\u8f7b\u4ee3\uff08YoungGen\uff09\u548c\u8001\u5e74\u4ee3\uff08oldGen\uff09<br \/> 3\u3001\u5176\u4e2d\u5e74\u8f7b\u4ee3\u53c8\u53ef\u4ee5\u5212\u5206\u4e3aEden\u7a7a\u95f4\u3001Survivor0\u7a7a\u95f4\u548cSurvivor1\u7a7a\u95f4\uff08\u6709\u65f6\u4e5f\u53eb\u505afrom\u533a\u3001to\u533a\uff09<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f3a5cbcffd5200f004a12057aae6cbb6.png#align=left&amp;display=inline&amp;height=313&amp;originHeight=313&amp;originWidth=596&amp;size=0&amp;status=done&amp;style=none&amp;width=596\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f3a5cbcffd5200f004a12057aae6cbb6.png#align=left&amp;display=inline&amp;height=313&amp;originHeight=313&amp;originWidth=596&amp;size=0&amp;status=done&amp;style=none&amp;width=596\" alt=\"\"><\/noscript><br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/1edd859521e4167aaa28b3a31a12c5e3.png#align=left&amp;display=inline&amp;height=206&amp;originHeight=288&amp;originWidth=1093&amp;size=0&amp;status=done&amp;style=none&amp;width=782\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/1edd859521e4167aaa28b3a31a12c5e3.png#align=left&amp;display=inline&amp;height=206&amp;originHeight=288&amp;originWidth=1093&amp;size=0&amp;status=done&amp;style=none&amp;width=782\" alt=\"\"><\/noscript><\/p>\n<\/li>\n<li>\n<p>\u914d\u7f6e\u65b0\u751f\u4ee3\u4e0e\u8001\u5e74\u4ee3\u5728\u5806\u7ed3\u6784\u7684\u5360\u6bd4<\/p>\n<ul>\n<li>\n<p>\u9ed8\u8ba4**-XX:NewRatio**=2\uff0c\u8868\u793a\u65b0\u751f\u4ee3\u53601\uff0c\u8001\u5e74\u4ee3\u53602\uff0c\u65b0\u751f\u4ee3\u5360\u6574\u4e2a\u5806\u76841\/3<\/p>\n<\/li>\n<li>\n<p>\u53ef\u4ee5\u4fee\u6539**-XX:NewRatio**=4\uff0c\u8868\u793a\u65b0\u751f\u4ee3\u53601\uff0c\u8001\u5e74\u4ee3\u53604\uff0c\u65b0\u751f\u4ee3\u5360\u6574\u4e2a\u5806\u76841\/5<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ol>\n<li>\n<p>\u5728HotSpot\u4e2d\uff0cEden\u7a7a\u95f4\u548c\u53e6\u5916\u4e24\u4e2asurvivor\u7a7a\u95f4\u7f3a\u7701\u6240\u5360\u7684\u6bd4\u4f8b\u662f8 : 1 : 1\uff0c<\/p>\n<\/li>\n<li>\n<p>\u5f53\u7136\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u901a\u8fc7\u9009\u9879**-XX:SurvivorRatio**\u8c03\u6574\u8fd9\u4e2a\u7a7a\u95f4\u6bd4\u4f8b\u3002\u6bd4\u5982-XX:SurvivorRatio=8<\/p>\n<\/li>\n<li>\n<p>\u51e0\u4e4e\u6240\u6709\u7684Java\u5bf9\u8c61\u90fd\u662f\u5728Eden\u533a\u88abnew\u51fa\u6765\u7684\u3002<\/p>\n<\/li>\n<li>\n<p>\u7edd\u5927\u90e8\u5206\u7684Java\u5bf9\u8c61\u7684\u9500\u6bc1\u90fd\u5728\u65b0\u751f\u4ee3\u8fdb\u884c\u4e86\uff08\u6709\u4e9b\u5927\u7684\u5bf9\u8c61\u5728Eden\u533a\u65e0\u6cd5\u5b58\u50a8\u65f6\u5019\uff0c\u5c06\u76f4\u63a5\u8fdb\u5165\u8001\u5e74\u4ee3\uff09\uff0cIBM\u516c\u53f8\u7684\u4e13\u95e8\u7814\u7a76\u8868\u660e\uff0c\u65b0\u751f\u4ee3\u4e2d80%\u7684\u5bf9\u8c61\u90fd\u662f\u201c\u671d\u751f\u5915\u6b7b\u201d\u7684\u3002<\/p>\n<\/li>\n<li>\n<p>\u53ef\u4ee5\u4f7f\u7528\u9009\u9879\"-Xmn\"\u8bbe\u7f6e\u65b0\u751f\u4ee3\u6700\u5927\u5185\u5b58\u5927\u5c0f\uff0c\u4f46\u8fd9\u4e2a\u53c2\u6570\u4e00\u822c\u4f7f\u7528\u9ed8\u8ba4\u503c\u5c31\u53ef\u4ee5\u4e86\u3002<\/p>\n<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/9f43219d3c9ca87c67b5c2e0156711af.png#align=left&amp;display=inline&amp;height=286&amp;originHeight=358&amp;originWidth=1076&amp;size=0&amp;status=done&amp;style=none&amp;width=859\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/9f43219d3c9ca87c67b5c2e0156711af.png#align=left&amp;display=inline&amp;height=286&amp;originHeight=358&amp;originWidth=1076&amp;size=0&amp;status=done&amp;style=none&amp;width=859\" alt=\"\"><\/noscript><\/p>\n<pre><code class=\"prism language-java\"><span class=\"token comment\">\/**\n * -Xms600m -Xmx600m\n *\n * -XX:NewRatio \uff1a \u8bbe\u7f6e\u65b0\u751f\u4ee3\u4e0e\u8001\u5e74\u4ee3\u7684\u6bd4\u4f8b\u3002\u9ed8\u8ba4\u503c\u662f2.\n * -XX:SurvivorRatio \uff1a\u8bbe\u7f6e\u65b0\u751f\u4ee3\u4e2dEden\u533a\u4e0eSurvivor\u533a\u7684\u6bd4\u4f8b\u3002\u9ed8\u8ba4\u503c\u662f8\n * -XX:-UseAdaptiveSizePolicy \uff1a\u5173\u95ed\u81ea\u9002\u5e94\u7684\u5185\u5b58\u5206\u914d\u7b56\u7565  \uff08\u6682\u65f6\u7528\u4e0d\u5230\uff09\n * -Xmn:\u8bbe\u7f6e\u65b0\u751f\u4ee3\u7684\u7a7a\u95f4\u7684\u5927\u5c0f\u3002 \uff08\u4e00\u822c\u4e0d\u8bbe\u7f6e\uff09\n *\/<\/span>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">EdenSurvivorTest<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"\u6211\u53ea\u662f\u6765\u6253\u4e2a\u9171\u6cb9~\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            Thread<span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1000000<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">InterruptedException<\/span> e<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            e<span class=\"token punctuation\">.<\/span><span class=\"token function\">printStackTrace<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<h2><a id=\"_2429\"><\/a>\u56fe\u89e3\u5bf9\u8c61\u5206\u914d\u8fc7\u7a0b<\/h2>\n<p>\u4e3a\u65b0\u5bf9\u8c61\u5206\u914d\u5185\u5b58\u662f\u4e00\u4ef6\u975e\u5e38\u4e25\u8c28\u548c\u590d\u6742\u7684\u4efb\u52a1\uff0cJVM\u7684\u8bbe\u8ba1\u8005\u4eec\u4e0d\u4ec5\u9700\u8981\u8003\u8651\u5185\u5b58\u5982\u4f55\u5206\u914d\u3001\u5728\u54ea\u91cc\u5206\u914d\u7b49\u95ee\u9898\uff0c\u5e76\u4e14\u7531\u4e8e\u5185\u5b58\u5206\u914d\u7b97\u6cd5\u4e0e\u5185\u5b58\u56de\u6536\u7b97\u6cd5\u5bc6\u5207\u76f8\u5173\uff0c\u6240\u4ee5\u8fd8\u9700\u8981\u8003\u8651GC\u6267\u884c\u5b8c\u5185\u5b58\u56de\u6536\u540e\u662f\u5426\u4f1a\u5728\u5185\u5b58\u7a7a\u95f4\u4e2d\u4ea7\u751f\u5185\u5b58\u788e\u7247\u3002<br \/> <strong>\u5177\u4f53\u8fc7\u7a0b<\/strong><\/p>\n<ol>\n<li>\n<p>new\u7684\u5bf9\u8c61\u5148\u653e\u4f0a\u7538\u56ed\u533a\u3002\u6b64\u533a\u6709\u5927\u5c0f\u9650\u5236\u3002<\/p>\n<\/li>\n<li>\n<p>\u5f53\u4f0a\u7538\u56ed\u7684\u7a7a\u95f4\u586b\u6ee1\u65f6\uff0c\u7a0b\u5e8f\u53c8\u9700\u8981\u521b\u5efa\u5bf9\u8c61\uff0cJVM\u7684\u5783\u573e\u56de\u6536\u5668\u5c06\u5bf9\u4f0a\u7538\u56ed\u533a\u8fdb\u884c\u5783\u573e\u56de\u6536\uff08MinorGC\uff09\uff0c\u5c06\u4f0a\u7538\u56ed\u533a\u4e2d\u7684\u4e0d\u518d\u88ab\u5176\u4ed6\u5bf9\u8c61\u6240\u5f15\u7528\u7684\u5bf9\u8c61\u8fdb\u884c\u9500\u6bc1\u3002\u518d\u52a0\u8f7d\u65b0\u7684\u5bf9\u8c61\u653e\u5230\u4f0a\u7538\u56ed\u533a\u3002<\/p>\n<\/li>\n<li>\n<p>\u7136\u540e\u5c06\u4f0a\u7538\u56ed\u4e2d\u7684\u5269\u4f59\u5bf9\u8c61\u79fb\u52a8\u5230\u5e78\u5b58\u80050\u533a\u3002<\/p>\n<\/li>\n<li>\n<p>\u5982\u679c\u518d\u6b21\u89e6\u53d1\u5783\u573e\u56de\u6536\uff0c\u6b64\u65f6\u4e0a\u6b21\u5e78\u5b58\u4e0b\u6765\u7684\u653e\u5230\u5e78\u5b58\u80050\u533a\u7684\uff0c\u5982\u679c\u6ca1\u6709\u56de\u6536\uff0c\u5c31\u4f1a\u653e\u5230\u5e78\u5b58\u80051\u533a\u3002<\/p>\n<\/li>\n<li>\n<p>\u5982\u679c\u518d\u6b21\u7ecf\u5386\u5783\u573e\u56de\u6536\uff0c\u6b64\u65f6\u4f1a\u91cd\u65b0\u653e\u56de\u5e78\u5b58\u80050\u533a\uff0c\u63a5\u7740\u518d\u53bb\u5e78\u5b58\u80051\u533a\u3002<\/p>\n<\/li>\n<li>\n<p>\u5565\u65f6\u5019\u80fd\u53bb\u517b\u8001\u533a\u5462\uff1f\u53ef\u4ee5\u8bbe\u7f6e\u6b21\u6570\u3002\u9ed8\u8ba4\u662f15\u6b21\u3002\u53ef\u4ee5\u8bbe\u7f6e\u65b0\u751f\u533a\u8fdb\u5165\u517b\u8001\u533a\u7684\u5e74\u9f84\u9650\u5236\uff0c\u8bbe\u7f6e JVM \u53c2\u6570\uff1a<strong>-XX:MaxTenuringThreshold<\/strong>=N \u8fdb\u884c\u8bbe\u7f6e<\/p>\n<\/li>\n<li>\n<p>\u5728\u517b\u8001\u533a\uff0c\u76f8\u5bf9\u60a0\u95f2\u3002\u5f53\u517b\u8001\u533a\u5185\u5b58\u4e0d\u8db3\u65f6\uff0c\u518d\u6b21\u89e6\u53d1GC\uff1aMajor GC\uff0c\u8fdb\u884c\u517b\u8001\u533a\u7684\u5185\u5b58\u6e05\u7406<\/p>\n<\/li>\n<li>\n<p>\u82e5\u517b\u8001\u533a\u6267\u884c\u4e86Major GC\u4e4b\u540e\uff0c\u53d1\u73b0\u4f9d\u7136\u65e0\u6cd5\u8fdb\u884c\u5bf9\u8c61\u7684\u4fdd\u5b58\uff0c\u5c31\u4f1a\u4ea7\u751fOOM\u5f02\u5e38\u3002<\/p>\n<\/li>\n<\/ol>\n<h3><a id=\"_2449\"><\/a>\u56fe\u89e3\u5bf9\u8c61\u5206\u914d\uff08\u4e00\u822c\u60c5\u51b5\uff09<\/h3>\n<p>1\u3001\u6211\u4eec\u521b\u5efa\u7684\u5bf9\u8c61\uff0c\u4e00\u822c\u90fd\u662f\u5b58\u653e\u5728Eden\u533a\u7684\uff0c<strong>\u5f53\u6211\u4eecEden\u533a\u6ee1\u4e86\u540e\uff0c\u5c31\u4f1a\u89e6\u53d1GC\u64cd\u4f5c<\/strong>\uff0c\u4e00\u822c\u88ab\u79f0\u4e3a YGC \/ Minor GC\u64cd\u4f5c<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/89b3926f8a3d9d99476de7260a698fcd.png#align=left&amp;display=inline&amp;height=301&amp;originHeight=415&amp;originWidth=1174&amp;size=0&amp;status=done&amp;style=none&amp;width=851\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/89b3926f8a3d9d99476de7260a698fcd.png#align=left&amp;display=inline&amp;height=301&amp;originHeight=415&amp;originWidth=1174&amp;size=0&amp;status=done&amp;style=none&amp;width=851\" alt=\"\"><\/noscript><br \/> 2\u3001\u5f53\u6211\u4eec\u8fdb\u884c\u4e00\u6b21\u5783\u573e\u6536\u96c6\u540e\uff0c\u7ea2\u8272\u7684\u5bf9\u8c61\u5c06\u4f1a\u88ab\u56de\u6536\uff0c\u800c\u7eff\u8272\u7684\u72ec\u4eab\u8fd8\u88ab\u5360\u7528\u7740\uff0c\u5b58\u653e\u5728S0(Survivor From)\u533a\u3002\u540c\u65f6\u6211\u4eec\u7ed9\u6bcf\u4e2a\u5bf9\u8c61\u8bbe\u7f6e\u4e86\u4e00\u4e2a\u5e74\u9f84\u8ba1\u6570\u5668\uff0c\u7ecf\u8fc7\u4e00\u6b21\u56de\u6536\u540e\u8fd8\u5b58\u5728\u7684\u5bf9\u8c61\uff0c\u5c06\u5176\u5e74\u9f84\u52a0 1\u3002<br \/> 3\u3001\u540c\u65f6Eden\u533a\u7ee7\u7eed\u5b58\u653e\u5bf9\u8c61\uff0c\u5f53Eden\u533a\u518d\u6b21\u5b58\u6ee1\u7684\u65f6\u5019\uff0c\u53c8\u4f1a\u89e6\u53d1\u4e00\u4e2aMinorGC\u64cd\u4f5c\uff0c\u6b64\u65f6GC\u5c06\u4f1a\u628a Eden\u548cSurvivor From\u4e2d\u7684\u5bf9\u8c61\u8fdb\u884c\u4e00\u6b21\u5783\u573e\u6536\u96c6\uff0c\u628a\u5b58\u6d3b\u7684\u5bf9\u8c61\u653e\u5230 Survivor To\uff08S1\uff09\u533a\uff0c\u540c\u65f6\u8ba9\u5b58\u6d3b\u7684\u5bf9\u8c61\u5e74\u9f84 + 1<\/p>\n<blockquote>\n<p>\u4e0b\u4e00\u6b21\u518d\u8fdb\u884cGC\u7684\u65f6\u5019\uff0c<br \/> 1\u3001\u8fd9\u4e00\u6b21\u7684s0\u533a\u4e3a\u7a7a\uff0c\u6240\u4ee5\u6210\u4e3a\u4e0b\u4e00\u6b21GC\u7684S1\u533a<br \/> 2\u3001\u8fd9\u4e00\u6b21\u7684s1\u533a\u5219\u6210\u4e3a\u4e0b\u4e00\u6b21GC\u7684S0\u533a<br \/> 3\u3001\u4e5f\u5c31\u662f\u8bf4s0\u533a\u548cs1\u533a\u5728\u4e92\u76f8\u8f6c\u6362\u3002<\/p>\n<\/blockquote>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/a1b925469d6fc280030893f9957223a5.png#align=left&amp;display=inline&amp;height=332&amp;originHeight=388&amp;originWidth=1153&amp;size=0&amp;status=done&amp;style=none&amp;width=988\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/a1b925469d6fc280030893f9957223a5.png#align=left&amp;display=inline&amp;height=332&amp;originHeight=388&amp;originWidth=1153&amp;size=0&amp;status=done&amp;style=none&amp;width=988\" alt=\"\"><\/noscript><br \/> 4\u3001\u6211\u4eec\u7ee7\u7eed\u4e0d\u65ad\u7684\u8fdb\u884c\u5bf9\u8c61\u751f\u6210\u548c\u5783\u573e\u56de\u6536\uff0c\u5f53Survivor\u4e2d\u7684\u5bf9\u8c61\u7684\u5e74\u9f84\u8fbe\u523015\u7684\u65f6\u5019\uff0c\u5c06\u4f1a\u89e6\u53d1\u4e00\u6b21 Promotion \u664b\u5347\u7684\u64cd\u4f5c\uff0c\u4e5f\u5c31\u662f\u5c06\u5e74\u8f7b\u4ee3\u4e2d\u7684\u5bf9\u8c61\u664b\u5347\u5230\u8001\u5e74\u4ee3\u4e2d<br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/72bbefd1710f118f67708dc6ee2b77aa.png#align=left&amp;display=inline&amp;height=315&amp;originHeight=467&amp;originWidth=1492&amp;size=0&amp;status=done&amp;style=none&amp;width=1006\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/72bbefd1710f118f67708dc6ee2b77aa.png#align=left&amp;display=inline&amp;height=315&amp;originHeight=467&amp;originWidth=1492&amp;size=0&amp;status=done&amp;style=none&amp;width=1006\" alt=\"\"><\/noscript><br \/> \u5173\u4e8e\u5783\u573e\u56de\u6536\uff1a\u9891\u7e41\u5728\u65b0\u751f\u533a\u6536\u96c6\uff0c\u5f88\u5c11\u5728\u517b\u8001\u533a\u6536\u96c6\uff0c\u51e0\u4e4e\u4e0d\u5728\u6c38\u4e45\u533a\/\u5143\u7a7a\u95f4\u6536\u96c6\u3002<\/p>\n<h3><a id=\"_2463\"><\/a>\u7279\u6b8a\u60c5\u51b5\u8bf4\u660e<\/h3>\n<p><strong>\u5bf9\u8c61\u5206\u914d\u7684\u7279\u6b8a\u60c5\u51b5<\/strong><\/p>\n<ol>\n<li>\n<p>\u5982\u679c\u6765\u4e86\u4e00\u4e2a\u65b0\u5bf9\u8c61\uff0c\u5148\u770b\u770b Eden \u662f\u5426\u653e\u7684\u4e0b\uff1f<\/p>\n<ul>\n<li>\n<p>\u5982\u679c Eden \u653e\u5f97\u4e0b\uff0c\u5219\u76f4\u63a5\u653e\u5230 Eden \u533a<\/p>\n<\/li>\n<li>\n<p>\u5982\u679c Eden \u653e\u4e0d\u4e0b\uff0c\u5219\u89e6\u53d1 YGC \uff0c\u6267\u884c\u5783\u573e\u56de\u6536\uff0c\u770b\u770b\u8fd8\u80fd\u4e0d\u80fd\u653e\u4e0b\uff1f<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u5c06\u5bf9\u8c61\u653e\u5230\u8001\u5e74\u533a\u53c8\u6709\u4e24\u79cd\u60c5\u51b5\uff1a<\/p>\n<ul>\n<li>\n<p>\u5982\u679c Eden \u6267\u884c\u4e86 YGC \u8fd8\u662f\u65e0\u6cd5\u653e\u4e0d\u4e0b\u8be5\u5bf9\u8c61\uff0c\u90a3\u6ca1\u5f97\u529e\u6cd5\uff0c\u53ea\u80fd\u8bf4\u660e\u662f\u8d85\u5927\u5bf9\u8c61\uff0c\u53ea\u80fd\u76f4\u63a5\u653e\u5230\u8001\u5e74\u4ee3<\/p>\n<\/li>\n<li>\n<p>\u90a3\u4e07\u4e00\u8001\u5e74\u4ee3\u90fd\u653e\u4e0d\u4e0b\uff0c\u5219\u5148\u89e6\u53d1FullGC \uff0c\u518d\u770b\u770b\u80fd\u4e0d\u80fd\u653e\u4e0b\uff0c\u653e\u5f97\u4e0b\u6700\u597d\uff0c\u4f46\u5982\u679c\u8fd8\u662f\u653e\u4e0d\u4e0b\uff0c\u90a3\u53ea\u80fd\u62a5 OOM<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u5982\u679c Eden \u533a\u6ee1\u4e86\uff0c\u5c06\u5bf9\u8c61\u5f80\u5e78\u5b58\u533a\u62f7\u8d1d\u65f6\uff0c\u53d1\u73b0\u5e78\u5b58\u533a\u653e\u4e0d\u4e0b\u5566\uff0c\u90a3\u53ea\u80fd\u4fbf\u5b9c\u4e86\u67d0\u4e9b\u65b0\u5bf9\u8c61\uff0c\u8ba9\u4ed6\u4eec\u76f4\u63a5\u664b\u5347\u81f3\u8001\u5e74\u533a<\/p>\n<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/05df1cc9e8f670f3c437905b4c5ca54c.png#align=left&amp;display=inline&amp;height=444&amp;originHeight=697&amp;originWidth=868&amp;size=0&amp;status=done&amp;style=none&amp;width=553\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/05df1cc9e8f670f3c437905b4c5ca54c.png#align=left&amp;display=inline&amp;height=444&amp;originHeight=697&amp;originWidth=868&amp;size=0&amp;status=done&amp;style=none&amp;width=553\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"_2480\"><\/a>\u5e38\u7528\u8c03\u4f18\u5de5\u5177<\/h3>\n<ol>\n<li>\n<p>JDK\u547d\u4ee4\u884c<\/p>\n<\/li>\n<li>\n<p>Eclipse\uff1aMemory Analyzer Tool<\/p>\n<\/li>\n<li>\n<p>Jconsole<\/p>\n<\/li>\n<li>\n<p>Visual VM\uff08\u5b9e\u65f6\u76d1\u63a7\uff0c\u63a8\u8350\uff09<\/p>\n<\/li>\n<li>\n<p>Jprofiler\uff08IDEA\u63d2\u4ef6\uff09<\/p>\n<\/li>\n<li>\n<p>Java Flight Recorder\uff08\u5b9e\u65f6\u76d1\u63a7\uff09<\/p>\n<\/li>\n<li>\n<p>GCViewer<\/p>\n<\/li>\n<li>\n<p>GCEasy<\/p>\n<\/li>\n<\/ol>\n<h2><a id=\"GC_2498\"><\/a>GC\u5206\u7c7b<\/h2>\n<ol>\n<li>\n<p>\u6211\u4eec\u90fd\u77e5\u9053\uff0cJVM\u7684\u8c03\u4f18\u7684\u4e00\u4e2a\u73af\u8282\uff0c\u4e5f\u5c31\u662f\u5783\u573e\u6536\u96c6\uff0c\u6211\u4eec\u9700\u8981\u5c3d\u91cf\u7684\u907f\u514d\u5783\u573e\u56de\u6536\uff0c\u56e0\u4e3a\u5728\u5783\u573e\u56de\u6536\u7684\u8fc7\u7a0b\u4e2d\uff0c\u5bb9\u6613\u51fa\u73b0STW\uff08Stop the World\uff09\u7684\u95ee\u9898\uff0c<strong>\u800c Major GC \u548c Full GC\u51fa\u73b0STW\u7684\u65f6\u95f4\uff0c\u662fMinor GC\u768410\u500d\u4ee5\u4e0a<\/strong><\/p>\n<\/li>\n<li>\n<p>JVM\u5728\u8fdb\u884cGC\u65f6\uff0c\u5e76\u975e\u6bcf\u6b21\u90fd\u5bf9\u4e0a\u9762\u4e09\u4e2a\u5185\u5b58\u533a\u57df\u4e00\u8d77\u56de\u6536\u7684\uff0c\u5927\u90e8\u5206\u65f6\u5019\u56de\u6536\u7684\u90fd\u662f\u6307\u65b0\u751f\u4ee3\u3002\u9488\u5bf9Hotspot VM\u7684\u5b9e\u73b0\uff0c\u5b83\u91cc\u9762\u7684GC\u6309\u7167\u56de\u6536\u533a\u57df\u53c8\u5206\u4e3a\u4e24\u5927\u79cd\u7c7b\u578b\uff1a\u4e00\u79cd\u662f\u90e8\u5206\u6536\u96c6\uff08Partial GC\uff09\uff0c\u4e00\u79cd\u662f\u6574\u5806\u6536\u96c6\uff08FullGC\uff09<\/p>\n<\/li>\n<\/ol>\n<ul>\n<li>\n<p>\u90e8\u5206\u6536\u96c6\uff1a\u4e0d\u662f\u5b8c\u6574\u6536\u96c6\u6574\u4e2aJava\u5806\u7684\u5783\u573e\u6536\u96c6\u3002\u5176\u4e2d\u53c8\u5206\u4e3a\uff1a<\/p>\n<ul>\n<li>\n<p><strong>\u65b0\u751f\u4ee3\u6536\u96c6<\/strong>\uff08Minor GC\/Young GC\uff09\uff1a\u53ea\u662f\u65b0\u751f\u4ee3\uff08Eden\uff0cs0\uff0cs1\uff09\u7684\u5783\u573e\u6536\u96c6<\/p>\n<\/li>\n<li>\n<p><strong>\u8001\u5e74\u4ee3\u6536\u96c6<\/strong>\uff08Major GC\/Old GC\uff09\uff1a\u53ea\u662f\u8001\u5e74\u4ee3\u7684\u573e\u6536\u96c6\u3002<\/p>\n<\/li>\n<li>\n<p>\u76ee\u524d\uff0c\u53ea\u6709CMS GC\u4f1a\u6709\u5355\u72ec\u6536\u96c6\u8001\u5e74\u4ee3\u7684\u884c\u4e3a\u3002<\/p>\n<\/li>\n<li>\n<p>\u6ce8\u610f\uff0c\u5f88\u591a\u65f6\u5019Major GC\u4f1a\u548cFull GC\u6df7\u6dc6\u4f7f\u7528\uff0c\u9700\u8981\u5177\u4f53\u5206\u8fa8\u662f\u8001\u5e74\u4ee3\u56de\u6536\u8fd8\u662f\u6574\u5806\u56de\u6536\u3002<\/p>\n<\/li>\n<li>\n<p>\u6df7\u5408\u6536\u96c6\uff08Mixed GC\uff09\uff1a\u6536\u96c6\u6574\u4e2a\u65b0\u751f\u4ee3\u4ee5\u53ca\u90e8\u5206\u8001\u5e74\u4ee3\u7684\u5783\u573e\u6536\u96c6\u3002\u76ee\u524d\uff0c\u53ea\u6709G1 GC\u4f1a\u6709\u8fd9\u79cd\u884c\u4e3a<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u6574\u5806\u6536\u96c6<\/strong>\uff08Full GC\uff09\uff1a\u6536\u96c6\u6574\u4e2ajava\u5806\u548c\u65b9\u6cd5\u533a\u7684\u5783\u573e\u6536\u96c6\u3002<\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p>\u7531\u4e8e\u5386\u53f2\u539f\u56e0\uff0c\u5916\u754c\u5404\u79cd\u89e3\u8bfb\uff0cmajorGC\u548cFull GC\u6709\u4e9b\u6df7\u6dc6\u3002<\/p>\n<\/blockquote>\n<h3><a id=\"Young_GC_2519\"><\/a>Young GC<\/h3>\n<p><strong>\u5e74\u8f7b\u4ee3 GC\uff08Minor GC\uff09\u89e6\u53d1\u673a\u5236<\/strong><\/p>\n<ol>\n<li>\n<p>\u5f53\u5e74\u8f7b\u4ee3\u7a7a\u95f4\u4e0d\u8db3\u65f6\uff0c\u5c31\u4f1a\u89e6\u53d1Minor GC\uff0c\u8fd9\u91cc\u7684\u5e74\u8f7b\u4ee3\u6ee1\u6307\u7684\u662fEden\u4ee3\u6ee1\u3002Survivor\u6ee1\u4e0d\u4f1a\u4e3b\u52a8\u5f15\u53d1GC\uff0c\u5728Eden\u533a\u6ee1\u7684\u65f6\u5019\uff0c\u4f1a\u987a\u5e26\u89e6\u53d1s0\u533a\u7684GC\uff0c\u4e5f\u5c31\u662f\u88ab\u52a8\u89e6\u53d1GC\uff08\u6bcf\u6b21Minor GC\u4f1a\u6e05\u7406\u5e74\u8f7b\u4ee3\u7684\u5185\u5b58\uff09<\/p>\n<\/li>\n<li>\n<p>\u56e0\u4e3aJava\u5bf9\u8c61\u5927\u591a\u90fd\u5177\u5907\u671d\u751f\u5915\u706d\u7684\u7279\u6027\uff0c\u6240\u4ee5Minor GC\u975e\u5e38\u9891\u7e41\uff0c\u4e00\u822c\u56de\u6536\u901f\u5ea6\u4e5f\u6bd4\u8f83\u5feb\u3002\u8fd9\u4e00\u5b9a\u4e49\u65e2\u6e05\u6670\u53c8\u6613\u4e8e\u7406\u89e3\u3002<\/p>\n<\/li>\n<li>\n<p>Minor GC\u4f1a\u5f15\u53d1STW\uff08Stop The World\uff09\uff0c\u6682\u505c\u5176\u5b83\u7528\u6237\u7684\u7ebf\u7a0b\uff0c\u7b49\u5783\u573e\u56de\u6536\u7ed3\u675f\uff0c\u7528\u6237\u7ebf\u7a0b\u624d\u6062\u590d\u8fd0\u884c<\/p>\n<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/6042a511a4ec9abf0929acd1a232864f.png#align=left&amp;display=inline&amp;height=438&amp;originHeight=775&amp;originWidth=1212&amp;size=0&amp;status=done&amp;style=none&amp;width=685\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/6042a511a4ec9abf0929acd1a232864f.png#align=left&amp;display=inline&amp;height=438&amp;originHeight=775&amp;originWidth=1212&amp;size=0&amp;status=done&amp;style=none&amp;width=685\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"MajorFull_GC_2530\"><\/a>Major\/Full GC<\/h3>\n<blockquote>\n<p>Full GC\u6709\u4e89\u8bae\uff0c\u540e\u7eed\u8be6\u89e3\u4e24\u8005\u533a\u522b\uff0c\u6682\u65f6\u5148\u770b\u7740<\/p>\n<\/blockquote>\n<p><strong>\u8001\u5e74\u4ee3GC\uff08MajorGC\uff09\u89e6\u53d1\u673a\u5236<\/strong><\/p>\n<ol>\n<li>\n<p>\u6307\u53d1\u751f\u5728\u8001\u5e74\u4ee3\u7684GC\uff0c\u5bf9\u8c61\u4ece\u8001\u5e74\u4ee3\u6d88\u5931\u65f6\uff0c\u6211\u4eec\u8bf4 \u201cMajor Gc\u201d \u6216 \u201cFull GC\u201d \u53d1\u751f\u4e86<\/p>\n<\/li>\n<li>\n<p>\u51fa\u73b0\u4e86MajorGc\uff0c\u7ecf\u5e38\u4f1a\u4f34\u968f\u81f3\u5c11\u4e00\u6b21\u7684Minor GC\u3002\uff08\u4f46\u975e\u7edd\u5bf9\u7684\uff0c\u5728Parallel Scavenge\u6536\u96c6\u5668\u7684\u6536\u96c6\u7b56\u7565\u91cc\u5c31\u6709\u76f4\u63a5\u8fdb\u884cMajorGC\u7684\u7b56\u7565\u9009\u62e9\u8fc7\u7a0b\uff09<\/p>\n<ul>\n<li>\u4e5f\u5c31\u662f\u5728\u8001\u5e74\u4ee3\u7a7a\u95f4\u4e0d\u8db3\u65f6\uff0c\u4f1a\u5148\u5c1d\u8bd5\u89e6\u53d1Minor GC\uff08\u54c8\uff1f\u6211\u6709\u70b9\u8ff7\uff1f\uff09\uff0c\u5982\u679c\u4e4b\u540e\u7a7a\u95f4\u8fd8\u4e0d\u8db3\uff0c\u5219\u89e6\u53d1Major GC<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Major GC\u7684\u901f\u5ea6\u4e00\u822c\u4f1a\u6bd4Minor GC\u616210\u500d\u4ee5\u4e0a\uff0cSTW\u7684\u65f6\u95f4\u66f4\u957f\u3002<\/p>\n<\/li>\n<li>\n<p>\u5982\u679cMajor GC\u540e\uff0c\u5185\u5b58\u8fd8\u4e0d\u8db3\uff0c\u5c31\u62a5OOM\u4e86<\/p>\n<\/li>\n<\/ol>\n<p><strong>Full GC \u89e6\u53d1\u673a\u5236\uff08\u540e\u9762\u7ec6\u8bb2\uff09<\/strong><br \/> <strong>\u89e6\u53d1Full GC\u6267\u884c\u7684\u60c5\u51b5\u6709\u5982\u4e0b\u4e94\u79cd\uff1a<\/strong><\/p>\n<ol>\n<li>\n<p>\u8c03\u7528System.gc()\u65f6\uff0c\u7cfb\u7edf\u5efa\u8bae\u6267\u884cFullGC\uff0c\u4f46\u662f\u4e0d\u5fc5\u7136\u6267\u884c<\/p>\n<\/li>\n<li>\n<p>\u8001\u5e74\u4ee3\u7a7a\u95f4\u4e0d\u8db3<\/p>\n<\/li>\n<li>\n<p>\u65b9\u6cd5\u533a\u7a7a\u95f4\u4e0d\u8db3<\/p>\n<\/li>\n<li>\n<p>\u901a\u8fc7Minor GC\u540e\u8fdb\u5165\u8001\u5e74\u4ee3\u7684\u5e73\u5747\u5927\u5c0f\u5927\u4e8e\u8001\u5e74\u4ee3\u7684\u53ef\u7528\u5185\u5b58<\/p>\n<\/li>\n<li>\n<p>\u7531Eden\u533a\u3001survivor space0\uff08From Space\uff09\u533a\u5411survivor space1\uff08To Space\uff09\u533a\u590d\u5236\u65f6\uff0c\u5bf9\u8c61\u5927\u5c0f\u5927\u4e8eTo Space\u53ef\u7528\u5185\u5b58\uff0c\u5219\u628a\u8be5\u5bf9\u8c61\u8f6c\u5b58\u5230\u8001\u5e74\u4ee3\uff0c\u4e14\u8001\u5e74\u4ee3\u7684\u53ef\u7528\u5185\u5b58\u5c0f\u4e8e\u8be5\u5bf9\u8c61\u5927\u5c0f<\/p>\n<\/li>\n<\/ol>\n<p>\u8bf4\u660e\uff1aFull GC \u662f\u5f00\u53d1\u6216\u8c03\u4f18\u4e2d\u5c3d\u91cf\u8981\u907f\u514d\u7684\u3002\u8fd9\u6837STW\u65f6\u95f4\u4f1a\u77ed\u4e00\u4e9b<\/p>\n<h3><a id=\"GC_2559\"><\/a>GC\u65e5\u5fd7\u5206\u6790<\/h3>\n<p>\u8f93\u51fa\uff1a<br \/> [GC (Allocation Failure) [PSYoungGen: 2037K-&gt;504K(2560K)] 2037K-&gt;728K(9728K), 0.0455865 secs] [Times: user=0.00 sys=0.00, real=0.06 secs]<br \/> [GC (Allocation Failure) [PSYoungGen: 2246K-&gt;496K(2560K)] 2470K-&gt;1506K(9728K), 0.0009094 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]<br \/> [GC (Allocation Failure) [PSYoungGen: 2294K-&gt;488K(2560K)] 3305K-&gt;2210K(9728K), 0.0009568 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]<br \/> [GC (Allocation Failure) [PSYoungGen: 1231K-&gt;488K(2560K)] 7177K-&gt;6434K(9728K), 0.0005594 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]<br \/> [GC (Allocation Failure) [PSYoungGen: 488K-&gt;472K(2560K)] 6434K-&gt;6418K(9728K), 0.0005890 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]<br \/> [Full GC (Allocation Failure) [PSYoungGen: 472K-&gt;0K(2560K)] [ParOldGen: 5946K-&gt;4944K(7168K)] 6418K-&gt;4944K(9728K), [Metaspace: 3492K-&gt;3492K(1056768K)], 0.0045270 secs] [Times: user=0.00 sys=0.00, real=0.01 secs]<br \/> [GC (Allocation Failure) [PSYoungGen: 0K-&gt;0K(1536K)] 4944K-&gt;4944K(8704K), 0.0004954 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]<br \/> [Full GC (Allocation Failure) java.lang.OutOfMemoryError: Java heap space<br \/> at java.util.Arrays.copyOf(Arrays.java:3332)<br \/> at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)<br \/> at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448)<br \/> at java.lang.StringBuilder.append(StringBuilder.java:136)<br \/> at com.atguigu.java1.GCTest.main(GCTest.java:20)<br \/> [PSYoungGen: 0K-&gt;0K(1536K)] [ParOldGen: 4944K-&gt;4877K(7168K)] 4944K-&gt;4877K(8704K), [Metaspace: 3492K-&gt;3492K(1056768K)], 0.0076061 secs] [Times: user=0.00 sys=0.02, real=0.01 secs]<br \/> \u904d\u5386\u6b21\u6570\u4e3a\uff1a16<br \/> Heap<br \/> PSYoungGen total 1536K, used 60K [0x00000000ffd00000, 0x0000000100000000, 0x0000000100000000)<br \/> eden space 1024K, 5% used [0x00000000ffd00000,0x00000000ffd0f058,0x00000000ffe00000)<br \/> from space 512K, 0% used [0x00000000fff80000,0x00000000fff80000,0x0000000100000000)<br \/> to space 1024K, 0% used [0x00000000ffe00000,0x00000000ffe00000,0x00000000fff00000)<br \/> ParOldGen total 7168K, used 4877K [0x00000000ff600000, 0x00000000ffd00000, 0x00000000ffd00000)<br \/> object space 7168K, 68% used [0x00000000ff600000,0x00000000ffac3408,0x00000000ffd00000)<br \/> Metaspace used 3525K, capacity 4502K, committed 4864K, reserved 1056768K<br \/> class space used 391K, capacity 394K, committed 512K, reserved 1048576K<br \/> [GC (Allocation Failure) [PSYoungGen: 2037K-&gt;504K(2560K)] 2037K-&gt;728K(9728K), 0.0455865 secs] [Times: user=0.00 sys=0.00, real=0.06 secs]<\/p>\n<ul>\n<li>\n<p>[PSYoungGen: 2037K-&gt;504K(2560K)]\uff1a\u5e74\u8f7b\u4ee3\u603b\u7a7a\u95f4\u4e3a 2560K \uff0c\u5f53\u524d\u5360\u7528 2037K \uff0c\u7ecf\u8fc7\u5783\u573e\u56de\u6536\u540e\u5269\u4f59504K<\/p>\n<\/li>\n<li>\n<p>2037K-&gt;728K(9728K)\uff1a\u5806\u5185\u5b58\u603b\u7a7a\u95f4\u4e3a 9728K \uff0c\u5f53\u524d\u5360\u75282037K \uff0c\u7ecf\u8fc7\u5783\u573e\u56de\u6536\u540e\u5269\u4f59728K<\/p>\n<\/li>\n<\/ul>\n<h2><a id=\"_2591\"><\/a>\u5806\u7a7a\u95f4\u5206\u4ee3\u601d\u60f3<\/h2>\n<p>\u4e3a\u4ec0\u4e48\u8981\u628aJava\u5806\u5206\u4ee3\uff1f\u4e0d\u5206\u4ee3\u5c31\u4e0d\u80fd\u6b63\u5e38\u5de5\u4f5c\u4e86\u5417\uff1f\u7ecf\u7814\u7a76\uff0c\u4e0d\u540c\u5bf9\u8c61\u7684\u751f\u547d\u5468\u671f\u4e0d\u540c\u300270%-99%\u7684\u5bf9\u8c61\u662f\u4e34\u65f6\u5bf9\u8c61\u3002<\/p>\n<ul>\n<li>\n<p>\u65b0\u751f\u4ee3\uff1a\u6709Eden\u3001\u4e24\u5757\u5927\u5c0f\u76f8\u540c\u7684survivor\uff08\u53c8\u79f0\u4e3afrom\/to\u6216s0\/s1\uff09\u6784\u6210\uff0cto\u603b\u4e3a\u7a7a\u3002<\/p>\n<\/li>\n<li>\n<p>\u8001\u5e74\u4ee3\uff1a\u5b58\u653e\u65b0\u751f\u4ee3\u4e2d\u7ecf\u5386\u591a\u6b21GC\u4ecd\u7136\u5b58\u6d3b\u7684\u5bf9\u8c61\u3002<\/p>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/ddb6044c05dabbfed0fcc6bce9bb87b9.png#align=left&amp;display=inline&amp;height=272&amp;originHeight=272&amp;originWidth=1071&amp;size=0&amp;status=done&amp;style=none&amp;width=1071\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/ddb6044c05dabbfed0fcc6bce9bb87b9.png#align=left&amp;display=inline&amp;height=272&amp;originHeight=272&amp;originWidth=1071&amp;size=0&amp;status=done&amp;style=none&amp;width=1071\" alt=\"\"><\/noscript><br \/> \u5176\u5b9e\u4e0d\u5206\u4ee3\u5b8c\u5168\u53ef\u4ee5\uff0c\u5206\u4ee3\u7684\u552f\u4e00\u7406\u7531\u5c31\u662f\u4f18\u5316GC\u6027\u80fd\u3002<\/p>\n<ul>\n<li>\n<p>\u5982\u679c\u6ca1\u6709\u5206\u4ee3\uff0c\u90a3\u6240\u6709\u7684\u5bf9\u8c61\u90fd\u5728\u4e00\u5757\uff0c\u5c31\u5982\u540c\u628a\u4e00\u4e2a\u5b66\u6821\u7684\u4eba\u90fd\u5173\u5728\u4e00\u4e2a\u6559\u5ba4\u3002GC\u7684\u65f6\u5019\u8981\u627e\u5230\u54ea\u4e9b\u5bf9\u8c61\u6ca1\u7528\uff0c\u8fd9\u6837\u5c31\u4f1a\u5bf9\u5806\u7684\u6240\u6709\u533a\u57df\u8fdb\u884c\u626b\u63cf\u3002\uff08\u6027\u80fd\u4f4e\uff09<\/p>\n<\/li>\n<li>\n<p>\u800c\u5f88\u591a\u5bf9\u8c61\u90fd\u662f\u671d\u751f\u5915\u6b7b\u7684\uff0c\u5982\u679c\u5206\u4ee3\u7684\u8bdd\uff0c\u628a\u65b0\u521b\u5efa\u7684\u5bf9\u8c61\u653e\u5230\u67d0\u4e00\u5730\u65b9\uff0c\u5f53GC\u7684\u65f6\u5019\u5148\u628a\u8fd9\u5757\u5b58\u50a8\u201c\u671d\u751f\u5915\u6b7b\u201d\u5bf9\u8c61\u7684\u533a\u57df\u8fdb\u884c\u56de\u6536\uff0c\u8fd9\u6837\u5c31\u4f1a\u817e\u51fa\u5f88\u5927\u7684\u7a7a\u95f4\u51fa\u6765\u3002\uff08\u591a\u56de\u6536\u65b0\u751f\u4ee3\uff0c\u5c11\u56de\u6536\u8001\u5e74\u4ee3\uff0c\u6027\u80fd\u4f1a\u63d0\u9ad8\u5f88\u591a\uff09<\/p>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/98a2770f38d48486ac62b293228c7017.png#align=left&amp;display=inline&amp;height=338&amp;originHeight=338&amp;originWidth=936&amp;size=0&amp;status=done&amp;style=none&amp;width=936\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/98a2770f38d48486ac62b293228c7017.png#align=left&amp;display=inline&amp;height=338&amp;originHeight=338&amp;originWidth=936&amp;size=0&amp;status=done&amp;style=none&amp;width=936\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"_2608\"><\/a>\u5bf9\u8c61\u5185\u5b58\u5206\u914d\u7b56\u7565<\/h2>\n<ol>\n<li>\n<p>\u5982\u679c\u5bf9\u8c61\u5728Eden\u51fa\u751f\u5e76\u7ecf\u8fc7\u7b2c\u4e00\u6b21Minor GC\u540e\u4ecd\u7136\u5b58\u6d3b\uff0c\u5e76\u4e14\u80fd\u88abSurvivor\u5bb9\u7eb3\u7684\u8bdd\uff0c\u5c06\u88ab\u79fb\u52a8\u5230Survivor\u7a7a\u95f4\u4e2d\uff0c\u5e76\u5c06\u5bf9\u8c61\u5e74\u9f84\u8bbe\u4e3a1\u3002<\/p>\n<\/li>\n<li>\n<p>\u5bf9\u8c61\u5728Survivor\u533a\u4e2d\u6bcf\u71ac\u8fc7\u4e00\u6b21MinorGC\uff0c\u5e74\u9f84\u5c31\u589e\u52a01\u5c81\uff0c\u5f53\u5b83\u7684\u5e74\u9f84\u589e\u52a0\u5230\u4e00\u5b9a\u7a0b\u5ea6\uff08\u9ed8\u8ba4\u4e3a15\u5c81\uff0c\u5176\u5b9e\u6bcf\u4e2aJVM\u3001\u6bcf\u4e2aGC\u90fd\u6709\u6240\u4e0d\u540c\uff09\u65f6\uff0c\u5c31\u4f1a\u88ab\u664b\u5347\u5230\u8001\u5e74\u4ee3<\/p>\n<\/li>\n<li>\n<p>\u5bf9\u8c61\u664b\u5347\u8001\u5e74\u4ee3\u7684\u5e74\u9f84\u9600\u503c\uff0c\u53ef\u4ee5\u901a\u8fc7\u9009\u9879**-XX:MaxTenuringThreshold**\u6765\u8bbe\u7f6e<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u9488\u5bf9\u4e0d\u540c\u5e74\u9f84\u6bb5\u7684\u5bf9\u8c61\u5206\u914d\u539f\u5219\u5982\u4e0b\u6240\u793a\uff1a<\/strong><\/p>\n<ol>\n<li>\n<p><strong>\u4f18\u5148\u5206\u914d\u5230Eden<\/strong>\uff1a\u5f00\u53d1\u4e2d\u6bd4\u8f83\u957f\u7684\u5b57\u7b26\u4e32\u6216\u8005\u6570\u7ec4\uff0c\u4f1a\u76f4\u63a5\u5b58\u5728\u8001\u5e74\u4ee3\uff0c\u4f46\u662f\u56e0\u4e3a\u65b0\u521b\u5efa\u7684\u5bf9\u8c61\u90fd\u662f\u671d\u751f\u5915\u6b7b\u7684\uff0c\u6240\u4ee5\u8fd9\u4e2a\u5927\u5bf9\u8c61\u53ef\u80fd\u4e5f\u5f88\u5feb\u88ab\u56de\u6536\uff0c\u4f46\u662f\u56e0\u4e3a\u8001\u5e74\u4ee3\u89e6\u53d1Major GC\u7684\u6b21\u6570\u6bd4 Minor GC\u8981\u66f4\u5c11\uff0c\u56e0\u6b64\u53ef\u80fd\u56de\u6536\u8d77\u6765\u5c31\u4f1a\u6bd4\u8f83\u6162<\/p>\n<\/li>\n<li>\n<p><strong>\u5927\u5bf9\u8c61\u76f4\u63a5\u5206\u914d\u5230\u8001\u5e74\u4ee3<\/strong>\uff1a\u5c3d\u91cf\u907f\u514d\u7a0b\u5e8f\u4e2d\u51fa\u73b0\u8fc7\u591a\u7684\u5927\u5bf9\u8c61<\/p>\n<\/li>\n<li>\n<p><strong>\u957f\u671f\u5b58\u6d3b\u7684\u5bf9\u8c61\u5206\u914d\u5230\u8001\u5e74\u4ee3<\/strong><\/p>\n<\/li>\n<li>\n<p><strong>\u52a8\u6001\u5bf9\u8c61\u5e74\u9f84\u5224\u65ad<\/strong>\uff1a\u5982\u679cSurvivor\u533a\u4e2d\u76f8\u540c\u5e74\u9f84\u7684\u6240\u6709\u5bf9\u8c61\u5927\u5c0f\u7684\u603b\u548c\u5927\u4e8eSurvivor\u7a7a\u95f4\u7684\u4e00\u534a\uff0c\u5e74\u9f84\u5927\u4e8e\u6216\u7b49\u4e8e\u8be5\u5e74\u9f84\u7684\u5bf9\u8c61\u53ef\u4ee5\u76f4\u63a5\u8fdb\u5165\u8001\u5e74\u4ee3\uff0c\u65e0\u987b\u7b49\u5230MaxTenuringThreshold\u4e2d\u8981\u6c42\u7684\u5e74\u9f84\u3002<\/p>\n<\/li>\n<li>\n<p><strong>\u7a7a\u95f4\u5206\u914d\u62c5\u4fdd<\/strong>\uff1a -XX:HandlePromotionFailure \u3002<\/p>\n<\/li>\n<\/ol>\n<blockquote>\n<p>\u4e00\u4e9b\u7ec6\u8282\u653e\u5728\u540e\u9762\u8bf4<\/p>\n<\/blockquote>\n<h2><a id=\"TLAB_2631\"><\/a>TLAB\u4e3a\u5bf9\u8c61\u5206\u914d\u5185\u5b58\uff08\u4fdd\u8bc1\u7ebf\u7a0b\u5b89\u5168\uff09<\/h2>\n<h3><a id=\"_TLAB_2632\"><\/a>\u4e3a\u4ec0\u4e48\u6709 TLAB<\/h3>\n<ol start=\"2\">\n<li>\n<p>\u5806\u533a\u662f\u7ebf\u7a0b\u5171\u4eab\u533a\u57df\uff0c\u4efb\u4f55\u7ebf\u7a0b\u90fd\u53ef\u4ee5\u8bbf\u95ee\u5230\u5806\u533a\u4e2d\u7684\u5171\u4eab\u6570\u636e<\/p>\n<\/li>\n<li>\n<p>\u7531\u4e8e\u5bf9\u8c61\u5b9e\u4f8b\u7684\u521b\u5efa\u5728JVM\u4e2d\u975e\u5e38\u9891\u7e41\uff0c\u56e0\u6b64\u5728\u5e76\u53d1\u73af\u5883\u4e0b\u4ece\u5806\u533a\u4e2d\u5212\u5206\u5185\u5b58\u7a7a\u95f4\u662f\u7ebf\u7a0b\u4e0d\u5b89\u5168\u7684<\/p>\n<\/li>\n<li>\n<p>\u4e3a\u907f\u514d\u591a\u4e2a\u7ebf\u7a0b\u64cd\u4f5c\u540c\u4e00\u5730\u5740\uff0c\u9700\u8981\u4f7f\u7528<strong>\u52a0\u9501\u7b49\u673a\u5236<\/strong>\uff0c\u8fdb\u800c\u5f71\u54cd\u5206\u914d\u901f\u5ea6\u3002<\/p>\n<\/li>\n<\/ol>\n<h3><a id=\"_TLAB_2640\"><\/a>\u4ec0\u4e48\u662f TLAB<\/h3>\n<p>TLAB\uff08Thread Local Allocation Buffer\uff09<\/p>\n<ol>\n<li>\n<p>\u4ece\u5185\u5b58\u6a21\u578b\u800c\u4e0d\u662f\u5783\u573e\u6536\u96c6\u7684\u89d2\u5ea6\uff0c\u5bf9Eden\u533a\u57df\u7ee7\u7eed\u8fdb\u884c\u5212\u5206\uff0c<strong>JVM\u4e3a\u6bcf\u4e2a\u7ebf\u7a0b\u5206\u914d\u4e86\u4e00\u4e2a\u79c1\u6709\u7f13\u5b58\u533a\u57df\uff0c\u5b83\u5305\u542b\u5728Eden\u7a7a\u95f4\u5185<\/strong>\u3002<\/p>\n<\/li>\n<li>\n<p>\u591a\u7ebf\u7a0b\u540c\u65f6\u5206\u914d\u5185\u5b58\u65f6\uff0c\u4f7f\u7528TLAB\u53ef\u4ee5\u907f\u514d\u4e00\u7cfb\u5217\u7684\u975e\u7ebf\u7a0b\u5b89\u5168\u95ee\u9898\uff0c\u540c\u65f6\u8fd8\u80fd\u591f\u63d0\u5347\u5185\u5b58\u5206\u914d\u7684\u541e\u5410\u91cf\uff0c\u56e0\u6b64\u6211\u4eec\u53ef\u4ee5\u5c06\u8fd9\u79cd\u5185\u5b58\u5206\u914d\u65b9\u5f0f\u79f0\u4e4b\u4e3a<strong>\u5feb\u901f\u5206\u914d\u7b56\u7565<\/strong>\u3002<\/p>\n<\/li>\n<li>\n<p>\u636e\u6211\u6240\u77e5\u6240\u6709OpenJDK\u884d\u751f\u51fa\u6765\u7684JVM\u90fd\u63d0\u4f9b\u4e86TLAB\u7684\u8bbe\u8ba1\u3002<\/p>\n<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/11476f18ee71523d05c705c752dfbfc3.png#align=left&amp;display=inline&amp;height=602&amp;originHeight=602&amp;originWidth=1007&amp;size=0&amp;status=done&amp;style=none&amp;width=1007\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/11476f18ee71523d05c705c752dfbfc3.png#align=left&amp;display=inline&amp;height=602&amp;originHeight=602&amp;originWidth=1007&amp;size=0&amp;status=done&amp;style=none&amp;width=1007\" alt=\"\"><\/noscript><br \/> 1\u3001\u6bcf\u4e2a\u7ebf\u7a0b\u90fd\u6709\u4e00\u4e2aTLAB\u7a7a\u95f4<br \/> 2\u3001\u5f53\u4e00\u4e2a\u7ebf\u7a0b\u7684TLAB\u5b58\u6ee1\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528\u516c\u5171\u533a\u57df\uff08\u84dd\u8272\uff09\u7684<\/p>\n<h3><a id=\"TLAB_2653\"><\/a>TLAB\u518d\u8bf4\u660e<\/h3>\n<ol>\n<li>\n<p>\u5c3d\u7ba1\u4e0d\u662f\u6240\u6709\u7684\u5bf9\u8c61\u5b9e\u4f8b\u90fd\u80fd\u591f\u5728TLAB\u4e2d\u6210\u529f\u5206\u914d\u5185\u5b58\uff0c\u4f46<strong>JVM\u786e\u5b9e\u662f\u5c06TLAB\u4f5c\u4e3a\u5185\u5b58\u5206\u914d\u7684\u9996\u9009<\/strong>\u3002<\/p>\n<\/li>\n<li>\n<p>\u5728\u7a0b\u5e8f\u4e2d\uff0c\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u901a\u8fc7\u9009\u9879\u201c<strong>-XX:UseTLAB<\/strong>\u201d\u8bbe\u7f6e\u662f\u5426\u5f00\u542fTLAB\u7a7a\u95f4\u3002<\/p>\n<\/li>\n<li>\n<p>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cTLAB\u7a7a\u95f4\u7684\u5185\u5b58\u975e\u5e38\u5c0f\uff0c\u4ec5\u5360\u6709\u6574\u4e2aEden\u7a7a\u95f4\u76841%\uff0c\u5f53\u7136\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u9009\u9879\u201c<strong>-XX:TLABWasteTargetPercent<\/strong>\u201d\u8bbe\u7f6eTLAB\u7a7a\u95f4\u6240\u5360\u7528Eden\u7a7a\u95f4\u7684\u767e\u5206\u6bd4\u5927\u5c0f\u3002<\/p>\n<\/li>\n<li>\n<p>\u4e00\u65e6\u5bf9\u8c61\u5728TLAB\u7a7a\u95f4\u5206\u914d\u5185\u5b58\u5931\u8d25\u65f6\uff0cJVM\u5c31\u4f1a\u5c1d\u8bd5\u7740\u901a\u8fc7<strong>\u4f7f\u7528\u52a0\u9501\u673a\u5236\u786e\u4fdd\u6570\u636e\u64cd\u4f5c\u7684\u539f\u5b50\u6027<\/strong>\uff0c\u4ece\u800c\u76f4\u63a5\u5728Eden\u7a7a\u95f4\u4e2d\u5206\u914d\u5185\u5b58\u3002<\/p>\n<\/li>\n<\/ol>\n<blockquote>\n<p>1\u3001\u54ea\u4e2a\u7ebf\u7a0b\u8981\u5206\u914d\u5185\u5b58\uff0c\u5c31\u5728\u54ea\u4e2a\u7ebf\u7a0b\u7684\u672c\u5730\u7f13\u51b2\u533a\u4e2d\u5206\u914d\uff0c\u53ea\u6709\u672c\u5730\u7f13\u51b2\u533a\u7528\u5b8c \u4e86\uff0c<strong>\u5206\u914d\u65b0\u7684\u7f13\u5b58\u533a\u65f6\u624d\u9700\u8981\u540c\u6b65\u9501\u5b9a<\/strong> ----\u8fd9\u662f\u300a\u6df1\u5165\u7406\u89e3JVM\u300b\u2013\u7b2c\u4e09\u7248\u91cc\u8bf4\u7684<br \/> 2\u3001\u548c\u8fd9\u91cc\u8bb2\u7684\u6709\u70b9\u4e0d\u540c\u3002\u6211\u731c\u6d4b\u8bf4\u7684\u610f\u601d\u662f\u67d0\u4e00\u6b21\u5206\u914d\uff0c\u5982\u679cTLAB\u7528\u5b8c\u4e86\uff0c\u90a3\u4e48<strong>\u8fd9\u4e00\u6b21<\/strong>\u5148\u5728Eden\u533a\u76f4\u63a5\u5206\u914d\u3002\u7a7a\u95f2\u4e0b\u6765\u540e\u518d\u52a0\u9501\u5206\u914d\u65b0\u7684TLAB\uff08TLAB\u5185\u5b58\u8f83\u5927\uff0c\u5206\u914d\u65f6\u95f4\u5e94\u8be5\u8f83\u957f\uff09<\/p>\n<\/blockquote>\n<p><strong>TLAB \u5206\u914d\u8fc7\u7a0b<\/strong><br \/> <img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f91c9c903cebda0f1ad0b6fc630b260d.png#align=left&amp;display=inline&amp;height=601&amp;originHeight=601&amp;originWidth=1174&amp;size=0&amp;status=done&amp;style=none&amp;width=1174\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f91c9c903cebda0f1ad0b6fc630b260d.png#align=left&amp;display=inline&amp;height=601&amp;originHeight=601&amp;originWidth=1174&amp;size=0&amp;status=done&amp;style=none&amp;width=1174\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"_2668\"><\/a>\u5806\u7a7a\u95f4\u53c2\u6570\u8bbe\u7f6e<\/h2>\n<h3><a id=\"_2669\"><\/a>\u5e38\u7528\u53c2\u6570\u8bbe\u7f6e<\/h3>\n<blockquote>\n<p><strong>\u5b98\u65b9\u6587\u6863<\/strong>\uff1a<a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/technotes\/tools\/unix\/java.html\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/docs.oracle.com\/javase\/8\/docs\/technotes\/tools\/unix\/java.html<\/a><br \/> \u6211\u4eec\u53ea\u8bf4\u5e38\u7528\u7684<\/p>\n<\/blockquote>\n<p>\/**<\/p>\n<ul>\n<li>\u6d4b\u8bd5\u5806\u7a7a\u95f4\u5e38\u7528\u7684jvm\u53c2\u6570\uff1a<\/li>\n<li>-XX:+PrintFlagsInitial : \u67e5\u770b\u6240\u6709\u7684\u53c2\u6570\u7684\u9ed8\u8ba4\u521d\u59cb\u503c<\/li>\n<li>-XX:+PrintFlagsFinal \uff1a\u67e5\u770b\u6240\u6709\u7684\u53c2\u6570\u7684\u6700\u7ec8\u503c\uff08\u53ef\u80fd\u4f1a\u5b58\u5728\u4fee\u6539\uff0c\u4e0d\u518d\u662f\u521d\u59cb\u503c\uff09<\/li>\n<li>\n<pre><code> \u5177\u4f53\u67e5\u770b\u67d0\u4e2a\u53c2\u6570\u7684\u6307\u4ee4\uff1a jps\uff1a\u67e5\u770b\u5f53\u524d\u8fd0\u884c\u4e2d\u7684\u8fdb\u7a0b\n<\/code><\/pre>\n<\/li>\n<li>\n<pre><code>                        jinfo -flag SurvivorRatio \u8fdb\u7a0bid\n<\/code><\/pre>\n<\/li>\n<li><\/li>\n<li>-Xms\uff1a\u521d\u59cb\u5806\u7a7a\u95f4\u5185\u5b58 \uff08\u9ed8\u8ba4\u4e3a\u7269\u7406\u5185\u5b58\u76841\/64\uff09<\/li>\n<li>-Xmx\uff1a\u6700\u5927\u5806\u7a7a\u95f4\u5185\u5b58\uff08\u9ed8\u8ba4\u4e3a\u7269\u7406\u5185\u5b58\u76841\/4\uff09<\/li>\n<li>-Xmn\uff1a\u8bbe\u7f6e\u65b0\u751f\u4ee3\u7684\u5927\u5c0f\u3002(\u521d\u59cb\u503c\u53ca\u6700\u5927\u503c)<\/li>\n<li>-XX:NewRatio\uff1a\u914d\u7f6e\u65b0\u751f\u4ee3\u4e0e\u8001\u5e74\u4ee3\u5728\u5806\u7ed3\u6784\u7684\u5360\u6bd4<\/li>\n<li>-XX:SurvivorRatio\uff1a\u8bbe\u7f6e\u65b0\u751f\u4ee3\u4e2dEden\u548cS0\/S1\u7a7a\u95f4\u7684\u6bd4\u4f8b<\/li>\n<li>-XX:MaxTenuringThreshold\uff1a\u8bbe\u7f6e\u65b0\u751f\u4ee3\u5783\u573e\u7684\u6700\u5927\u5e74\u9f84<\/li>\n<li>-XX:+PrintGCDetails\uff1a\u8f93\u51fa\u8be6\u7ec6\u7684GC\u5904\u7406\u65e5\u5fd7<\/li>\n<li>\u6253\u5370gc\u7b80\u8981\u4fe1\u606f\uff1a\u2460 -XX:+PrintGC \u2461 -verbose:gc<\/li>\n<li>-XX:HandlePromotionFailure\uff1a\u662f\u5426\u8bbe\u7f6e\u7a7a\u95f4\u5206\u914d\u62c5\u4fdd<br \/> *\/<\/li>\n<\/ul>\n<h3><a id=\"_2690\"><\/a>\u7a7a\u95f4\u5206\u914d\u62c5\u4fdd<\/h3>\n<p>1\u3001\u5728\u53d1\u751fMinor GC\u4e4b\u524d\uff0c\u865a\u62df\u673a\u4f1a\u68c0\u67e5\u8001\u5e74\u4ee3\u6700\u5927\u53ef\u7528\u7684\u8fde\u7eed\u7a7a\u95f4\u662f\u5426\u5927\u4e8e\u65b0\u751f\u4ee3\u6240\u6709\u5bf9\u8c61\u7684\u603b\u7a7a\u95f4\u3002<\/p>\n<ul>\n<li>\n<p>\u5982\u679c\u5927\u4e8e\uff0c\u5219\u6b64\u6b21Minor GC\u662f\u5b89\u5168\u7684<\/p>\n<\/li>\n<li>\n<p>\u5982\u679c\u5c0f\u4e8e\uff0c\u5219\u865a\u62df\u673a\u4f1a\u67e5\u770b**-XX:HandlePromotionFailure**\u8bbe\u7f6e\u503c\u662f\u5426\u5141\u62c5\u4fdd\u5931\u8d25\u3002<\/p>\n<ul>\n<li>\n<p>\u5982\u679cHandlePromotionFailure=true\uff0c\u90a3\u4e48\u4f1a\u7ee7\u7eed\u68c0\u67e5<strong>\u8001\u5e74\u4ee3\u6700\u5927\u53ef\u7528\u8fde\u7eed\u7a7a\u95f4\u662f\u5426\u5927\u4e8e\u5386\u6b21\u664b\u5347\u5230\u8001\u5e74\u4ee3\u7684\u5bf9\u8c61\u7684\u5e73\u5747\u5927\u5c0f<\/strong>\u3002<\/p>\n<ul>\n<li>\n<p>\u5982\u679c\u5927\u4e8e\uff0c\u5219\u5c1d\u8bd5\u8fdb\u884c\u4e00\u6b21Minor GC\uff0c\u4f46\u8fd9\u6b21Minor GC\u4f9d\u7136\u662f\u6709\u98ce\u9669\u7684\uff1b<\/p>\n<\/li>\n<li>\n<p>\u5982\u679c\u5c0f\u4e8e\uff0c\u5219\u8fdb\u884c\u4e00\u6b21Full GC\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u5982\u679cHandlePromotionFailure=false\uff0c\u5219\u8fdb\u884c\u4e00\u6b21Full GC\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>\u5386\u53f2\u7248\u672c<\/strong><\/p>\n<ol>\n<li>\n<p>\u5728JDK6 Update 24\u4e4b\u540e\uff0cHandlePromotionFailure\u53c2\u6570\u4e0d\u4f1a\u518d\u5f71\u54cd\u5230\u865a\u62df\u673a\u7684\u7a7a\u95f4\u5206\u914d\u62c5\u4fdd\u7b56\u7565\uff0c\u89c2\u5bdfopenJDK\u4e2d\u7684\u6e90\u7801\u53d8\u5316\uff0c\u867d\u7136\u6e90\u7801\u4e2d\u8fd8\u5b9a\u4e49\u4e86HandlePromotionFailure\u53c2\u6570\uff0c\u4f46\u662f\u5728\u4ee3\u7801\u4e2d\u5df2\u7ecf\u4e0d\u4f1a\u518d\u4f7f\u7528\u5b83\u3002<\/p>\n<\/li>\n<li>\n<p>JDK6 Update 24\u4e4b\u540e\u7684\u89c4\u5219\u53d8\u4e3a<strong>\u53ea\u8981\u8001\u5e74\u4ee3\u7684\u8fde\u7eed\u7a7a\u95f4\u5927\u4e8e\u65b0\u751f\u4ee3\u5bf9\u8c61\u603b\u5927\u5c0f\u6216\u8005\u5386\u6b21\u664b\u5347\u7684\u5e73\u5747\u5927\u5c0f\u5c31\u4f1a\u8fdb\u884cMinor GC<\/strong>\uff0c\u5426\u5219\u5c06\u8fdb\u884cFull GC\u3002\u5373 HandlePromotionFailure=true<\/p>\n<\/li>\n<\/ol>\n<h2><a id=\"_2710\"><\/a>\u5806\u662f\u5206\u914d\u5bf9\u8c61\u7684\u552f\u4e00\u9009\u62e9\u4e48\uff1f<\/h2>\n<p><strong>\u5728\u300a\u6df1\u5165\u7406\u89e3Java\u865a\u62df\u673a\u300b\u4e2d\u5173\u4e8eJava\u5806\u5185\u5b58\u6709\u8fd9\u6837\u4e00\u6bb5\u63cf\u8ff0\uff1a<\/strong><\/p>\n<ol>\n<li>\n<p>\u968f\u7740JIT\u7f16\u8bd1\u671f\u7684\u53d1\u5c55\u4e0e<strong>\u9003\u9038\u5206\u6790\u6280\u672f<\/strong>\u9010\u6e10\u6210\u719f\uff0c<strong>\u6808\u4e0a\u5206\u914d\u3001\u6807\u91cf\u66ff\u6362<\/strong>\u4f18\u5316\u6280\u672f\u5c06\u4f1a\u5bfc\u81f4\u4e00\u4e9b\u5fae\u5999\u7684\u53d8\u5316\uff0c\u6240\u6709\u7684\u5bf9\u8c61\u90fd\u5206\u914d\u5230\u5806\u4e0a\u4e5f\u6e10\u6e10\u53d8\u5f97\u4e0d\u90a3\u4e48\u201c\u7edd\u5bf9\u201d\u4e86\u3002<\/p>\n<\/li>\n<li>\n<p>\u5728Java\u865a\u62df\u673a\u4e2d\uff0c\u5bf9\u8c61\u662f\u5728Java\u5806\u4e2d\u5206\u914d\u5185\u5b58\u7684\uff0c\u8fd9\u662f\u4e00\u4e2a\u666e\u904d\u7684\u5e38\u8bc6\u3002\u4f46\u662f\uff0c\u6709\u4e00\u79cd\u7279\u6b8a\u60c5\u51b5\uff0c\u90a3\u5c31\u662f<strong>\u5982\u679c\u7ecf\u8fc7\u9003\u9038\u5206\u6790\uff08Escape Analysis\uff09\u540e\u53d1\u73b0\uff0c\u4e00\u4e2a\u5bf9\u8c61\u5e76\u6ca1\u6709\u9003\u9038\u51fa\u65b9\u6cd5\u7684\u8bdd\uff0c\u90a3\u4e48\u5c31\u53ef\u80fd\u88ab\u4f18\u5316\u6210\u6808\u4e0a\u5206\u914d<\/strong>\u3002\u8fd9\u6837\u5c31\u65e0\u9700\u5728\u5806\u4e0a\u5206\u914d\u5185\u5b58\uff0c\u4e5f\u65e0\u987b\u8fdb\u884c\u5783\u573e\u56de\u6536\u4e86\u3002\u8fd9\u4e5f\u662f\u6700\u5e38\u89c1\u7684\u5806\u5916\u5b58\u50a8\u6280\u672f\u3002<\/p>\n<\/li>\n<li>\n<p>\u6b64\u5916\uff0c\u524d\u9762\u63d0\u5230\u7684\u57fa\u4e8eOpenJDK\u6df1\u5ea6\u5b9a\u5236\u7684TaoBao VM\uff0c\u5176\u4e2d\u521b\u65b0\u7684GCIH\uff08GC invisible heap\uff09\u6280\u672f\u5b9e\u73b0off-heap\uff0c\u5c06\u751f\u547d\u5468\u671f\u8f83\u957f\u7684Java\u5bf9\u8c61\u4eceheap\u4e2d\u79fb\u81f3heap\u5916\uff0c\u5e76\u4e14GC\u4e0d\u80fd\u7ba1\u7406GCIH\u5185\u90e8\u7684Java\u5bf9\u8c61\uff0c\u4ee5\u6b64\u8fbe\u5230\u964d\u4f4eGC\u7684\u56de\u6536\u9891\u7387\u548c\u63d0\u5347GC\u7684\u56de\u6536\u6548\u7387\u7684\u76ee\u7684\u3002<\/p>\n<\/li>\n<\/ol>\n<h3><a id=\"_2719\"><\/a>\u9003\u9038\u5206\u6790<\/h3>\n<ol>\n<li>\n<p>\u5982\u4f55\u5c06\u5806\u4e0a\u7684\u5bf9\u8c61\u5206\u914d\u5230\u6808\uff0c\u9700\u8981\u4f7f\u7528\u9003\u9038\u5206\u6790\u624b\u6bb5\u3002<\/p>\n<\/li>\n<li>\n<p>\u8fd9\u662f\u4e00\u79cd\u53ef\u4ee5\u6709\u6548\u51cf\u5c11Java\u7a0b\u5e8f\u4e2d\u540c\u6b65\u8d1f\u8f7d\u548c\u5185\u5b58\u5806\u5206\u914d\u538b\u529b\u7684\u8de8\u51fd\u6570\u5168\u5c40\u6570\u636e\u6d41\u5206\u6790\u7b97\u6cd5\u3002<\/p>\n<\/li>\n<li>\n<p>\u901a\u8fc7\u9003\u9038\u5206\u6790\uff0cJava Hotspot\u7f16\u8bd1\u5668\u80fd\u591f\u5206\u6790\u51fa\u4e00\u4e2a\u65b0\u7684\u5bf9\u8c61\u7684\u5f15\u7528\u7684\u4f7f\u7528\u8303\u56f4\u4ece\u800c\u51b3\u5b9a\u662f\u5426\u8981\u5c06\u8fd9\u4e2a\u5bf9\u8c61\u5206\u914d\u5230\u5806\u4e0a\u3002<\/p>\n<\/li>\n<li>\n<p>\u9003\u9038\u5206\u6790\u7684\u57fa\u672c\u884c\u4e3a\u5c31\u662f\u5206\u6790\u5bf9\u8c61\u52a8\u6001\u4f5c\u7528\u57df\uff1a<\/p>\n<ul>\n<li>\n<p>\u5f53\u4e00\u4e2a\u5bf9\u8c61\u5728\u65b9\u6cd5\u4e2d\u88ab\u5b9a\u4e49\u540e\uff0c\u5bf9\u8c61\u53ea\u5728\u65b9\u6cd5\u5185\u90e8\u4f7f\u7528\uff0c\u5219\u8ba4\u4e3a\u6ca1\u6709\u53d1\u751f\u9003\u9038\u3002<\/p>\n<\/li>\n<li>\n<p>\u5f53\u4e00\u4e2a\u5bf9\u8c61\u5728\u65b9\u6cd5\u4e2d\u88ab\u5b9a\u4e49\u540e\uff0c\u5b83\u88ab\u5916\u90e8\u65b9\u6cd5\u6240\u5f15\u7528\uff0c\u5219\u8ba4\u4e3a\u53d1\u751f\u9003\u9038\u3002\u4f8b\u5982\u4f5c\u4e3a\u8c03\u7528\u53c2\u6570\u4f20\u9012\u5230\u5176\u4ed6\u5730\u65b9\u4e2d\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><strong>\u9003\u9038\u5206\u6790\u4e3e\u4f8b<\/strong><br \/> 1\u3001\u6ca1\u6709\u53d1\u751f\u9003\u9038\u7684\u5bf9\u8c61\uff0c\u5219\u53ef\u4ee5\u5206\u914d\u5230\u6808\uff08\u65e0\u7ebf\u7a0b\u5b89\u5168\u95ee\u9898\uff09\u4e0a\uff0c\u968f\u7740\u65b9\u6cd5\u6267\u884c\u7684\u7ed3\u675f\uff0c\u6808\u7a7a\u95f4\u5c31\u88ab\u79fb\u9664\uff08\u4e5f\u5c31\u65e0\u9700GC\uff09<br \/> public void my_method() {<!-- --><br \/> V v = new V();<br \/> \/\/ use v<br \/> \/\/ \u2026<br \/> v = null;<br \/> }<br \/> 2\u3001\u4e0b\u9762\u4ee3\u7801\u4e2d\u7684 StringBuffer sb \u53d1\u751f\u4e86\u9003\u9038\uff0c\u4e0d\u80fd\u5728\u6808\u4e0a\u5206\u914d<br \/> public static StringBuffer createStringBuffer(String s1, String s2) {<!-- --><br \/> StringBuffer sb = new StringBuffer();<br \/> sb.append(s1);<br \/> sb.append(s2);<br \/> return sb;<br \/> }<br \/> 3\u3001\u5982\u679c\u60f3\u8981StringBuffer sb\u4e0d\u53d1\u751f\u9003\u9038\uff0c\u53ef\u4ee5\u8fd9\u6837\u5199<br \/> public static String createStringBuffer(String s1, String s2) {<!-- --><br \/> StringBuffer sb = new StringBuffer();<br \/> sb.append(s1);<br \/> sb.append(s2);<br \/> return sb.toString();<br \/> }<br \/> \/**<\/p>\n<ul>\n<li>\u9003\u9038\u5206\u6790<\/li>\n<li><\/li>\n<li>\u5982\u4f55\u5feb\u901f\u7684\u5224\u65ad\u662f\u5426\u53d1\u751f\u4e86\u9003\u9038\u5206\u6790\uff0c\u5927\u5bb6\u5c31\u770bnew\u7684\u5bf9\u8c61\u5b9e\u4f53\u662f\u5426\u6709\u53ef\u80fd\u5728\u65b9\u6cd5\u5916\u88ab\u8c03\u7528\u3002<br \/> <em>\/<br \/> public class EscapeAnalysis {<!-- --><br \/> public EscapeAnalysis obj;<br \/> \/<\/em><br \/> \u65b9\u6cd5\u8fd4\u56deEscapeAnalysis\u5bf9\u8c61\uff0c\u53d1\u751f\u9003\u9038<br \/> <em>\/<br \/> public EscapeAnalysis getInstance(){<!-- --><br \/> return obj == null? new EscapeAnalysis() : obj;<br \/> }<br \/> \/<\/em><br \/> \u4e3a\u6210\u5458\u5c5e\u6027\u8d4b\u503c\uff0c\u53d1\u751f\u9003\u9038<br \/> <em>\/<br \/> public void setObj(){<!-- --><br \/> this.obj = new EscapeAnalysis();<br \/> }<br \/> \/\/\u601d\u8003\uff1a\u5982\u679c\u5f53\u524d\u7684obj\u5f15\u7528\u58f0\u660e\u4e3astatic\u7684\uff1f\u4ecd\u7136\u4f1a\u53d1\u751f\u9003\u9038\u3002<br \/> \/<\/em><br \/> \u5bf9\u8c61\u7684\u4f5c\u7528\u57df\u4ec5\u5728\u5f53\u524d\u65b9\u6cd5\u4e2d\u6709\u6548\uff0c\u6ca1\u6709\u53d1\u751f\u9003\u9038<br \/> <em>\/<br \/> public void useEscapeAnalysis(){<!-- --><br \/> EscapeAnalysis e = new EscapeAnalysis();<br \/> }<br \/> \/<\/em><br \/> \u5f15\u7528\u6210\u5458\u53d8\u91cf\u7684\u503c\uff0c\u53d1\u751f\u9003\u9038<br \/> *\/<br \/> public void useEscapeAnalysis1(){<!-- --><br \/> EscapeAnalysis e = getInstance();<br \/> \/\/getInstance().xxx()\u540c\u6837\u4f1a\u53d1\u751f\u9003\u9038<br \/> }<br \/> }<br \/> <strong>\u9003\u9038\u5206\u6790\u53c2\u6570\u8bbe\u7f6e<\/strong><\/li>\n<\/ul>\n<ol>\n<li>\n<p>\u5728JDK 1.7 \u7248\u672c\u4e4b\u540e\uff0cHotSpot\u4e2d\u9ed8\u8ba4\u5c31\u5df2\u7ecf\u5f00\u542f\u4e86\u9003\u9038\u5206\u6790<\/p>\n<\/li>\n<li>\n<p>\u5982\u679c\u4f7f\u7528\u7684\u662f\u8f83\u65e9\u7684\u7248\u672c\uff0c\u5f00\u53d1\u4eba\u5458\u5219\u53ef\u4ee5\u901a\u8fc7\uff1a<\/p>\n<ul>\n<li>\n<p>\u9009\u9879\u201c-XX:+DoEscapeAnalysis\"\u663e\u5f0f\u5f00\u542f\u9003\u9038\u5206\u6790<\/p>\n<\/li>\n<li>\n<p>\u901a\u8fc7\u9009\u9879\u201c-XX:+PrintEscapeAnalysis\"\u67e5\u770b\u9003\u9038\u5206\u6790\u7684\u7b5b\u9009\u7ed3\u679c<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><strong>\u603b\u7ed3<\/strong><br \/> \u5f00\u53d1\u4e2d\u80fd\u4f7f\u7528\u5c40\u90e8\u53d8\u91cf\u7684\uff0c\u5c31\u4e0d\u8981\u4f7f\u7528\u5728\u65b9\u6cd5\u5916\u5b9a\u4e49\u3002<\/p>\n<h3><a id=\"_2801\"><\/a>\u4ee3\u7801\u4f18\u5316<\/h3>\n<p>\u4f7f\u7528\u9003\u9038\u5206\u6790\uff0c\u7f16\u8bd1\u5668\u53ef\u4ee5\u5bf9\u4ee3\u7801\u505a\u5982\u4e0b\u4f18\u5316\uff1a<\/p>\n<ol>\n<li>\n<p><strong>\u6808\u4e0a\u5206\u914d<\/strong>\uff1a\u5c06\u5806\u5206\u914d\u8f6c\u5316\u4e3a\u6808\u5206\u914d\u3002\u5982\u679c\u4e00\u4e2a\u5bf9\u8c61\u5728\u5b50\u7a0b\u5e8f\u4e2d\u88ab\u5206\u914d\uff0c\u8981\u4f7f\u6307\u5411\u8be5\u5bf9\u8c61\u7684\u6307\u9488\u6c38\u8fdc\u4e0d\u4f1a\u53d1\u751f\u9003\u9038\uff0c\u5bf9\u8c61\u53ef\u80fd\u662f\u6808\u4e0a\u5206\u914d\u7684\u5019\u9009\uff0c\u800c\u4e0d\u662f\u5806\u4e0a\u5206\u914d<\/p>\n<\/li>\n<li>\n<p><strong>\u540c\u6b65\u7701\u7565<\/strong>\uff1a\u5982\u679c\u4e00\u4e2a\u5bf9\u8c61\u88ab\u53d1\u73b0\u53ea\u6709\u4e00\u4e2a\u7ebf\u7a0b\u88ab\u8bbf\u95ee\u5230\uff0c\u90a3\u4e48\u5bf9\u4e8e\u8fd9\u4e2a\u5bf9\u8c61\u7684\u64cd\u4f5c\u53ef\u4ee5\u4e0d\u8003\u8651\u540c\u6b65\u3002<\/p>\n<\/li>\n<li>\n<p><strong>\u5206\u79bb\u5bf9\u8c61\u6216\u6807\u91cf\u66ff\u6362<\/strong>\uff1a\u6709\u7684\u5bf9\u8c61\u53ef\u80fd\u4e0d\u9700\u8981\u4f5c\u4e3a\u4e00\u4e2a\u8fde\u7eed\u7684\u5185\u5b58\u7ed3\u6784\u5b58\u5728\u4e5f\u53ef\u4ee5\u88ab\u8bbf\u95ee\u5230\uff0c\u90a3\u4e48\u5bf9\u8c61\u7684\u90e8\u5206\uff08\u6216\u5168\u90e8\uff09\u53ef\u4ee5\u4e0d\u5b58\u50a8\u5728\u5185\u5b58\uff0c\u800c\u662f\u5b58\u50a8\u5728CPU\u5bc4\u5b58\u5668\u4e2d\u3002<\/p>\n<\/li>\n<\/ol>\n<h3><a id=\"_2810\"><\/a>\u6808\u4e0a\u5206\u914d<\/h3>\n<ol>\n<li>\n<p>JIT\u7f16\u8bd1\u5668\u5728\u7f16\u8bd1\u671f\u95f4\u6839\u636e\u9003\u9038\u5206\u6790\u7684\u7ed3\u679c\uff0c\u53d1\u73b0\u5982\u679c\u4e00\u4e2a\u5bf9\u8c61\u5e76\u6ca1\u6709\u9003\u9038\u51fa\u65b9\u6cd5\u7684\u8bdd\uff0c\u5c31\u53ef\u80fd\u88ab\u4f18\u5316\u6210\u6808\u4e0a\u5206\u914d\u3002\u5206\u914d\u5b8c\u6210\u540e\uff0c\u7ee7\u7eed\u5728\u8c03\u7528\u6808\u5185\u6267\u884c\uff0c\u6700\u540e\u7ebf\u7a0b\u7ed3\u675f\uff0c\u6808\u7a7a\u95f4\u88ab\u56de\u6536\uff0c\u5c40\u90e8\u53d8\u91cf\u5bf9\u8c61\u4e5f\u88ab\u56de\u6536\u3002\u8fd9\u6837\u5c31\u65e0\u987b\u8fdb\u884c\u5783\u573e\u56de\u6536\u4e86\u3002<\/p>\n<\/li>\n<li>\n<p>\u5e38\u89c1\u7684\u6808\u4e0a\u5206\u914d\u7684\u573a\u666f\uff1a\u5728\u9003\u9038\u5206\u6790\u4e2d\uff0c\u5df2\u7ecf\u8bf4\u660e\u4e86\uff0c\u5206\u522b\u662f\u7ed9\u6210\u5458\u53d8\u91cf\u8d4b\u503c\u3001\u65b9\u6cd5\u8fd4\u56de\u503c\u3001\u5b9e\u4f8b\u5f15\u7528\u4f20\u9012\u3002<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u6808\u4e0a\u5206\u914d\u4e3e\u4f8b<\/strong><br \/> \/**<\/p>\n<ul>\n<li>\u6808\u4e0a\u5206\u914d\u6d4b\u8bd5<\/li>\n<li>-Xmx128m -Xms128m -XX:-DoEscapeAnalysis -XX:+PrintGCDetails<br \/> *\/<br \/> public class StackAllocation {<!-- --><br \/> public static void main(String[] args) {<!-- --><br \/> long start = System.currentTimeMillis();<br \/> for (int i = 0; i &lt; 10000000; i++) {<!-- --><br \/> alloc();<br \/> }<br \/> \/\/ \u67e5\u770b\u6267\u884c\u65f6\u95f4<br \/> long end = System.currentTimeMillis();<br \/> System.out.println(\u201c\u82b1\u8d39\u7684\u65f6\u95f4\u4e3a\uff1a \" + (end - start) + \" ms\u201d);<br \/> \/\/ \u4e3a\u4e86\u65b9\u4fbf\u67e5\u770b\u5806\u5185\u5b58\u4e2d\u5bf9\u8c61\u4e2a\u6570\uff0c\u7ebf\u7a0bsleep<br \/> try {<!-- --><br \/> Thread.sleep(1000000);<br \/> } catch (InterruptedException e1) {<!-- --><br \/> e1.printStackTrace();<br \/> }<br \/> }<br \/> private static void alloc() {<!-- --><br \/> User user = new User();\/\/\u672a\u53d1\u751f\u9003\u9038<br \/> }<br \/> static class User {<!-- --><br \/> }<br \/> }<br \/> \u8f93\u51fa\u7ed3\u679c\uff1a<br \/> [GC (Allocation Failure) [PSYoungGen: 33280K-&gt;808K(38400K)] 33280K-&gt;816K(125952K), 0.0483350 secs] [Times: user=0.00 sys=0.00, real=0.06 secs]<br \/> [GC (Allocation Failure) [PSYoungGen: 34088K-&gt;808K(38400K)] 34096K-&gt;816K(125952K), 0.0008411 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]<br \/> [GC (Allocation Failure) [PSYoungGen: 34088K-&gt;792K(38400K)] 34096K-&gt;800K(125952K), 0.0008427 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]<br \/> [GC (Allocation Failure) [PSYoungGen: 34072K-&gt;808K(38400K)] 34080K-&gt;816K(125952K), 0.0012223 secs] [Times: user=0.08 sys=0.00, real=0.00 secs]<br \/> \u82b1\u8d39\u7684\u65f6\u95f4\u4e3a\uff1a 114 ms<br \/> 1\u3001JVM \u53c2\u6570\u8bbe\u7f6e<br \/> -Xmx128m -Xms128m -XX:-DoEscapeAnalysis -XX:+PrintGCDetails<br \/> 2\u3001\u65e5\u5fd7\u6253\u5370\uff1a\u53d1\u751f\u4e86 GC \uff0c\u8017\u65f6 114ms<br \/> <strong>\u5f00\u542f\u9003\u9038\u5206\u6790\u7684\u60c5\u51b5<\/strong><br \/> \u8f93\u51fa\u7ed3\u679c\uff1a<br \/> \u82b1\u8d39\u7684\u65f6\u95f4\u4e3a\uff1a 5 ms<br \/> 1\u3001\u53c2\u6570\u8bbe\u7f6e<br \/> -Xmx128m -Xms128m -XX:+DoEscapeAnalysis -XX:+PrintGCDetails<br \/> 2\u3001\u65e5\u5fd7\u6253\u5370\uff1a\u5e76\u6ca1\u6709\u53d1\u751f GC \uff0c\u8017\u65f65ms \u3002<\/li>\n<\/ul>\n<h3><a id=\"_2859\"><\/a>\u540c\u6b65\u7701\u7565\uff08\u540c\u6b65\u6d88\u9664\uff09<\/h3>\n<ol>\n<li>\n<p>\u7ebf\u7a0b\u540c\u6b65\u7684\u4ee3\u4ef7\u662f\u76f8\u5f53\u9ad8\u7684\uff0c\u540c\u6b65\u7684\u540e\u679c\u662f\u964d\u4f4e\u5e76\u53d1\u6027\u548c\u6027\u80fd\u3002<\/p>\n<\/li>\n<li>\n<p>\u5728\u52a8\u6001\u7f16\u8bd1\u540c\u6b65\u5757\u7684\u65f6\u5019\uff0cJIT\u7f16\u8bd1\u5668\u53ef\u4ee5\u501f\u52a9\u9003\u9038\u5206\u6790\u6765<strong>\u5224\u65ad\u540c\u6b65\u5757\u6240\u4f7f\u7528\u7684\u9501\u5bf9\u8c61\u662f\u5426\u53ea\u80fd\u591f\u88ab\u4e00\u4e2a\u7ebf\u7a0b\u8bbf\u95ee\u800c\u6ca1\u6709\u88ab\u53d1\u5e03\u5230\u5176\u4ed6\u7ebf\u7a0b<\/strong>\u3002<\/p>\n<\/li>\n<li>\n<p>\u5982\u679c\u6ca1\u6709\uff0c\u90a3\u4e48JIT\u7f16\u8bd1\u5668\u5728\u7f16\u8bd1\u8fd9\u4e2a\u540c\u6b65\u5757\u7684\u65f6\u5019\u5c31\u4f1a\u53d6\u6d88\u5bf9\u8fd9\u90e8\u5206\u4ee3\u7801\u7684\u540c\u6b65\u3002\u8fd9\u6837\u5c31\u80fd\u5927\u5927\u63d0\u9ad8\u5e76\u53d1\u6027\u548c\u6027\u80fd\u3002\u8fd9\u4e2a<strong>\u53d6\u6d88\u540c\u6b65\u7684\u8fc7\u7a0b\u5c31\u53eb\u540c\u6b65\u7701\u7565\uff0c\u4e5f\u53eb\u9501\u6d88\u9664<\/strong>\u3002<\/p>\n<\/li>\n<\/ol>\n<p>\u4f8b\u5982\u4e0b\u9762\u7684\u4ee3\u7801<br \/> public void f() {<!-- --><br \/> Object hollis = new Object();<br \/> synchronized(hollis) {<!-- --><br \/> System.out.println(hollis);<br \/> }<br \/> }<br \/> \u4ee3\u7801\u4e2d\u5bf9hollis\u8fd9\u4e2a\u5bf9\u8c61\u52a0\u9501\uff0c\u4f46\u662fhollis\u5bf9\u8c61\u7684\u751f\u547d\u5468\u671f\u53ea\u5728f()\u65b9\u6cd5\u4e2d\uff0c\u5e76\u4e0d\u4f1a\u88ab\u5176\u4ed6\u7ebf\u7a0b\u6240\u8bbf\u95ee\u5230\uff0c\u6240\u4ee5\u5728JIT\u7f16\u8bd1\u9636\u6bb5\u5c31\u4f1a\u88ab\u4f18\u5316\u6389\uff0c\u4f18\u5316\u6210\uff1a<br \/> public void f() {<!-- --><br \/> Object hellis = new Object();<br \/> System.out.println(hellis);<br \/> }<br \/> <strong>\u5b57\u8282\u7801\u5206\u6790<\/strong><br \/> public class SynchronizedTest {<!-- --><br \/> public void f() {<!-- --><br \/> Object hollis = new Object();<br \/> synchronized(hollis) {<!-- --><br \/> System.out.println(hollis);<br \/> }<br \/> }<br \/> }<br \/> 0 new #2 &lt;java\/lang\/Object&gt;<br \/> 3 dup<br \/> 4 invokespecial #1 &lt;java\/lang\/Object.&gt;<br \/> 7 astore_1<br \/> 8 aload_1<br \/> 9 dup<br \/> 10 astore_2<br \/> 11 monitorenter<br \/> 12 getstatic #3 &lt;java\/lang\/System.out&gt;<br \/> 15 aload_1<br \/> 16 invokevirtual #4 &lt;java\/io\/PrintStream.println&gt;<br \/> 19 aload_2<br \/> 20 monitorexit<br \/> 21 goto 29 (+8)<br \/> 24 astore_3<br \/> 25 aload_2<br \/> 26 monitorexit<br \/> 27 aload_3<br \/> 28 athrow<br \/> 29 return<br \/> \u6ce8\u610f\uff1a\u5b57\u8282\u7801\u6587\u4ef6\u4e2d\u5e76\u6ca1\u6709\u8fdb\u884c\u4f18\u5316\uff0c\u53ef\u4ee5\u770b\u5230\u52a0\u9501\u548c\u91ca\u653e\u9501\u7684\u64cd\u4f5c\u4f9d\u7136\u5b58\u5728\uff0c<strong>\u540c\u6b65\u7701\u7565\u64cd\u4f5c\u662f\u5728\u89e3\u91ca\u8fd0\u884c\u65f6\u53d1\u751f\u7684<\/strong><\/p>\n<h3><a id=\"_2910\"><\/a>\u6807\u91cf\u66ff\u6362<\/h3>\n<p><strong>\u5206\u79bb\u5bf9\u8c61\u6216\u6807\u91cf\u66ff\u6362<\/strong><\/p>\n<ol>\n<li>\n<p>\u6807\u91cf\uff08scalar\uff09\u662f\u6307\u4e00\u4e2a\u65e0\u6cd5\u518d\u5206\u89e3\u6210\u66f4\u5c0f\u7684\u6570\u636e\u7684\u6570\u636e\u3002Java\u4e2d\u7684\u539f\u59cb\u6570\u636e\u7c7b\u578b\u5c31\u662f\u6807\u91cf\u3002<\/p>\n<\/li>\n<li>\n<p>\u76f8\u5bf9\u7684\uff0c\u90a3\u4e9b\u8fd8\u53ef\u4ee5\u5206\u89e3\u7684\u6570\u636e\u53eb\u505a\u805a\u5408\u91cf\uff08Aggregate\uff09\uff0cJava\u4e2d\u7684\u5bf9\u8c61\u5c31\u662f\u805a\u5408\u91cf\uff0c\u56e0\u4e3a\u4ed6\u53ef\u4ee5\u5206\u89e3\u6210\u5176\u4ed6\u805a\u5408\u91cf\u548c\u6807\u91cf\u3002<\/p>\n<\/li>\n<li>\n<p>\u5728JIT\u9636\u6bb5\uff0c\u5982\u679c\u7ecf\u8fc7\u9003\u9038\u5206\u6790\uff0c\u53d1\u73b0\u4e00\u4e2a\u5bf9\u8c61\u4e0d\u4f1a\u88ab\u5916\u754c\u8bbf\u95ee\u7684\u8bdd\uff0c\u90a3\u4e48\u7ecf\u8fc7JIT\u4f18\u5316\uff0c\u5c31\u4f1a\u628a\u8fd9\u4e2a\u5bf9\u8c61\u62c6\u89e3\u6210\u82e5\u5e72\u4e2a\u5176\u4e2d\u5305\u542b\u7684\u82e5\u5e72\u4e2a\u6210\u5458\u53d8\u91cf\u6765\u4ee3\u66ff\u3002\u8fd9\u4e2a\u8fc7\u7a0b\u5c31\u662f\u6807\u91cf\u66ff\u6362\u3002<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u6807\u91cf\u66ff\u6362\u4e3e\u4f8b<\/strong><br \/> \u4ee3\u7801<br \/> public static void main(String args[]) {<!-- --><br \/> alloc();<br \/> }<br \/> private static void alloc() {<!-- --><br \/> Point point = new Point(1,2);<br \/> System.out.println(\u201cpoint.x\u201d + point.x + \u201c;point.y\u201d + point.y);<br \/> }<br \/> class Point {<!-- --><br \/> private int x;<br \/> private int y;<br \/> }<br \/> \u4ee5\u4e0a\u4ee3\u7801\uff0c\u7ecf\u8fc7\u6807\u91cf\u66ff\u6362\u540e\uff0c\u5c31\u4f1a\u53d8\u6210<br \/> private static void alloc() {<!-- --><br \/> int x = 1;<br \/> int y = 2;<br \/> System.out.println(\"point.x = \" + x + \u201c; point.y=\u201d + y);<br \/> }<\/p>\n<ol>\n<li>\n<p>\u53ef\u4ee5\u770b\u5230\uff0cPoint\u8fd9\u4e2a\u805a\u5408\u91cf\u7ecf\u8fc7\u9003\u9038\u5206\u6790\u540e\uff0c\u53d1\u73b0\u4ed6\u5e76\u6ca1\u6709\u9003\u9038\uff0c\u5c31\u88ab\u66ff\u6362\u6210\u4e24\u4e2a\u805a\u5408\u91cf\u4e86\u3002<\/p>\n<\/li>\n<li>\n<p>\u90a3\u4e48\u6807\u91cf\u66ff\u6362\u6709\u4ec0\u4e48\u597d\u5904\u5462\uff1f\u5c31\u662f\u53ef\u4ee5\u5927\u5927\u51cf\u5c11\u5806\u5185\u5b58\u7684\u5360\u7528\u3002\u56e0\u4e3a\u4e00\u65e6\u4e0d\u9700\u8981\u521b\u5efa\u5bf9\u8c61\u4e86\uff0c\u90a3\u4e48\u5c31\u4e0d\u518d\u9700\u8981\u5206\u914d\u5806\u5185\u5b58\u4e86\u3002<\/p>\n<\/li>\n<li>\n<p>\u6807\u91cf\u66ff\u6362\u4e3a\u6808\u4e0a\u5206\u914d\u63d0\u4f9b\u4e86\u5f88\u597d\u7684\u57fa\u7840\u3002<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u6807\u91cf\u66ff\u6362\u53c2\u6570\u8bbe\u7f6e<\/strong><br \/> \u53c2\u6570 -XX:+ElimilnateAllocations\uff1a\u5f00\u542f\u4e86\u6807\u91cf\u66ff\u6362\uff08\u9ed8\u8ba4\u6253\u5f00\uff09\uff0c\u5141\u8bb8\u5c06\u5bf9\u8c61\u6253\u6563\u5206\u914d\u5728\u6808\u4e0a\u3002<br \/> <strong>\u4ee3\u7801\u793a\u4f8b<\/strong><br \/> \/**<\/p>\n<ul>\n<li>\u6807\u91cf\u66ff\u6362\u6d4b\u8bd5<\/li>\n<li>-Xmx100m -Xms100m -XX:+DoEscapeAnalysis -XX:+PrintGC -XX:-EliminateAllocations<\/li>\n<li>@author shkstart shkstart@126.com<\/li>\n<li>@create 2020 12:01<br \/> *\/<br \/> public class ScalarReplace {<!-- --><br \/> public static class User {<!-- --><br \/> public int id;<br \/> public String name;<br \/> }<br \/> public static void alloc() {<!-- --><br \/> User u = new User();\/\/\u672a\u53d1\u751f\u9003\u9038<br \/> u.id = 5;<br \/> u.name = \u201cwww.atguigu.com\u201d;<br \/> }<br \/> public static void main(String[] args) {<!-- --><br \/> long start = System.currentTimeMillis();<br \/> for (int i = 0; i &lt; 10000000; i++) {<!-- --><br \/> alloc();<br \/> }<br \/> long end = System.currentTimeMillis();<br \/> System.out.println(\u201c\u82b1\u8d39\u7684\u65f6\u95f4\u4e3a\uff1a \" + (end - start) + \" ms\u201d);<br \/> }<br \/> }<br \/> <strong>\u672a\u5f00\u542f\u6807\u91cf\u66ff\u6362<\/strong><br \/> 1\u3001JVM \u53c2\u6570<br \/> -Xmx100m -Xms100m -XX:+DoEscapeAnalysis -XX:+PrintGC -XX:-EliminateAllocations<br \/> 2\u3001\u65e5\u5fd7<br \/> [GC (Allocation Failure) 25600K-&gt;880K(98304K), 0.0012658 secs]<br \/> [GC (Allocation Failure) 26480K-&gt;832K(98304K), 0.0012124 secs]<br \/> [GC (Allocation Failure) 26432K-&gt;784K(98304K), 0.0009719 secs]<br \/> [GC (Allocation Failure) 26384K-&gt;832K(98304K), 0.0009071 secs]<br \/> [GC (Allocation Failure) 26432K-&gt;768K(98304K), 0.0010643 secs]<br \/> [GC (Allocation Failure) 26368K-&gt;824K(101376K), 0.0012354 secs]<br \/> [GC (Allocation Failure) 32568K-&gt;712K(100864K), 0.0011291 secs]<br \/> [GC (Allocation Failure) 32456K-&gt;712K(100864K), 0.0006368 secs]<br \/> \u82b1\u8d39\u7684\u65f6\u95f4\u4e3a\uff1a 99 ms<br \/> <strong>\u5f00\u542f\u6807\u91cf\u66ff\u6362<\/strong><br \/> 1\u3001JVM \u53c2\u6570<br \/> -Xmx100m -Xms100m -XX:+DoEscapeAnalysis -XX:+PrintGC -XX:+EliminateAllocations<br \/> 2\u3001\u65e5\u5fd7\uff1a\u65f6\u95f4\u51cf\u5c11\u5f88\u591a\uff0c\u4e14\u65e0GC<br \/> \u82b1\u8d39\u7684\u65f6\u95f4\u4e3a\uff1a 6 ms<br \/> \u4e0a\u8ff0\u4ee3\u7801\u5728\u4e3b\u51fd\u6570\u4e2d\u8c03\u7528\u4e861\u4ebf\u6b21alloc()\u65b9\u6cd5\uff0c\u8fdb\u884c\u5bf9\u8c61\u521b\u5efa\u7531\u4e8eUser\u5bf9\u8c61\u5b9e\u4f8b\u9700\u8981\u5360\u636e\u7ea616\u5b57\u8282\u7684\u7a7a\u95f4\uff0c\u56e0\u6b64\u7d2f\u8ba1\u5206\u914d\u7a7a\u95f4\u8fbe\u5230\u5c06\u8fd11.5GB\u3002\u5982\u679c\u5806\u7a7a\u95f4\u5c0f\u4e8e\u8fd9\u4e2a\u503c\uff0c\u5c31\u5fc5\u7136\u4f1a\u53d1\u751fGC\u3002\u4f7f\u7528\u5982\u4e0b\u53c2\u6570\u8fd0\u884c\u4e0a\u8ff0\u4ee3\u7801\uff1a<br \/> <code>-server -Xmx100m -Xms100m -XX:+DoEscapeAnalysis -XX:+PrintGC -XX:+EliminateAllocations<\/code><br \/> \u8fd9\u91cc\u8bbe\u7f6e\u53c2\u6570\u5982\u4e0b\uff1a<\/li>\n<\/ul>\n<ol>\n<li>\n<p>\u53c2\u6570 -server\uff1a\u542f\u52a8Server\u6a21\u5f0f\uff0c\u56e0\u4e3a\u5728server\u6a21\u5f0f\u4e0b\uff0c\u624d\u53ef\u4ee5\u542f\u7528\u9003\u9038\u5206\u6790\u3002<\/p>\n<\/li>\n<li>\n<p>\u53c2\u6570 -XX:+DoEscapeAnalysis\uff1a\u542f\u7528\u9003\u9038\u5206\u6790<\/p>\n<\/li>\n<li>\n<p>\u53c2\u6570 -Xmx10m\uff1a\u6307\u5b9a\u4e86\u5806\u7a7a\u95f4\u6700\u5927\u4e3a10MB<\/p>\n<\/li>\n<li>\n<p>\u53c2\u6570 -XX:+PrintGC\uff1a\u5c06\u6253\u5370GC\u65e5\u5fd7\u3002<\/p>\n<\/li>\n<li>\n<p>\u53c2\u6570 -XX:+EliminateAllocations\uff1a\u5f00\u542f\u4e86\u6807\u91cf\u66ff\u6362\uff08\u9ed8\u8ba4\u6253\u5f00\uff09\uff0c\u5141\u8bb8\u5c06\u5bf9\u8c61\u6253\u6563\u5206\u914d\u5728\u6808\u4e0a\uff0c\u6bd4\u5982\u5bf9\u8c61\u62e5\u6709id\u548cname\u4e24\u4e2a\u5b57\u6bb5\uff0c\u90a3\u4e48\u8fd9\u4e24\u4e2a\u5b57\u6bb5\u5c06\u4f1a\u88ab\u89c6\u4e3a\u4e24\u4e2a\u72ec\u7acb\u7684\u5c40\u90e8\u53d8\u91cf\u8fdb\u884c\u5206\u914d<\/p>\n<\/li>\n<\/ol>\n<h3><a id=\"_3007\"><\/a>\u9003\u9038\u5206\u6790\u7684\u4e0d\u8db3<\/h3>\n<ol>\n<li>\n<p>\u5173\u4e8e\u9003\u9038\u5206\u6790\u7684\u8bba\u6587\u57281999\u5e74\u5c31\u5df2\u7ecf\u53d1\u8868\u4e86\uff0c\u4f46\u76f4\u5230JDK1.6\u624d\u6709\u5b9e\u73b0\uff0c\u800c\u4e14\u8fd9\u9879\u6280\u672f\u5230\u5982\u4eca\u4e5f\u5e76\u4e0d\u662f\u5341\u5206\u6210\u719f\u7684\u3002<\/p>\n<\/li>\n<li>\n<p>\u5176\u6839\u672c\u539f\u56e0\u5c31\u662f\u65e0\u6cd5\u4fdd\u8bc1\u9003\u9038\u5206\u6790\u7684\u6027\u80fd\u6d88\u8017\u4e00\u5b9a\u80fd\u9ad8\u4e8e\u4ed6\u7684\u6d88\u8017\u3002\u867d\u7136\u7ecf\u8fc7\u9003\u9038\u5206\u6790\u53ef\u4ee5\u505a\u6807\u91cf\u66ff\u6362\u3001\u6808\u4e0a\u5206\u914d\u3001\u548c\u9501\u6d88\u9664\u3002\u4f46\u662f\u9003\u9038\u5206\u6790\u81ea\u8eab\u4e5f\u662f\u9700\u8981\u8fdb\u884c\u4e00\u7cfb\u5217\u590d\u6742\u7684\u5206\u6790\u7684\uff0c\u8fd9\u5176\u5b9e\u4e5f\u662f\u4e00\u4e2a\u76f8\u5bf9\u8017\u65f6\u7684\u8fc7\u7a0b\u3002<\/p>\n<\/li>\n<li>\n<p>\u4e00\u4e2a\u6781\u7aef\u7684\u4f8b\u5b50\uff0c\u5c31\u662f\u7ecf\u8fc7\u9003\u9038\u5206\u6790\u4e4b\u540e\uff0c\u53d1\u73b0\u6ca1\u6709\u4e00\u4e2a\u5bf9\u8c61\u662f\u4e0d\u9003\u9038\u7684\u3002\u90a3\u8fd9\u4e2a\u9003\u9038\u5206\u6790\u7684\u8fc7\u7a0b\u5c31\u767d\u767d\u6d6a\u8d39\u6389\u4e86\u3002<\/p>\n<\/li>\n<li>\n<p>\u867d\u7136\u8fd9\u9879\u6280\u672f\u5e76\u4e0d\u5341\u5206\u6210\u719f\uff0c\u4f46\u662f\u5b83\u4e5f\u662f\u5373\u65f6\u7f16\u8bd1\u5668\u4f18\u5316\u6280\u672f\u4e2d\u4e00\u4e2a\u5341\u5206\u91cd\u8981\u7684\u624b\u6bb5\u3002<\/p>\n<\/li>\n<li>\n<p>\u6ce8\u610f\u5230\u6709\u4e00\u4e9b\u89c2\u70b9\uff0c\u8ba4\u4e3a\u901a\u8fc7\u9003\u9038\u5206\u6790\uff0cJVM\u4f1a\u5728\u6808\u4e0a\u5206\u914d\u90a3\u4e9b\u4e0d\u4f1a\u9003\u9038\u7684\u5bf9\u8c61\uff0c\u8fd9\u5728\u7406\u8bba\u4e0a\u662f\u53ef\u884c\u7684\uff0c\u4f46\u662f\u53d6\u51b3\u4e8eJVM\u8bbe\u8ba1\u8005\u7684\u9009\u62e9\u3002\u636e\u6211\u6240\u77e5\uff0c<strong>Oracle Hotspot JVM\u4e2d\u5e76\u672a\u8fd9\u4e48\u505a<\/strong>\uff08\u521a\u521a\u6f14\u793a\u7684\u6548\u679c\uff0c\u662f\u56e0\u4e3aHotSpot\u5b9e\u73b0\u4e86\u6807\u91cf\u66ff\u6362\uff09\uff0c\u8fd9\u4e00\u70b9\u5728\u9003\u9038\u5206\u6790\u76f8\u5173\u7684\u6587\u6863\u91cc\u5df2\u7ecf\u8bf4\u660e\uff0c<strong>\u6240\u4ee5\u53ef\u4ee5\u660e\u786e\u5728HotSpot\u865a\u62df\u673a\u4e0a\uff0c\u6240\u6709\u7684\u5bf9\u8c61\u5b9e\u4f8b\u90fd\u662f\u521b\u5efa\u5728\u5806\u4e0a<\/strong>\u3002<\/p>\n<\/li>\n<li>\n<p>\u76ee\u524d\u5f88\u591a\u4e66\u7c4d\u8fd8\u662f\u57fa\u4e8eJDK7\u4ee5\u524d\u7684\u7248\u672c\uff0cJDK\u5df2\u7ecf\u53d1\u751f\u4e86\u5f88\u5927\u53d8\u5316\uff0cintern\u5b57\u7b26\u4e32\u7684\u7f13\u5b58\u548c\u9759\u6001\u53d8\u91cf\u66fe\u7ecf\u90fd\u88ab\u5206\u914d\u5728\u6c38\u4e45\u4ee3\u4e0a\uff0c\u800c\u6c38\u4e45\u4ee3\u5df2\u7ecf\u88ab\u5143\u6570\u636e\u533a\u53d6\u4ee3\u3002\u4f46\u662f<strong>intern\u5b57\u7b26\u4e32\u7f13\u5b58\u548c\u9759\u6001\u53d8\u91cf\u5e76\u4e0d\u662f\u88ab\u8f6c\u79fb\u5230\u5143\u6570\u636e\u533a\uff0c\u800c\u662f\u76f4\u63a5\u5728\u5806\u4e0a\u5206\u914d<\/strong>\uff0c<strong>\u6240\u4ee5\u8fd9\u4e00\u70b9\u540c\u6837\u7b26\u5408\u524d\u9762\u4e00\u70b9\u7684\u7ed3\u8bba\uff1a\u5bf9\u8c61\u5b9e\u4f8b\u90fd\u662f\u5206\u914d\u5728\u5806\u4e0a<\/strong>\u3002<\/p>\n<\/li>\n<\/ol>\n<blockquote>\n<p><strong>\u5806\u662f\u5206\u914d\u5bf9\u8c61\u7684\u552f\u4e00\u9009\u62e9\u4e48\uff1f<\/strong><\/p>\n<\/blockquote>\n<p>\u7efc\u4e0a\uff1a<strong>\u5bf9\u8c61\u5b9e\u4f8b\u90fd\u662f\u5206\u914d\u5728\u5806\u4e0a<\/strong>\u3002What the fuck\uff1f<\/p>\n<h2><a id=\"_3024\"><\/a>\u5c0f\u7ed3<\/h2>\n<ol>\n<li>\n<p>\u5e74\u8f7b\u4ee3\u662f\u5bf9\u8c61\u7684\u8bde\u751f\u3001\u6210\u957f\u3001\u6d88\u4ea1\u7684\u533a\u57df\uff0c\u4e00\u4e2a\u5bf9\u8c61\u5728\u8fd9\u91cc\u4ea7\u751f\u3001\u5e94\u7528\uff0c\u6700\u540e\u88ab\u5783\u573e\u56de\u6536\u5668\u6536\u96c6\u3001\u7ed3\u675f\u751f\u547d\u3002<\/p>\n<\/li>\n<li>\n<p>\u8001\u5e74\u4ee3\u653e\u7f6e\u957f\u751f\u547d\u5468\u671f\u7684\u5bf9\u8c61\uff0c\u901a\u5e38\u90fd\u662f\u4eceSurvivor\u533a\u57df\u7b5b\u9009\u62f7\u8d1d\u8fc7\u6765\u7684Java\u5bf9\u8c61\u3002<\/p>\n<\/li>\n<li>\n<p>\u5f53\u7136\uff0c\u4e5f\u6709\u7279\u6b8a\u60c5\u51b5\uff0c\u6211\u4eec\u77e5\u9053\u666e\u901a\u7684\u5bf9\u8c61\u53ef\u80fd\u4f1a\u88ab\u5206\u914d\u5728TLAB\u4e0a\uff1b<\/p>\n<\/li>\n<li>\n<p>\u5982\u679c\u5bf9\u8c61\u8f83\u5927\uff0c\u65e0\u6cd5\u5206\u914d\u5728 TLAB \u4e0a\uff0c\u5219JVM\u4f1a\u8bd5\u56fe\u76f4\u63a5\u5206\u914d\u5728Eden\u5176\u4ed6\u4f4d\u7f6e\u4e0a\uff1b<\/p>\n<\/li>\n<li>\n<p>\u5982\u679c\u5bf9\u8c61\u592a\u5927\uff0c\u5b8c\u5168\u65e0\u6cd5\u5728\u65b0\u751f\u4ee3\u627e\u5230\u8db3\u591f\u957f\u7684\u8fde\u7eed\u7a7a\u95f2\u7a7a\u95f4\uff0cJVM\u5c31\u4f1a\u76f4\u63a5\u5206\u914d\u5230\u8001\u5e74\u4ee3\u3002<\/p>\n<\/li>\n<li>\n<p>\u5f53GC\u53ea\u53d1\u751f\u5728\u5e74\u8f7b\u4ee3\u4e2d\uff0c\u56de\u6536\u5e74\u8f7b\u4ee3\u5bf9\u8c61\u7684\u884c\u4e3a\u88ab\u79f0\u4e3aMinor GC\u3002<\/p>\n<\/li>\n<li>\n<p>\u5f53GC\u53d1\u751f\u5728\u8001\u5e74\u4ee3\u65f6\u5219\u88ab\u79f0\u4e3aMajor GC\u6216\u8005Full GC\u3002<\/p>\n<\/li>\n<li>\n<p>\u4e00\u822c\u7684\uff0cMinor GC\u7684\u53d1\u751f\u9891\u7387\u8981\u6bd4Major GC\u9ad8\u5f88\u591a\uff0c\u5373\u8001\u5e74\u4ee3\u4e2d\u5783\u573e\u56de\u6536\u53d1\u751f\u7684\u9891\u7387\u5c06\u5927\u5927\u4f4e\u4e8e\u5e74\u8f7b\u4ee3\u3002<\/p>\n<\/li>\n<\/ol>\n<h1><a id=\"_3042\"><\/a>\u4e03\u3001\u5bf9\u8c61\u7684\u5b9e\u4f8b\u5316\u5185\u5b58\u5e03\u5c40\u4e0e\u8bbf\u95ee\u5b9a\u4f4d<\/h1>\n<h2><a id=\"_3045\"><\/a>\u5bf9\u8c61\u7684\u5b9e\u4f8b\u5316<\/h2>\n<p><strong>\u5927\u5382\u9762\u8bd5\u9898<\/strong><\/p>\n<p>\u7f8e\u56e2\uff1a<\/p>\n<ol>\n<li>\u5bf9\u8c61\u5728<code>JVM<\/code>\u4e2d\u662f\u600e\u4e48\u5b58\u50a8\u7684\uff1f<\/li>\n<li>\u5bf9\u8c61\u5934\u4fe1\u606f\u91cc\u9762\u6709\u54ea\u4e9b\u4e1c\u897f\uff1f<\/li>\n<\/ol>\n<p>\u8682\u8681\u91d1\u670d\uff1a<\/p>\n<p>\u4e8c\u9762\uff1a<code>java<\/code>\u5bf9\u8c61\u5934\u91cc\u6709\u4ec0\u4e48<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/12ff92349732b93d695a6f32a70b8e64.png#align=left&amp;display=inline&amp;height=322&amp;originHeight=711&amp;originWidth=1333&amp;size=0&amp;status=done&amp;style=none&amp;width=604\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/12ff92349732b93d695a6f32a70b8e64.png#align=left&amp;display=inline&amp;height=322&amp;originHeight=711&amp;originWidth=1333&amp;size=0&amp;status=done&amp;style=none&amp;width=604\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"_3068\"><\/a>\u5bf9\u8c61\u521b\u5efa\u7684\u65b9\u5f0f<\/h3>\n<ol>\n<li>new\uff1a\u6700\u5e38\u89c1\u7684\u65b9\u5f0f\u3001\u5355\u4f8b\u7c7b\u4e2d\u8c03\u7528getInstance\u7684\u9759\u6001\u7c7b\u65b9\u6cd5\uff0cXXXFactory\u7684\u9759\u6001\u65b9\u6cd5<\/li>\n<li>Class\u7684newInstance\u65b9\u6cd5\uff1a\u5728JDK9\u91cc\u9762\u88ab\u6807\u8bb0\u4e3a\u8fc7\u65f6\u7684\u65b9\u6cd5\uff0c\u56e0\u4e3a\u53ea\u80fd\u8c03\u7528\u7a7a\u53c2\u6784\u9020\u5668\uff0c\u5e76\u4e14\u6743\u9650\u5fc5\u987b\u4e3a public<\/li>\n<li>Constructor\u7684newInstance(Xxxx)\uff1a\u53cd\u5c04\u7684\u65b9\u5f0f\uff0c\u53ef\u4ee5\u8c03\u7528\u7a7a\u53c2\u7684\uff0c\u6216\u8005\u5e26\u53c2\u7684\u6784\u9020\u5668<\/li>\n<li>\u4f7f\u7528clone()\uff1a\u4e0d\u8c03\u7528\u4efb\u4f55\u7684\u6784\u9020\u5668\uff0c\u8981\u6c42\u5f53\u524d\u7684\u7c7b\u9700\u8981\u5b9e\u73b0Cloneable\u63a5\u53e3\u4e2d\u7684clone\u65b9\u6cd5<\/li>\n<li>\u4f7f\u7528\u5e8f\u5217\u5316\uff1a\u4ece\u6587\u4ef6\u4e2d\uff0c\u4ece\u7f51\u7edc\u4e2d\u83b7\u53d6\u4e00\u4e2a\u5bf9\u8c61\u7684\u4e8c\u8fdb\u5236\u6d41\uff0c\u5e8f\u5217\u5316\u4e00\u822c\u7528\u4e8eSocket\u7684\u7f51\u7edc\u4f20\u8f93<\/li>\n<li>\u7b2c\u4e09\u65b9\u5e93 Objenesis<\/li>\n<\/ol>\n<h3><a id=\"_3080\"><\/a>\u5bf9\u8c61\u521b\u5efa\u7684\u6b65\u9aa4<\/h3>\n<blockquote>\n<p><strong>\u4ece\u5b57\u8282\u7801\u770b\u5f85\u5bf9\u8c61\u7684\u521b\u5efa\u8fc7\u7a0b<\/strong><\/p>\n<\/blockquote>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">ObjectTest<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        Object obj <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Object<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<pre><code> public static void main(java.lang.String[]);\n    descriptor: ([Ljava\/lang\/String;)V\n    flags: ACC_PUBLIC, ACC_STATIC\n    Code:\n      stack=2, locals=2, args_size=1\n         0: new           #2                  \/\/ class java\/lang\/Object\n         3: dup           \n         4: invokespecial #1                  \/\/ Method java\/lang\/Object.\"&lt;init&gt;\":()V\n         7: astore_1\n         8: return\n      LineNumberTable:\n        line 9: 0\n        line 10: 8\n      LocalVariableTable:\n        Start  Length  Slot  Name   Signature\n            0       9     0  args   [Ljava\/lang\/String;\n            8       1     1   obj   Ljava\/lang\/Object;\n}\n<\/code><\/pre>\n<p><strong>1\u3001\u5224\u65ad\u5bf9\u8c61\u5bf9\u5e94\u7684\u7c7b\u662f\u5426\u52a0\u8f7d\u3001\u94fe\u63a5\u3001\u521d\u59cb\u5316<\/strong><\/p>\n<ol>\n<li>\u865a\u62df\u673a\u9047\u5230\u4e00\u6761new\u6307\u4ee4\uff0c\u9996\u5148\u53bb\u68c0\u67e5\u8fd9\u4e2a\u6307\u4ee4\u7684\u53c2\u6570\u80fd\u5426\u5728Metaspace\u7684\u5e38\u91cf\u6c60\u4e2d\u5b9a\u4f4d\u5230\u4e00\u4e2a\u7c7b\u7684\u7b26\u53f7\u5f15\u7528\uff0c\u5e76\u4e14\u68c0\u67e5\u8fd9\u4e2a\u7b26\u53f7\u5f15\u7528\u4ee3\u8868\u7684\u7c7b\u662f\u5426\u5df2\u7ecf\u88ab\u52a0\u8f7d\uff0c\u89e3\u6790\u548c\u521d\u59cb\u5316\u3002\uff08\u5373\u5224\u65ad\u7c7b\u5143\u4fe1\u606f\u662f\u5426\u5b58\u5728\uff09\u3002<\/li>\n<li>\u5982\u679c\u8be5\u7c7b\u6ca1\u6709\u52a0\u8f7d\uff0c\u90a3\u4e48\u5728\u53cc\u4eb2\u59d4\u6d3e\u6a21\u5f0f\u4e0b\uff0c\u4f7f\u7528\u5f53\u524d\u7c7b\u52a0\u8f7d\u5668\u4ee5ClassLoader + \u5305\u540d + \u7c7b\u540d\u4e3akey\u8fdb\u884c\u67e5\u627e\u5bf9\u5e94\u7684.class\u6587\u4ef6\uff0c\u5982\u679c\u6ca1\u6709\u627e\u5230\u6587\u4ef6\uff0c\u5219\u629b\u51faClassNotFoundException\u5f02\u5e38\uff0c\u5982\u679c\u627e\u5230\uff0c\u5219\u8fdb\u884c\u7c7b\u52a0\u8f7d\uff0c\u5e76\u751f\u6210\u5bf9\u5e94\u7684Class\u5bf9\u8c61\u3002<\/li>\n<\/ol>\n<p><strong>2\u3001\u4e3a\u5bf9\u8c61\u5206\u914d\u5185\u5b58<\/strong><\/p>\n<ol>\n<li>\u9996\u5148\u8ba1\u7b97\u5bf9\u8c61\u5360\u7528\u7a7a\u95f4\u7684\u5927\u5c0f\uff0c\u63a5\u7740\u5728\u5806\u4e2d\u5212\u5206\u4e00\u5757\u5185\u5b58\u7ed9\u65b0\u5bf9\u8c61\u3002\u5982\u679c\u5b9e\u4f8b\u6210\u5458\u53d8\u91cf\u662f\u5f15\u7528\u53d8\u91cf\uff0c\u4ec5\u5206\u914d\u5f15\u7528\u53d8\u91cf\u7a7a\u95f4\u5373\u53ef\uff0c\u53734\u4e2a\u5b57\u8282\u5927\u5c0f<\/li>\n<li>\u5982\u679c\u5185\u5b58\u89c4\u6574\uff1a\u91c7\u7528\u6307\u9488\u78b0\u649e\u5206\u914d\u5185\u5b58\n<ul>\n<li>\u5982\u679c\u5185\u5b58\u662f\u89c4\u6574\u7684\uff0c\u90a3\u4e48\u865a\u62df\u673a\u5c06\u91c7\u7528\u7684\u662f\u6307\u9488\u78b0\u649e\u6cd5\uff08Bump The Point\uff09\u6765\u4e3a\u5bf9\u8c61\u5206\u914d\u5185\u5b58\u3002<\/li>\n<li>\u610f\u601d\u662f\u6240\u6709\u7528\u8fc7\u7684\u5185\u5b58\u5728\u4e00\u8fb9\uff0c\u7a7a\u95f2\u7684\u5185\u5b58\u653e\u53e6\u5916\u4e00\u8fb9\uff0c\u4e2d\u95f4\u653e\u7740\u4e00\u4e2a\u6307\u9488\u4f5c\u4e3a\u5206\u754c\u70b9\u7684\u6307\u793a\u5668\uff0c\u5206\u914d\u5185\u5b58\u5c31\u4ec5\u4ec5\u662f\u628a\u6307\u9488\u5f80\u7a7a\u95f2\u5185\u5b58\u90a3\u8fb9\u632a\u52a8\u4e00\u6bb5\u4e0e\u5bf9\u8c61\u5927\u5c0f\u76f8\u7b49\u7684\u8ddd\u79bb\u7f62\u4e86\u3002<\/li>\n<li>\u5982\u679c\u5783\u573e\u6536\u96c6\u5668\u9009\u62e9\u7684\u662fSerial \uff0cParNew\u8fd9\u79cd\u57fa\u4e8e\u538b\u7f29\u7b97\u6cd5\u7684\uff0c\u865a\u62df\u673a\u91c7\u7528\u8fd9\u79cd\u5206\u914d\u65b9\u5f0f\u3002\u4e00\u822c\u4f7f\u7528\u5e26Compact\uff08\u6574\u7406\uff09\u8fc7\u7a0b\u7684\u6536\u96c6\u5668\u65f6\uff0c\u4f7f\u7528\u6307\u9488\u78b0\u649e\u3002<\/li>\n<li>\u6807\u8bb0\u538b\u7f29\uff08\u6574\u7406\uff09\u7b97\u6cd5\u4f1a\u6574\u7406\u5185\u5b58\u788e\u7247\uff0c\u5806\u5185\u5b58\u4e00\u5b58\u5bf9\u8c61\uff0c\u53e6\u4e00\u8fb9\u4e3a\u7a7a\u95f2\u533a\u57df<\/li>\n<\/ul>\n<\/li>\n<li>\u5982\u679c\u5185\u5b58\u4e0d\u89c4\u6574\n<ul>\n<li>\u5982\u679c\u5185\u5b58\u4e0d\u662f\u89c4\u6574\u7684\uff0c\u5df2\u4f7f\u7528\u7684\u5185\u5b58\u548c\u672a\u4f7f\u7528\u7684\u5185\u5b58\u76f8\u4e92\u4ea4\u9519\uff0c\u90a3\u4e48\u865a\u62df\u673a\u5c06\u91c7\u7528\u7684\u662f\u7a7a\u95f2\u5217\u8868\u6765\u4e3a\u5bf9\u8c61\u5206\u914d\u5185\u5b58\u3002<\/li>\n<li>\u610f\u601d\u662f\u865a\u62df\u673a\u7ef4\u62a4\u4e86\u4e00\u4e2a\u5217\u8868\uff0c\u8bb0\u5f55\u4e0a\u54ea\u4e9b\u5185\u5b58\u5757\u662f\u53ef\u7528\u7684\uff0c\u518d\u5206\u914d\u7684\u65f6\u5019\u4ece\u5217\u8868\u4e2d\u627e\u5230\u4e00\u5757\u8db3\u591f\u5927\u7684\u7a7a\u95f4\u5212\u5206\u7ed9\u5bf9\u8c61\u5b9e\u4f8b\uff0c\u5e76\u66f4\u65b0\u5217\u8868\u4e0a\u7684\u5185\u5bb9\u3002\u8fd9\u79cd\u5206\u914d\u65b9\u5f0f\u6210\u4e3a\u4e86 \u201c\u7a7a\u95f2\u5217\u8868\uff08Free List\uff09\u201d<\/li>\n<li>\u9009\u62e9\u54ea\u79cd\u5206\u914d\u65b9\u5f0f\u7531Java\u5806\u662f\u5426\u89c4\u6574\u6240\u51b3\u5b9a\uff0c\u800cJava\u5806\u662f\u5426\u89c4\u6574\u53c8\u7531\u6240\u91c7\u7528\u7684\u5783\u573e\u6536\u96c6\u5668\u662f\u5426\u5e26\u6709\u538b\u7f29\u6574\u7406\u529f\u80fd\u51b3\u5b9a<\/li>\n<li>\u6807\u8bb0\u6e05\u9664\u7b97\u6cd5\u6e05\u7406\u8fc7\u540e\u7684\u5806\u5185\u5b58\uff0c\u5c31\u4f1a\u5b58\u5728\u5f88\u591a\u5185\u5b58\u788e\u7247\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><strong>3\u3001\u5904\u7406\u5e76\u53d1\u95ee\u9898<\/strong><\/p>\n<ol>\n<li>\u91c7\u7528CAS+\u5931\u8d25\u91cd\u8bd5\u4fdd\u8bc1\u66f4\u65b0\u7684\u539f\u5b50\u6027<\/li>\n<li>\u6bcf\u4e2a\u7ebf\u7a0b\u9884\u5148\u5206\u914dTLAB - \u901a\u8fc7\u8bbe\u7f6e -XX:+UseTLAB\u53c2\u6570\u6765\u8bbe\u7f6e\uff08\u533a\u57df\u52a0\u9501\u673a\u5236\uff09<\/li>\n<li>\u5728Eden\u533a\u7ed9\u6bcf\u4e2a\u7ebf\u7a0b\u5206\u914d\u4e00\u5757\u533a\u57df<\/li>\n<\/ol>\n<p><strong>4\u3001\u521d\u59cb\u5316\u5206\u914d\u5230\u7684\u7a7a\u95f4<\/strong><\/p>\n<ul>\n<li>\u6240\u6709\u5c5e\u6027\u8bbe\u7f6e\u9ed8\u8ba4\u503c\uff0c\u4fdd\u8bc1\u5bf9\u8c61\u5b9e\u4f8b\u5b57\u6bb5\u5728\u4e0d\u8d4b\u503c\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528<\/li>\n<li>\u7ed9\u5bf9\u8c61\u5c5e\u6027\u8d4b\u503c\u7684\u987a\u5e8f\uff1a<\/li>\n<\/ul>\n<ol>\n<li>\u5c5e\u6027\u7684\u9ed8\u8ba4\u503c\u521d\u59cb\u5316<\/li>\n<li>\u663e\u793a\u521d\u59cb\u5316\/\u4ee3\u7801\u5757\u521d\u59cb\u5316\uff08\u5e76\u5217\u5173\u7cfb\uff0c\u8c01\u5148\u8c01\u540e\u770b\u4ee3\u7801\u7f16\u5199\u7684\u987a\u5e8f\uff09<\/li>\n<li>\u6784\u9020\u5668\u521d\u59cb\u5316<\/li>\n<\/ol>\n<p><strong>5\u3001\u8bbe\u7f6e\u5bf9\u8c61\u7684\u5bf9\u8c61\u5934<\/strong><\/p>\n<p>\u5c06\u5bf9\u8c61\u7684\u6240\u5c5e\u7c7b\uff08\u5373\u7c7b\u7684\u5143\u6570\u636e\u4fe1\u606f\uff09\u3001\u5bf9\u8c61\u7684HashCode\u548c\u5bf9\u8c61\u7684GC\u4fe1\u606f\u3001\u9501\u4fe1\u606f\u7b49\u6570\u636e\u5b58\u50a8\u5728\u5bf9\u8c61\u7684\u5bf9\u8c61\u5934\u4e2d\u3002\u8fd9\u4e2a\u8fc7\u7a0b\u7684\u5177\u4f53\u8bbe\u7f6e\u65b9\u5f0f\u53d6\u51b3\u4e8eJVM\u5b9e\u73b0\u3002<\/p>\n<p><strong>6\u3001\u6267\u884cinit\u65b9\u6cd5\u8fdb\u884c\u521d\u59cb\u5316<\/strong><\/p>\n<ol>\n<li>\u5728Java\u7a0b\u5e8f\u7684\u89c6\u89d2\u770b\u6765\uff0c\u521d\u59cb\u5316\u624d\u6b63\u5f0f\u5f00\u59cb\u3002\u521d\u59cb\u5316\u6210\u5458\u53d8\u91cf\uff0c\u6267\u884c\u5b9e\u4f8b\u5316\u4ee3\u7801\u5757\uff0c\u8c03\u7528\u7c7b\u7684\u6784\u9020\u65b9\u6cd5\uff0c\u5e76\u628a\u5806\u5185\u5bf9\u8c61\u7684\u9996\u5730\u5740\u8d4b\u503c\u7ed9\u5f15\u7528\u53d8\u91cf<\/li>\n<li>\u56e0\u6b64\u4e00\u822c\u6765\u8bf4\uff08\u7531\u5b57\u8282\u7801\u4e2d\u8ddf\u968finvokespecial\u6307\u4ee4\u6240\u51b3\u5b9a\uff09\uff0cnew\u6307\u4ee4\u4e4b\u540e\u4f1a\u63a5\u7740\u5c31\u662f\u6267\u884cinit\u65b9\u6cd5\uff0c\u628a\u5bf9\u8c61\u6309\u7167\u7a0b\u5e8f\u5458\u7684\u610f\u613f\u8fdb\u884c\u521d\u59cb\u5316\uff0c\u8fd9\u6837\u4e00\u4e2a\u771f\u6b63\u53ef\u7528\u7684\u5bf9\u8c61\u624d\u7b97\u5b8c\u6210\u521b\u5efa\u51fa\u6765\u3002<\/li>\n<\/ol>\n<blockquote>\n<p><strong>\u4ece\u5b57\u8282\u7801\u89d2\u5ea6\u770b init \u65b9\u6cd5<\/strong><\/p>\n<\/blockquote>\n<pre><code class=\"prism language-java\"><span class=\"token comment\">\/**\n * \u6d4b\u8bd5\u5bf9\u8c61\u5b9e\u4f8b\u5316\u7684\u8fc7\u7a0b\n *  \u2460 \u52a0\u8f7d\u7c7b\u5143\u4fe1\u606f - \u2461 \u4e3a\u5bf9\u8c61\u5206\u914d\u5185\u5b58 - \u2462 \u5904\u7406\u5e76\u53d1\u95ee\u9898  - \u2463 \u5c5e\u6027\u7684\u9ed8\u8ba4\u521d\u59cb\u5316\uff08\u96f6\u503c\u521d\u59cb\u5316\uff09\n *  - \u2464 \u8bbe\u7f6e\u5bf9\u8c61\u5934\u7684\u4fe1\u606f - \u2465 \u5c5e\u6027\u7684\u663e\u5f0f\u521d\u59cb\u5316\u3001\u4ee3\u7801\u5757\u4e2d\u521d\u59cb\u5316\u3001\u6784\u9020\u5668\u4e2d\u521d\u59cb\u5316\n *\n *\n *  \u7ed9\u5bf9\u8c61\u7684\u5c5e\u6027\u8d4b\u503c\u7684\u64cd\u4f5c\uff1a\n *  \u2460 \u5c5e\u6027\u7684\u9ed8\u8ba4\u521d\u59cb\u5316 - \u2461 \u663e\u5f0f\u521d\u59cb\u5316 \/ \u2462 \u4ee3\u7801\u5757\u4e2d\u521d\u59cb\u5316 - \u2463 \u6784\u9020\u5668\u4e2d\u521d\u59cb\u5316\n *\/<\/span>\n\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Customer<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">int<\/span> id <span class=\"token operator\">=<\/span> <span class=\"token number\">1001<\/span><span class=\"token punctuation\">;<\/span>\n    String name<span class=\"token punctuation\">;<\/span>\n    Account acct<span class=\"token punctuation\">;<\/span>\n\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        name <span class=\"token operator\">=<\/span> <span class=\"token string\">\"\u533f\u540d\u5ba2\u6237\"<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token function\">Customer<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        acct <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Account<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n<span class=\"token punctuation\">}<\/span>\n<span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Account<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p><strong>Customer\u7c7b\u7684\u5b57\u8282\u7801<\/strong><\/p>\n<pre><code class=\"prism language-java\"> <span class=\"token number\">0<\/span> aload_0\n <span class=\"token number\">1<\/span> invokespecial #<span class=\"token number\">1<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>Object<span class=\"token punctuation\">.<\/span><span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>init<span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token operator\">&gt;<\/span>\n <span class=\"token number\">4<\/span> aload_0\n <span class=\"token number\">5<\/span> sipush <span class=\"token number\">1001<\/span>\n <span class=\"token number\">8<\/span> putfield #<span class=\"token number\">2<\/span> <span class=\"token operator\">&lt;<\/span>com<span class=\"token operator\">\/<\/span>atguigu<span class=\"token operator\">\/<\/span>java<span class=\"token operator\">\/<\/span>Customer<span class=\"token punctuation\">.<\/span>id<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">11<\/span> aload_0\n<span class=\"token number\">12<\/span> ldc #<span class=\"token number\">3<\/span> <span class=\"token operator\">&lt;<\/span>\u533f\u540d\u5ba2\u6237<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">14<\/span> putfield #<span class=\"token number\">4<\/span> <span class=\"token operator\">&lt;<\/span>com<span class=\"token operator\">\/<\/span>atguigu<span class=\"token operator\">\/<\/span>java<span class=\"token operator\">\/<\/span>Customer<span class=\"token punctuation\">.<\/span>name<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">17<\/span> aload_0\n<span class=\"token number\">18<\/span> <span class=\"token keyword\">new<\/span> #<span class=\"token number\">5<\/span> <span class=\"token operator\">&lt;<\/span>com<span class=\"token operator\">\/<\/span>atguigu<span class=\"token operator\">\/<\/span>java<span class=\"token operator\">\/<\/span>Account<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">21<\/span> dup\n<span class=\"token number\">22<\/span> invokespecial #<span class=\"token number\">6<\/span> <span class=\"token operator\">&lt;<\/span>com<span class=\"token operator\">\/<\/span>atguigu<span class=\"token operator\">\/<\/span>java<span class=\"token operator\">\/<\/span>Account<span class=\"token punctuation\">.<\/span><span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>init<span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">25<\/span> putfield #<span class=\"token number\">7<\/span> <span class=\"token operator\">&lt;<\/span>com<span class=\"token operator\">\/<\/span>atguigu<span class=\"token operator\">\/<\/span>java<span class=\"token operator\">\/<\/span>Customer<span class=\"token punctuation\">.<\/span>acct<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">28<\/span> <span class=\"token keyword\">return<\/span>\n<\/code><\/pre>\n<ul>\n<li>init() \u65b9\u6cd5\u7684\u5b57\u8282\u7801\u6307\u4ee4\uff1a\n<ul>\n<li>\u5c5e\u6027\u7684\u9ed8\u8ba4\u503c\u521d\u59cb\u5316\uff1a<code>id = 1001;<\/code><\/li>\n<li>\u663e\u793a\u521d\u59cb\u5316\/\u4ee3\u7801\u5757\u521d\u59cb\u5316\uff1a<code>name = \"\u533f\u540d\u5ba2\u6237\";<\/code><\/li>\n<li>\u6784\u9020\u5668\u521d\u59cb\u5316\uff1a<code>acct = new Account();<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2><a id=\"_3242\"><\/a>\u5bf9\u8c61\u7684\u5185\u5b58\u5e03\u5c40<\/h2>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/e62695f40d7ff40468ed6b898aa0226b.png#align=left&amp;display=inline&amp;height=426&amp;originHeight=789&amp;originWidth=1613&amp;size=0&amp;status=done&amp;style=none&amp;width=870\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/e62695f40d7ff40468ed6b898aa0226b.png#align=left&amp;display=inline&amp;height=426&amp;originHeight=789&amp;originWidth=1613&amp;size=0&amp;status=done&amp;style=none&amp;width=870\" alt=\"\"><\/noscript><\/p>\n<blockquote>\n<p><strong>\u5185\u5b58\u5e03\u5c40\u603b\u7ed3<\/strong><\/p>\n<\/blockquote>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Customer<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">int<\/span> id <span class=\"token operator\">=<\/span> <span class=\"token number\">1001<\/span><span class=\"token punctuation\">;<\/span>\n    String name<span class=\"token punctuation\">;<\/span>\n    Account acct<span class=\"token punctuation\">;<\/span>\n\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        name <span class=\"token operator\">=<\/span> <span class=\"token string\">\"\u533f\u540d\u5ba2\u6237\"<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token function\">Customer<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        acct <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Account<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\t<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        Customer cust <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Customer<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Account<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u56fe\u89e3\u5185\u5b58\u5e03\u5c40<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/e1b6c621976b4ee13e0b4b8fd47da7a1.png#align=left&amp;display=inline&amp;height=727&amp;originHeight=727&amp;originWidth=1415&amp;size=0&amp;status=done&amp;style=none&amp;width=1415\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/e1b6c621976b4ee13e0b4b8fd47da7a1.png#align=left&amp;display=inline&amp;height=727&amp;originHeight=727&amp;originWidth=1415&amp;size=0&amp;status=done&amp;style=none&amp;width=1415\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"_3280\"><\/a>\u5bf9\u8c61\u7684\u8bbf\u95ee\u5b9a\u4f4d<\/h2>\n<p><strong>JVM\u662f\u5982\u4f55\u901a\u8fc7\u6808\u5e27\u4e2d\u7684\u5bf9\u8c61\u5f15\u7528\u8bbf\u95ee\u5230\u5176\u5185\u90e8\u7684\u5bf9\u8c61\u5b9e\u4f8b\u5462\uff1f<\/strong><\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/9e7dbf5844942984b020ba5231a5c4b6.png#align=left&amp;display=inline&amp;height=436&amp;originHeight=436&amp;originWidth=767&amp;size=0&amp;status=done&amp;style=none&amp;width=767\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/9e7dbf5844942984b020ba5231a5c4b6.png#align=left&amp;display=inline&amp;height=436&amp;originHeight=436&amp;originWidth=767&amp;size=0&amp;status=done&amp;style=none&amp;width=767\" alt=\"\"><\/noscript><\/p>\n<p>\u5b9a\u4f4d\uff0c\u901a\u8fc7\u6808\u4e0areference\u8bbf\u95ee<\/p>\n<p><strong>\u5bf9\u8c61\u7684\u4e24\u79cd\u8bbf\u95ee\u65b9\u5f0f\uff1a\u53e5\u67c4\u8bbf\u95ee\u548c\u76f4\u63a5\u6307\u9488<\/strong><\/p>\n<p><strong>1\u3001\u53e5\u67c4\u8bbf\u95ee<\/strong><\/p>\n<ol>\n<li>\u7f3a\u70b9\uff1a\u5728\u5806\u7a7a\u95f4\u4e2d\u5f00\u8f9f\u4e86\u4e00\u5757\u7a7a\u95f4\u4f5c\u4e3a\u53e5\u67c4\u6c60\uff0c\u53e5\u67c4\u6c60\u672c\u8eab\u4e5f\u4f1a\u5360\u7528\u7a7a\u95f4\uff1b\u901a\u8fc7\u4e24\u6b21\u6307\u9488\u8bbf\u95ee\u624d\u80fd\u8bbf\u95ee\u5230\u5806\u4e2d\u7684\u5bf9\u8c61\uff0c\u6548\u7387\u4f4e<\/li>\n<li>\u4f18\u70b9\uff1areference\u4e2d\u5b58\u50a8\u7a33\u5b9a\u53e5\u67c4\u5730\u5740\uff0c\u5bf9\u8c61\u88ab\u79fb\u52a8\uff08\u5783\u573e\u6536\u96c6\u65f6\u79fb\u52a8\u5bf9\u8c61\u5f88\u666e\u904d\uff09\u65f6\u53ea\u4f1a\u6539\u53d8\u53e5\u67c4\u4e2d\u5b9e\u4f8b\u6570\u636e\u6307\u9488\u5373\u53ef\uff0creference\u672c\u8eab\u4e0d\u9700\u8981\u88ab\u4fee\u6539<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/e6a99512372eef387115f29b31b1ce17.png#align=left&amp;display=inline&amp;height=384&amp;originHeight=690&amp;originWidth=1132&amp;size=0&amp;status=done&amp;style=none&amp;width=630\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/e6a99512372eef387115f29b31b1ce17.png#align=left&amp;display=inline&amp;height=384&amp;originHeight=690&amp;originWidth=1132&amp;size=0&amp;status=done&amp;style=none&amp;width=630\" alt=\"\"><\/noscript><\/p>\n<p><strong>2\u3001\u76f4\u63a5\u6307\u9488\uff08HotSpot\u91c7\u7528\uff09<\/strong><\/p>\n<ol>\n<li>\u4f18\u70b9\uff1a\u76f4\u63a5\u6307\u9488\u662f\u5c40\u90e8\u53d8\u91cf\u8868\u4e2d\u7684\u5f15\u7528\uff0c\u76f4\u63a5\u6307\u5411\u5806\u4e2d\u7684\u5b9e\u4f8b\uff0c\u5728\u5bf9\u8c61\u5b9e\u4f8b\u4e2d\u6709\u7c7b\u578b\u6307\u9488\uff0c\u6307\u5411\u7684\u662f\u65b9\u6cd5\u533a\u4e2d\u7684\u5bf9\u8c61\u7c7b\u578b\u6570\u636e<\/li>\n<li>\u7f3a\u70b9\uff1a\u5bf9\u8c61\u88ab\u79fb\u52a8\uff08\u5783\u573e\u6536\u96c6\u65f6\u79fb\u52a8\u5bf9\u8c61\u5f88\u666e\u904d\uff09\u65f6\u9700\u8981\u4fee\u6539 reference \u7684\u503c<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/3f35238bf68bf3153ddefec56887f407.png#align=left&amp;display=inline&amp;height=443&amp;originHeight=677&amp;originWidth=1139&amp;size=0&amp;status=done&amp;style=none&amp;width=745\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/3f35238bf68bf3153ddefec56887f407.png#align=left&amp;display=inline&amp;height=443&amp;originHeight=677&amp;originWidth=1139&amp;size=0&amp;status=done&amp;style=none&amp;width=745\" alt=\"\"><\/noscript><\/p>\n<h1><a id=\"_3317\"><\/a>\u516b\u3001\u6267\u884c\u5f15\u64ce<\/h1>\n<h2><a id=\"_3320\"><\/a>\u6267\u884c\u5f15\u64ce\u6982\u8ff0<\/h2>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/99fd5bdfa0335828754428b39a295fa9.png#align=left&amp;display=inline&amp;height=357&amp;originHeight=630&amp;originWidth=1003&amp;size=0&amp;status=done&amp;style=none&amp;width=569\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/99fd5bdfa0335828754428b39a295fa9.png#align=left&amp;display=inline&amp;height=357&amp;originHeight=630&amp;originWidth=1003&amp;size=0&amp;status=done&amp;style=none&amp;width=569\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"_3326\"><\/a>\u6267\u884c\u5f15\u64ce\u6982\u8ff0<\/h3>\n<ol>\n<li>\u6267\u884c\u5f15\u64ce\u662fJava\u865a\u62df\u673a\u6838\u5fc3\u7684\u7ec4\u6210\u90e8\u5206\u4e4b\u4e00\u3002<\/li>\n<li>\u201c\u865a\u62df\u673a\u201d\u662f\u4e00\u4e2a\u76f8\u5bf9\u4e8e\u201c\u7269\u7406\u673a\u201d\u7684\u6982\u5ff5\uff0c\u8fd9\u4e24\u79cd\u673a\u5668\u90fd\u6709\u4ee3\u7801\u6267\u884c\u80fd\u529b\uff0c\u5176\u533a\u522b\u662f\u7269\u7406\u673a\u7684\u6267\u884c\u5f15\u64ce\u662f\u76f4\u63a5\u5efa\u7acb\u5728\u5904\u7406\u5668\u3001\u7f13\u5b58\u3001\u6307\u4ee4\u96c6\u548c\u64cd\u4f5c\u7cfb\u7edf\u5c42\u9762\u4e0a\u7684\uff0c\u800c<strong>\u865a\u62df\u673a\u7684\u6267\u884c\u5f15\u64ce\u5219\u662f\u7531\u8f6f\u4ef6\u81ea\u884c\u5b9e\u73b0\u7684<\/strong>\uff0c\u56e0\u6b64\u53ef\u4ee5\u4e0d\u53d7\u7269\u7406\u6761\u4ef6\u5236\u7ea6\u5730\u5b9a\u5236\u6307\u4ee4\u96c6\u4e0e\u6267\u884c\u5f15\u64ce\u7684\u7ed3\u6784\u4f53\u7cfb\uff0c<strong>\u80fd\u591f\u6267\u884c\u90a3\u4e9b\u4e0d\u88ab\u786c\u4ef6\u76f4\u63a5\u652f\u6301\u7684\u6307\u4ee4\u96c6\u683c\u5f0f<\/strong>\u3002<\/li>\n<li>JVM\u7684\u4e3b\u8981\u4efb\u52a1\u662f\u8d1f\u8d23<strong>\u88c5\u8f7d\u5b57\u8282\u7801\u5230\u5176\u5185\u90e8<\/strong>\uff0c\u4f46\u5b57\u8282\u7801\u5e76\u4e0d\u80fd\u591f\u76f4\u63a5\u8fd0\u884c\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e4b\u4e0a\uff0c\u56e0\u4e3a\u5b57\u8282\u7801\u6307\u4ee4\u5e76\u975e\u7b49\u4ef7\u4e8e\u672c\u5730\u673a\u5668\u6307\u4ee4\uff0c\u5b83\u5185\u90e8\u5305\u542b\u7684\u4ec5\u4ec5\u53ea\u662f\u4e00\u4e9b\u80fd\u591f\u88abJVM\u6240\u8bc6\u522b\u7684\u5b57\u8282\u7801\u6307\u4ee4\u3001\u7b26\u53f7\u8868\uff0c\u4ee5\u53ca\u5176\u4ed6\u8f85\u52a9\u4fe1\u606f\u3002<\/li>\n<li>\u90a3\u4e48\uff0c\u5982\u679c\u60f3\u8981\u8ba9\u4e00\u4e2aJava\u7a0b\u5e8f\u8fd0\u884c\u8d77\u6765\uff0c\u6267\u884c\u5f15\u64ce\uff08Execution Engine\uff09\u7684\u4efb\u52a1\u5c31\u662f<strong>\u5c06\u5b57\u8282\u7801\u6307\u4ee4\u89e3\u91ca\/\u7f16\u8bd1\u4e3a\u5bf9\u5e94\u5e73\u53f0\u4e0a\u7684\u672c\u5730\u673a\u5668\u6307\u4ee4\u624d\u53ef\u4ee5<\/strong>\u3002\u7b80\u5355\u6765\u8bf4\uff0cJVM\u4e2d\u7684\u6267\u884c\u5f15\u64ce\u5145\u5f53\u4e86\u5c06\u9ad8\u7ea7\u8bed\u8a00\u7ffb\u8bd1\u4e3a\u673a\u5668\u8bed\u8a00\u7684\u8bd1\u8005\u3002<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/1f54e1d505839d30407c45474970cd8f.png#align=left&amp;display=inline&amp;height=539&amp;originHeight=539&amp;originWidth=1186&amp;size=0&amp;status=done&amp;style=none&amp;width=1186\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/1f54e1d505839d30407c45474970cd8f.png#align=left&amp;display=inline&amp;height=539&amp;originHeight=539&amp;originWidth=1186&amp;size=0&amp;status=done&amp;style=none&amp;width=1186\" alt=\"\"><\/noscript><\/p>\n<p>1\u3001\u524d\u7aef\u7f16\u8bd1\uff1a\u4eceJava\u7a0b\u5e8f\u5458-\u5b57\u8282\u7801\u6587\u4ef6\u7684\u8fd9\u4e2a\u8fc7\u7a0b\u53eb\u524d\u7aef\u7f16\u8bd1<\/p>\n<p>2\u3001\u6267\u884c\u5f15\u64ce\u8fd9\u91cc\u6709\u4e24\u79cd\u884c\u4e3a\uff1a\u4e00\u79cd\u662f\u89e3\u91ca\u6267\u884c\uff0c\u4e00\u79cd\u662f\u7f16\u8bd1\u6267\u884c\uff08\u8fd9\u91cc\u7684\u662f\u540e\u7aef\u7f16\u8bd1\uff09\u3002<\/p>\n<h3><a id=\"_3345\"><\/a>\u6267\u884c\u5f15\u64ce\u5de5\u4f5c\u8fc7\u7a0b<\/h3>\n<blockquote>\n<p><strong>\u6267\u884c\u5f15\u64ce\u5de5\u4f5c\u8fc7\u7a0b<\/strong><\/p>\n<\/blockquote>\n<ol>\n<li>\u6267\u884c\u5f15\u64ce\u5728\u6267\u884c\u7684\u8fc7\u7a0b\u4e2d\u7a76\u7adf\u9700\u8981\u6267\u884c\u4ec0\u4e48\u6837\u7684\u5b57\u8282\u7801\u6307\u4ee4\u5b8c\u5168\u4f9d\u8d56\u4e8ePC\u5bc4\u5b58\u5668\u3002<\/li>\n<li>\u6bcf\u5f53\u6267\u884c\u5b8c\u4e00\u9879\u6307\u4ee4\u64cd\u4f5c\u540e\uff0cPC\u5bc4\u5b58\u5668\u5c31\u4f1a\u66f4\u65b0\u4e0b\u4e00\u6761\u9700\u8981\u88ab\u6267\u884c\u7684\u6307\u4ee4\u5730\u5740\u3002<\/li>\n<li>\u5f53\u7136\u65b9\u6cd5\u5728\u6267\u884c\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6267\u884c\u5f15\u64ce\u6709\u53ef\u80fd\u4f1a\u901a\u8fc7\u5b58\u50a8\u5728\u5c40\u90e8\u53d8\u91cf\u8868\u4e2d\u7684\u5bf9\u8c61\u5f15\u7528\u51c6\u786e\u5b9a\u4f4d\u5230\u5b58\u50a8\u5728Java\u5806\u533a\u4e2d\u7684\u5bf9\u8c61\u5b9e\u4f8b\u4fe1\u606f\uff0c\u4ee5\u53ca\u901a\u8fc7\u5bf9\u8c61\u5934\u4e2d\u7684\u5143\u6570\u636e\u6307\u9488\u5b9a\u4f4d\u5230\u76ee\u6807\u5bf9\u8c61\u7684\u7c7b\u578b\u4fe1\u606f\u3002<\/li>\n<li>\u4ece\u5916\u89c2\u4e0a\u6765\u770b\uff0c\u6240\u6709\u7684Java\u865a\u62df\u673a\u7684\u6267\u884c\u5f15\u64ce\u8f93\u5165\u3001\u5904\u7406\u3001\u8f93\u51fa\u90fd\u662f\u4e00\u81f4\u7684\uff1a\u8f93\u5165\u7684\u662f\u5b57\u8282\u7801\u4e8c\u8fdb\u5236\u6d41\uff0c\u5904\u7406\u8fc7\u7a0b\u662f\u5b57\u8282\u7801\u89e3\u6790\u6267\u884c\u3001\u5373\u65f6\u7f16\u8bd1\u7684\u7b49\u6548\u8fc7\u7a0b\uff0c\u8f93\u51fa\u7684\u662f\u6267\u884c\u8fc7\u7a0b\u3002<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/d29b67b0f0537446343e83d9c0678c9d.png#align=left&amp;display=inline&amp;height=621&amp;originHeight=621&amp;originWidth=701&amp;size=0&amp;status=done&amp;style=none&amp;width=701\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/d29b67b0f0537446343e83d9c0678c9d.png#align=left&amp;display=inline&amp;height=621&amp;originHeight=621&amp;originWidth=701&amp;size=0&amp;status=done&amp;style=none&amp;width=701\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"Java_3362\"><\/a>Java\u4ee3\u7801\u7f16\u8bd1\u548c\u6267\u884c\u8fc7\u7a0b<\/h2>\n<h3><a id=\"_3365\"><\/a>\u89e3\u91ca\u6267\u884c\u548c\u5373\u65f6\u7f16\u8bd1<\/h3>\n<p>\u5927\u90e8\u5206\u7684\u7a0b\u5e8f\u4ee3\u7801\u8f6c\u6362\u6210\u7269\u7406\u673a\u7684\u76ee\u6807\u4ee3\u7801\u6216\u865a\u62df\u673a\u80fd\u6267\u884c\u7684\u6307\u4ee4\u96c6\u4e4b\u524d\uff0c\u90fd\u9700\u8981\u7ecf\u8fc7\u4e0b\u56fe\u4e2d\u7684\u5404\u4e2a\u6b65\u9aa4\uff1a<\/p>\n<ol>\n<li>\u524d\u9762\u6a59\u8272\u90e8\u5206\u662f\u7f16\u8bd1\u751f\u6210\u751f\u6210\u5b57\u8282\u7801\u6587\u4ef6\u7684\u8fc7\u7a0b\uff08javac\u7f16\u8bd1\u5668\u6765\u5b8c\u6210\uff0c\u4e5f\u5c31\u662f\u524d\u7aef\u7f16\u8bd1\u5668\uff09\uff0c\u548cJVM\u6ca1\u6709\u5173\u7cfb\u3002<\/li>\n<li>\u540e\u9762\u7eff\u8272\uff08\u89e3\u91ca\u6267\u884c\uff09\u548c\u84dd\u8272\uff08\u5373\u65f6\u7f16\u8bd1\uff09\u624d\u662fJVM\u9700\u8981\u8003\u8651\u7684\u8fc7\u7a0b<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/124b68d7153d04b088b4174987f3f72b.png#align=left&amp;display=inline&amp;height=342&amp;originHeight=484&amp;originWidth=1019&amp;size=0&amp;status=done&amp;style=none&amp;width=721\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/124b68d7153d04b088b4174987f3f72b.png#align=left&amp;display=inline&amp;height=342&amp;originHeight=484&amp;originWidth=1019&amp;size=0&amp;status=done&amp;style=none&amp;width=721\" alt=\"\"><\/noscript><\/p>\n<ol start=\"3\">\n<li>javac\u7f16\u8bd1\u5668\uff08\u524d\u7aef\u7f16\u8bd1\u5668\uff09\u6d41\u7a0b\u56fe\u5982\u4e0b\u6240\u793a\uff1a<img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/d58d7c710c9e8c1dd6a00c342fa0efdf.png#align=left&amp;display=inline&amp;height=140&amp;originHeight=281&amp;originWidth=948&amp;size=0&amp;status=done&amp;style=none&amp;width=472\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/d58d7c710c9e8c1dd6a00c342fa0efdf.png#align=left&amp;display=inline&amp;height=140&amp;originHeight=281&amp;originWidth=948&amp;size=0&amp;status=done&amp;style=none&amp;width=472\" alt=\"\"><\/noscript><\/li>\n<li>Java\u5b57\u8282\u7801\u7684\u6267\u884c\u662f\u7531JVM\u6267\u884c\u5f15\u64ce\u6765\u5b8c\u6210\uff0c\u6d41\u7a0b\u56fe\u5982\u4e0b\u6240\u793a<img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/8281ddf278f1a97f41efe0fc59c38472.png#align=left&amp;display=inline&amp;height=275&amp;originHeight=412&amp;originWidth=950&amp;size=0&amp;status=done&amp;style=none&amp;width=633\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/8281ddf278f1a97f41efe0fc59c38472.png#align=left&amp;display=inline&amp;height=275&amp;originHeight=412&amp;originWidth=950&amp;size=0&amp;status=done&amp;style=none&amp;width=633\" alt=\"\"><\/noscript><\/li>\n<\/ol>\n<h3><a id=\"JIT_3384\"><\/a>\u4ec0\u4e48\u662f\u89e3\u91ca\u5668\uff1f\u4ec0\u4e48\u662fJIT\u7f16\u8bd1\u5668\uff1f<\/h3>\n<ol>\n<li>\u89e3\u91ca\u5668\uff1a\u5f53Java\u865a\u62df\u673a\u542f\u52a8\u65f6\u4f1a\u6839\u636e\u9884\u5b9a\u4e49\u7684\u89c4\u8303\u5bf9\u5b57\u8282\u7801\u91c7\u7528<strong>\u9010\u884c<\/strong>\u89e3\u91ca\u7684\u65b9\u5f0f<strong>\u6267\u884c<\/strong>\uff0c\u5c06\u6bcf\u6761\u5b57\u8282\u7801\u6587\u4ef6\u4e2d\u7684\u5185\u5bb9\u201c\u7ffb\u8bd1\u201d\u4e3a\u5bf9\u5e94\u5e73\u53f0\u7684\u672c\u5730\u673a\u5668\u6307\u4ee4\u6267\u884c\u3002<\/li>\n<li>JIT\uff08Just In Time Compiler\uff09\u7f16\u8bd1\u5668\uff1a\u5c31\u662f\u865a\u62df\u673a\u5c06\u6e90\u4ee3\u7801<strong>\u4e00\u6b21\u6027\u76f4\u63a5<\/strong>\u7f16\u8bd1\u6210\u548c\u672c\u5730\u673a\u5668\u5e73\u53f0\u76f8\u5173\u7684\u673a\u5668\u8bed\u8a00\uff0c<strong>\u4f46\u5e76\u4e0d\u662f\u9a6c\u4e0a\u6267\u884c<\/strong>\u3002<\/li>\n<\/ol>\n<p><strong>\u4e3a\u4ec0\u4e48Java\u662f\u534a\u7f16\u8bd1\u534a\u89e3\u91ca\u578b\u8bed\u8a00\uff1f<\/strong><\/p>\n<ol>\n<li>JDK1.0\u65f6\u4ee3\uff0c\u5c06Java\u8bed\u8a00\u5b9a\u4f4d\u4e3a\u201c\u89e3\u91ca\u6267\u884c\u201d\u8fd8\u662f\u6bd4\u8f83\u51c6\u786e\u7684\u3002\u518d\u540e\u6765\uff0cJava\u4e5f\u53d1\u5c55\u51fa\u53ef\u4ee5\u76f4\u63a5\u751f\u6210\u672c\u5730\u4ee3\u7801\u7684\u7f16\u8bd1\u5668\u3002<\/li>\n<li>\u73b0\u5728JVM\u5728\u6267\u884cJava\u4ee3\u7801\u7684\u65f6\u5019\uff0c\u901a\u5e38\u90fd\u4f1a\u5c06\u89e3\u91ca\u6267\u884c\u4e0e\u7f16\u8bd1\u6267\u884c\u4e8c\u8005\u7ed3\u5408\u8d77\u6765\u8fdb\u884c\u3002<\/li>\n<li>JIT\u7f16\u8bd1\u5668\u5c06\u5b57\u8282\u7801\u7ffb\u8bd1\u6210\u672c\u5730\u4ee3\u7801\u540e\uff0c\u5c31\u53ef\u4ee5\u505a\u4e00\u4e2a\u7f13\u5b58\u64cd\u4f5c\uff0c\u5b58\u50a8\u5728\u65b9\u6cd5\u533a\u7684JIT \u4ee3\u7801\u7f13\u5b58\u4e2d\uff08\u6267\u884c\u6548\u7387\u66f4\u9ad8\u4e86\uff09\uff0c\u5e76\u4e14\u5728\u7ffb\u8bd1\u6210\u672c\u5730\u4ee3\u7801\u7684\u8fc7\u7a0b\u4e2d\u53ef\u4ee5\u505a\u4f18\u5316\u3002<\/li>\n<\/ol>\n<p><strong>\u7528\u56fe\u603b\u7ed3\u4e00\u4e0b<\/strong><\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f48bbf2cf59fdf950412184dc93f1f25.png#align=left&amp;display=inline&amp;height=377&amp;originHeight=719&amp;originWidth=1378&amp;size=0&amp;status=done&amp;style=none&amp;width=723\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f48bbf2cf59fdf950412184dc93f1f25.png#align=left&amp;display=inline&amp;height=377&amp;originHeight=719&amp;originWidth=1378&amp;size=0&amp;status=done&amp;style=none&amp;width=723\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"___3407\"><\/a>\u673a\u5668\u7801 \u6307\u4ee4 \u6c47\u7f16\u8bed\u8a00<\/h2>\n<h3><a id=\"_3410\"><\/a>\u673a\u5668\u7801<\/h3>\n<ol>\n<li>\u5404\u79cd\u7528\u4e8c\u8fdb\u5236\u7f16\u7801\u65b9\u5f0f\u8868\u793a\u7684\u6307\u4ee4\uff0c\u53eb\u505a\u673a\u5668\u6307\u4ee4\u7801\u3002\u5f00\u59cb\uff0c\u4eba\u4eec\u5c31\u7528\u5b83\u91c7\u7f16\u5199\u7a0b\u5e8f\uff0c\u8fd9\u5c31\u662f\u673a\u5668\u8bed\u8a00\u3002<\/li>\n<li>\u673a\u5668\u8bed\u8a00\u867d\u7136\u80fd\u591f\u88ab\u8ba1\u7b97\u673a\u7406\u89e3\u548c\u63a5\u53d7\uff0c\u4f46\u548c\u4eba\u4eec\u7684\u8bed\u8a00\u5dee\u522b\u592a\u5927\uff0c\u4e0d\u6613\u88ab\u4eba\u4eec\u7406\u89e3\u548c\u8bb0\u5fc6\uff0c\u5e76\u4e14\u7528\u5b83\u7f16\u7a0b\u5bb9\u6613\u51fa\u5dee\u9519\u3002<\/li>\n<li>\u7528\u5b83\u7f16\u5199\u7684\u7a0b\u5e8f\u4e00\u7ecf\u8f93\u5165\u8ba1\u7b97\u673a\uff0cCPU\u76f4\u63a5\u8bfb\u53d6\u8fd0\u884c\uff0c\u56e0\u6b64\u548c\u5176\u4ed6\u8bed\u8a00\u7f16\u7684\u7a0b\u5e8f\u76f8\u6bd4\uff0c\u6267\u884c\u901f\u5ea6\u6700\u5feb\u3002<\/li>\n<li>\u673a\u5668\u6307\u4ee4\u4e0eCPU\u7d27\u5bc6\u76f8\u5173\uff0c\u6240\u4ee5\u4e0d\u540c\u79cd\u7c7b\u7684CPU\u6240\u5bf9\u5e94\u7684\u673a\u5668\u6307\u4ee4\u4e5f\u5c31\u4e0d\u540c\u3002<\/li>\n<\/ol>\n<h3><a id=\"_3420\"><\/a>\u6307\u4ee4\u548c\u6307\u4ee4\u96c6<\/h3>\n<p><strong>\u6307\u4ee4<\/strong><\/p>\n<ol>\n<li>\u7531\u4e8e\u673a\u5668\u7801\u662f\u75310\u548c1\u7ec4\u6210\u7684\u4e8c\u8fdb\u5236\u5e8f\u5217\uff0c\u53ef\u8bfb\u6027\u5b9e\u5728\u592a\u5dee\uff0c\u4e8e\u662f\u4eba\u4eec\u53d1\u660e\u4e86\u6307\u4ee4\u3002<\/li>\n<li>\u6307\u4ee4\u5c31\u662f\u628a\u673a\u5668\u7801\u4e2d\u7279\u5b9a\u76840\u548c1\u5e8f\u5217\uff0c\u7b80\u5316\u6210\u5bf9\u5e94\u7684\u6307\u4ee4\uff08\u4e00\u822c\u4e3a\u82f1\u6587\u7b80\u5199\uff0c\u5982mov\uff0cinc\u7b49\uff09\uff0c\u53ef\u8bfb\u6027\u7a0d\u597d<\/li>\n<li>\u7531\u4e8e\u4e0d\u540c\u7684\u786c\u4ef6\u5e73\u53f0\uff0c\u6267\u884c\u540c\u4e00\u4e2a\u64cd\u4f5c\uff0c\u5bf9\u5e94\u7684\u673a\u5668\u7801\u53ef\u80fd\u4e0d\u540c\uff0c\u6240\u4ee5\u4e0d\u540c\u7684\u786c\u4ef6\u5e73\u53f0\u7684\u540c\u4e00\u79cd\u6307\u4ee4\uff08\u6bd4\u5982mov\uff09\uff0c\u5bf9\u5e94\u7684\u673a\u5668\u7801\u4e5f\u53ef\u80fd\u4e0d\u540c\u3002<\/li>\n<\/ol>\n<p><strong>\u6307\u4ee4\u96c6<\/strong><\/p>\n<p>\u4e0d\u540c\u7684\u786c\u4ef6\u5e73\u53f0\uff0c\u5404\u81ea\u652f\u6301\u7684\u6307\u4ee4\uff0c\u662f\u6709\u5dee\u522b\u7684\u3002\u56e0\u6b64\u6bcf\u4e2a\u5e73\u53f0\u6240\u652f\u6301\u7684\u6307\u4ee4\uff0c\u79f0\u4e4b\u4e3a\u5bf9\u5e94\u5e73\u53f0\u7684\u6307\u4ee4\u96c6\u3002\u5982\u5e38\u89c1\u7684<\/p>\n<ol>\n<li>x86\u6307\u4ee4\u96c6\uff0c\u5bf9\u5e94\u7684\u662fx86\u67b6\u6784\u7684\u5e73\u53f0<\/li>\n<li>ARM\u6307\u4ee4\u96c6\uff0c\u5bf9\u5e94\u7684\u662fARM\u67b6\u6784\u7684\u5e73\u53f0<\/li>\n<\/ol>\n<h3><a id=\"_3443\"><\/a>\u6c47\u7f16\u8bed\u8a00<\/h3>\n<ol>\n<li>\u7531\u4e8e\u6307\u4ee4\u7684\u53ef\u8bfb\u6027\u8fd8\u662f\u592a\u5dee\uff0c\u4e8e\u662f\u4eba\u4eec\u53c8\u53d1\u660e\u4e86\u6c47\u7f16\u8bed\u8a00\u3002<\/li>\n<li>\u5728\u6c47\u7f16\u8bed\u8a00\u4e2d\uff0c\u7528\u52a9\u8bb0\u7b26\uff08Mnemonics\uff09\u4ee3\u66ff\u673a\u5668\u6307\u4ee4\u7684\u64cd\u4f5c\u7801\uff0c\u7528\u5730\u5740\u7b26\u53f7\uff08Symbol\uff09\u6216\u6807\u53f7\uff08Label\uff09\u4ee3\u66ff\u6307\u4ee4\u6216\u64cd\u4f5c\u6570\u7684\u5730\u5740\u3002<\/li>\n<li>\u5728\u4e0d\u540c\u7684\u786c\u4ef6\u5e73\u53f0\uff0c\u6c47\u7f16\u8bed\u8a00\u5bf9\u5e94\u7740\u4e0d\u540c\u7684\u673a\u5668\u8bed\u8a00\u6307\u4ee4\u96c6\uff0c\u901a\u8fc7\u6c47\u7f16\u8fc7\u7a0b\u8f6c\u6362\u6210\u673a\u5668\u6307\u4ee4\u3002<\/li>\n<li>\u7531\u4e8e\u8ba1\u7b97\u673a\u53ea\u8ba4\u8bc6\u6307\u4ee4\u7801\uff0c\u6240\u4ee5\u7528\u6c47\u7f16\u8bed\u8a00\u7f16\u5199\u7684\u7a0b\u5e8f\u8fd8\u5fc5\u987b\u7ffb\u8bd1\uff08\u6c47\u7f16\uff09\u6210\u673a\u5668\u6307\u4ee4\u7801\uff0c\u8ba1\u7b97\u673a\u624d\u80fd\u8bc6\u522b\u548c\u6267\u884c\u3002<\/li>\n<\/ol>\n<h3><a id=\"_3453\"><\/a>\u9ad8\u7ea7\u8bed\u8a00<\/h3>\n<ol>\n<li>\u4e3a\u4e86\u4f7f\u8ba1\u7b97\u673a\u7528\u6237\u7f16\u7a0b\u5e8f\u66f4\u5bb9\u6613\u4e9b\uff0c\u540e\u6765\u5c31\u51fa\u73b0\u4e86\u5404\u79cd\u9ad8\u7ea7\u8ba1\u7b97\u673a\u8bed\u8a00\u3002\u9ad8\u7ea7\u8bed\u8a00\u6bd4\u673a\u5668\u8bed\u8a00\u3001\u6c47\u7f16\u8bed\u8a00\u66f4\u63a5\u8fd1\u4eba\u7684\u8bed\u8a00<\/li>\n<li>\u5f53\u8ba1\u7b97\u673a\u6267\u884c\u9ad8\u7ea7\u8bed\u8a00\u7f16\u5199\u7684\u7a0b\u5e8f\u65f6\uff0c\u4ecd\u7136\u9700\u8981\u628a\u7a0b\u5e8f\u89e3\u91ca\u548c\u7f16\u8bd1\u6210\u673a\u5668\u7684\u6307\u4ee4\u7801\u3002\u5b8c\u6210\u8fd9\u4e2a\u8fc7\u7a0b\u7684\u7a0b\u5e8f\u5c31\u53eb\u505a\u89e3\u91ca\u7a0b\u5e8f\u6216\u7f16\u8bd1\u7a0b\u5e8f\u3002<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f3696bad50b050ef307aadf8f994f7e4.png#align=left&amp;display=inline&amp;height=568&amp;originHeight=568&amp;originWidth=892&amp;size=0&amp;status=done&amp;style=none&amp;width=892\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f3696bad50b050ef307aadf8f994f7e4.png#align=left&amp;display=inline&amp;height=568&amp;originHeight=568&amp;originWidth=892&amp;size=0&amp;status=done&amp;style=none&amp;width=892\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"_3464\"><\/a>\u5b57\u8282\u7801<\/h3>\n<ol>\n<li>\u5b57\u8282\u7801\u662f\u4e00\u79cd\u4e2d\u95f4\u72b6\u6001\uff08\u4e2d\u95f4\u7801\uff09\u7684\u4e8c\u8fdb\u5236\u4ee3\u7801\uff08\u6587\u4ef6\uff09\uff0c\u5b83\u6bd4\u673a\u5668\u7801\u66f4\u62bd\u8c61\uff0c\u9700\u8981\u76f4\u8bd1\u5668\u8f6c\u8bd1\u540e\u624d\u80fd\u6210\u4e3a\u673a\u5668\u7801<\/li>\n<li>\u5b57\u8282\u7801\u4e3b\u8981\u4e3a\u4e86\u5b9e\u73b0\u7279\u5b9a\u8f6f\u4ef6\u8fd0\u884c\u548c\u8f6f\u4ef6\u73af\u5883\u3001\u4e0e\u786c\u4ef6\u73af\u5883\u65e0\u5173\u3002<\/li>\n<li>\u5b57\u8282\u7801\u7684\u5b9e\u73b0\u65b9\u5f0f\u662f\u901a\u8fc7\u7f16\u8bd1\u5668\u548c\u865a\u62df\u673a\u5668\u3002\u7f16\u8bd1\u5668\u5c06\u6e90\u7801\u7f16\u8bd1\u6210\u5b57\u8282\u7801\uff0c\u7279\u5b9a\u5e73\u53f0\u4e0a\u7684\u865a\u62df\u673a\u5668\u5c06\u5b57\u8282\u7801\u8f6c\u8bd1\u4e3a\u53ef\u4ee5\u76f4\u63a5\u6267\u884c\u7684\u6307\u4ee4\u3002<\/li>\n<li>\u5b57\u8282\u7801\u5178\u578b\u7684\u5e94\u7528\u4e3a\uff1aJava bytecode<\/li>\n<\/ol>\n<h3><a id=\"CC_3474\"><\/a>C\u3001C++\u6e90\u7a0b\u5e8f\u6267\u884c\u8fc7\u7a0b<\/h3>\n<p><strong>\u7f16\u8bd1\u8fc7\u7a0b\u53c8\u53ef\u4ee5\u5206\u6210\u4e24\u4e2a\u9636\u6bb5\uff1a\u7f16\u8bd1\u548c\u6c47\u7f16\u3002<\/strong><\/p>\n<ol>\n<li>\u7f16\u8bd1\u8fc7\u7a0b\uff1a\u662f\u8bfb\u53d6\u6e90\u7a0b\u5e8f\uff08\u5b57\u7b26\u6d41\uff09\uff0c\u5bf9\u4e4b\u8fdb\u884c\u8bcd\u6cd5\u548c\u8bed\u6cd5\u7684\u5206\u6790\uff0c\u5c06\u9ad8\u7ea7\u8bed\u8a00\u6307\u4ee4\u8f6c\u6362\u4e3a\u529f\u80fd\u7b49\u6548\u7684\u6c47\u7f16\u4ee3\u7801<\/li>\n<li>\u6c47\u7f16\u8fc7\u7a0b\uff1a\u5b9e\u9645\u4e0a\u6307\u628a\u6c47\u7f16\u8bed\u8a00\u4ee3\u7801\u7ffb\u8bd1\u6210\u76ee\u6807\u673a\u5668\u6307\u4ee4\u7684\u8fc7\u7a0b\u3002<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/549f520c57c23fbddad9e2f7c5d78297.png#align=left&amp;display=inline&amp;height=608&amp;originHeight=608&amp;originWidth=595&amp;size=0&amp;status=done&amp;style=none&amp;width=595\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/549f520c57c23fbddad9e2f7c5d78297.png#align=left&amp;display=inline&amp;height=608&amp;originHeight=608&amp;originWidth=595&amp;size=0&amp;status=done&amp;style=none&amp;width=595\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"_3488\"><\/a>\u89e3\u91ca\u5668<\/h2>\n<h3><a id=\"_3491\"><\/a>\u4e3a\u4ec0\u4e48\u8981\u6709\u89e3\u91ca\u5668<\/h3>\n<ol>\n<li>JVM\u8bbe\u8ba1\u8005\u4eec\u7684\u521d\u8877\u4ec5\u4ec5\u53ea\u662f\u5355\u7eaf\u5730\u4e3a\u4e86\u6ee1\u8db3Java\u7a0b\u5e8f\u5b9e\u73b0\u8de8\u5e73\u53f0\u7279\u6027\uff0c\u56e0\u6b64\u907f\u514d\u91c7\u7528\u9759\u6001\u7f16\u8bd1\u7684\u65b9\u5f0f\u7531\u9ad8\u7ea7\u8bed\u8a00\u76f4\u63a5\u751f\u6210\u672c\u5730\u673a\u5668\u6307\u4ee4\uff0c\u4ece\u800c\u8bde\u751f\u4e86\u5b9e\u73b0\u89e3\u91ca\u5668\u5728\u8fd0\u884c\u65f6\u91c7\u7528\u9010\u884c\u89e3\u91ca\u5b57\u8282\u7801\u6267\u884c\u7a0b\u5e8f\u7684\u60f3\u6cd5\uff08\u4e5f\u5c31\u662f\u4ea7\u751f\u4e86\u4e00\u4e2a\u4e2d\u95f4\u4ea7\u54c1<strong>\u5b57\u8282\u7801<\/strong>\uff09\u3002<\/li>\n<li>\u89e3\u91ca\u5668\u771f\u6b63\u610f\u4e49\u4e0a\u6240\u627f\u62c5\u7684\u89d2\u8272\u5c31\u662f\u4e00\u4e2a\u8fd0\u884c\u65f6\u201c\u7ffb\u8bd1\u8005\u201d\uff0c\u5c06\u5b57\u8282\u7801\u6587\u4ef6\u4e2d\u7684\u5185\u5bb9\u201c\u7ffb\u8bd1\u201d\u4e3a\u5bf9\u5e94\u5e73\u53f0\u7684\u672c\u5730\u673a\u5668\u6307\u4ee4\u6267\u884c\u3002<\/li>\n<li>\u5f53\u4e00\u6761\u5b57\u8282\u7801\u6307\u4ee4\u88ab\u89e3\u91ca\u6267\u884c\u5b8c\u6210\u540e\uff0c\u63a5\u7740\u518d\u6839\u636ePC\u5bc4\u5b58\u5668\u4e2d\u8bb0\u5f55\u7684\u4e0b\u4e00\u6761\u9700\u8981\u88ab\u6267\u884c\u7684\u5b57\u8282\u7801\u6307\u4ee4\u6267\u884c\u89e3\u91ca\u64cd\u4f5c\u3002<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/03cc09838575eb9f51e07b2dcf8f8bec.png#align=left&amp;display=inline&amp;height=404&amp;originHeight=404&amp;originWidth=1078&amp;size=0&amp;status=done&amp;style=none&amp;width=1078\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/03cc09838575eb9f51e07b2dcf8f8bec.png#align=left&amp;display=inline&amp;height=404&amp;originHeight=404&amp;originWidth=1078&amp;size=0&amp;status=done&amp;style=none&amp;width=1078\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"_3503\"><\/a>\u89e3\u91ca\u5668\u7684\u5206\u7c7b<\/h3>\n<ol>\n<li>\u5728Java\u7684\u53d1\u5c55\u5386\u53f2\u91cc\uff0c\u4e00\u5171\u6709\u4e24\u5957\u89e3\u91ca\u6267\u884c\u5668\uff0c\u5373\u53e4\u8001\u7684<strong>\u5b57\u8282\u7801\u89e3\u91ca\u5668<\/strong>\u3001\u73b0\u5728\u666e\u904d\u4f7f\u7528\u7684<strong>\u6a21\u677f\u89e3\u91ca\u5668<\/strong>\u3002\n<ul>\n<li>\u5b57\u8282\u7801\u89e3\u91ca\u5668\u5728\u6267\u884c\u65f6\u901a\u8fc7\u7eaf\u8f6f\u4ef6\u4ee3\u7801\u6a21\u62df\u5b57\u8282\u7801\u7684\u6267\u884c\uff0c\u6548\u7387\u975e\u5e38\u4f4e\u4e0b\u3002<\/li>\n<li>\u800c\u6a21\u677f\u89e3\u91ca\u5668\u5c06\u6bcf\u4e00\u6761\u5b57\u8282\u7801\u548c\u4e00\u4e2a\u6a21\u677f\u51fd\u6570\u76f8\u5173\u8054\uff0c\u6a21\u677f\u51fd\u6570\u4e2d\u76f4\u63a5\u4ea7\u751f\u8fd9\u6761\u5b57\u8282\u7801\u6267\u884c\u65f6\u7684\u673a\u5668\u7801\uff0c\u4ece\u800c\u5f88\u5927\u7a0b\u5ea6\u4e0a\u63d0\u9ad8\u4e86\u89e3\u91ca\u5668\u7684\u6027\u80fd\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u5728HotSpot VM\u4e2d\uff0c\u89e3\u91ca\u5668\u4e3b\u8981\u7531Interpreter\u6a21\u5757\u548cCode\u6a21\u5757\u6784\u6210\u3002\n<ul>\n<li>Interpreter\u6a21\u5757\uff1a\u5b9e\u73b0\u4e86\u89e3\u91ca\u5668\u7684\u6838\u5fc3\u529f\u80fd<\/li>\n<li>Code\u6a21\u5757\uff1a\u7528\u4e8e\u7ba1\u7406HotSpot VM\u5728\u8fd0\u884c\u65f6\u751f\u6210\u7684\u672c\u5730\u673a\u5668\u6307\u4ee4<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3><a id=\"_3515\"><\/a>\u89e3\u91ca\u5668\u7684\u73b0\u72b6<\/h3>\n<ol>\n<li>\u7531\u4e8e\u89e3\u91ca\u5668\u5728\u8bbe\u8ba1\u548c\u5b9e\u73b0\u4e0a\u975e\u5e38\u7b80\u5355\uff0c\u56e0\u6b64\u9664\u4e86Java\u8bed\u8a00\u4e4b\u5916\uff0c\u8fd8\u6709\u8bb8\u591a\u9ad8\u7ea7\u8bed\u8a00\u540c\u6837\u4e5f\u662f\u57fa\u4e8e\u89e3\u91ca\u5668\u6267\u884c\u7684\uff0c\u6bd4\u5982Python\u3001Perl\u3001Ruby\u7b49\u3002\u4f46\u662f\u5728\u4eca\u5929\uff0c\u57fa\u4e8e\u89e3\u91ca\u5668\u6267\u884c\u5df2\u7ecf\u6ca6\u843d\u4e3a\u4f4e\u6548\u7684\u4ee3\u540d\u8bcd\uff0c\u5e76\u4e14\u65f6\u5e38\u88ab\u4e00\u4e9bC\/C++\u7a0b\u5e8f\u5458\u6240\u8c03\u4f83\u3002<\/li>\n<li>\u4e3a\u4e86\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0cJVM\u5e73\u53f0\u652f\u6301\u4e00\u79cd\u53eb\u4f5c\u5373\u65f6\u7f16\u8bd1\u7684\u6280\u672f\u3002\u5373\u65f6\u7f16\u8bd1\u7684\u76ee\u7684\u662f\u907f\u514d\u51fd\u6570\u88ab\u89e3\u91ca\u6267\u884c\uff0c\u800c\u662f\u5c06\u6574\u4e2a\u51fd\u6570\u4f53\u7f16\u8bd1\u6210\u4e3a\u673a\u5668\u7801\uff0c\u6bcf\u6b21\u51fd\u6570\u6267\u884c\u65f6\uff0c\u53ea\u6267\u884c\u7f16\u8bd1\u540e\u7684\u673a\u5668\u7801\u5373\u53ef\uff0c\u8fd9\u79cd\u65b9\u5f0f\u53ef\u4ee5\u4f7f\u6267\u884c\u6548\u7387\u5927\u5e45\u5ea6\u63d0\u5347\u3002<\/li>\n<li>\u4e0d\u8fc7\u65e0\u8bba\u5982\u4f55\uff0c\u57fa\u4e8e\u89e3\u91ca\u5668\u7684\u6267\u884c\u6a21\u5f0f\u4ecd\u7136\u4e3a\u4e2d\u95f4\u8bed\u8a00\u7684\u53d1\u5c55\u505a\u51fa\u4e86\u4e0d\u53ef\u78e8\u706d\u7684\u8d21\u732e\u3002<\/li>\n<\/ol>\n<h2><a id=\"JIT_3524\"><\/a>JIT\u7f16\u8bd1\u5668<\/h2>\n<h3><a id=\"Java__3527\"><\/a>Java \u4ee3\u7801\u6267\u884c\u7684\u5206\u7c7b<\/h3>\n<ol>\n<li>\u7b2c\u4e00\u79cd\u662f\u5c06\u6e90\u4ee3\u7801\u7f16\u8bd1\u6210\u5b57\u8282\u7801\u6587\u4ef6\uff0c\u7136\u540e\u5728\u8fd0\u884c\u65f6\u901a\u8fc7\u89e3\u91ca\u5668\u5c06\u5b57\u8282\u7801\u6587\u4ef6\u8f6c\u4e3a\u673a\u5668\u7801\u6267\u884c<\/li>\n<li>\u7b2c\u4e8c\u79cd\u662f\u7f16\u8bd1\u6267\u884c\uff08\u76f4\u63a5\u7f16\u8bd1\u6210\u673a\u5668\u7801\uff09\u3002\u73b0\u4ee3\u865a\u62df\u673a\u4e3a\u4e86\u63d0\u9ad8\u6267\u884c\u6548\u7387\uff0c\u4f1a\u4f7f\u7528\u5373\u65f6\u7f16\u8bd1\u6280\u672f\uff08JIT\uff0cJust In Time\uff09\u5c06\u65b9\u6cd5\u7f16\u8bd1\u6210\u673a\u5668\u7801\u540e\u518d\u6267\u884c<\/li>\n<li>HotSpot VM\u662f\u76ee\u524d\u5e02\u9762\u4e0a\u9ad8\u6027\u80fd\u865a\u62df\u673a\u7684\u4ee3\u8868\u4f5c\u4e4b\u4e00\u3002<strong>\u5b83\u91c7\u7528\u89e3\u91ca\u5668\u4e0e\u5373\u65f6\u7f16\u8bd1\u5668\u5e76\u5b58\u7684\u67b6\u6784<\/strong>\u3002\u5728Java\u865a\u62df\u673a\u8fd0\u884c\u65f6\uff0c\u89e3\u91ca\u5668\u548c\u5373\u65f6\u7f16\u8bd1\u5668\u80fd\u591f\u76f8\u4e92\u534f\u4f5c\uff0c\u5404\u81ea\u53d6\u957f\u8865\u77ed\uff0c\u5c3d\u529b\u53bb\u9009\u62e9\u6700\u5408\u9002\u7684\u65b9\u5f0f\u6765\u6743\u8861\u7f16\u8bd1\u672c\u5730\u4ee3\u7801\u7684\u65f6\u95f4\u548c\u76f4\u63a5\u89e3\u91ca\u6267\u884c\u4ee3\u7801\u7684\u65f6\u95f4\u3002<\/li>\n<li>\u5728\u4eca\u5929\uff0cJava\u7a0b\u5e8f\u7684\u8fd0\u884c\u6027\u80fd\u65e9\u5df2\u8131\u80ce\u6362\u9aa8\uff0c\u5df2\u7ecf\u8fbe\u5230\u4e86\u53ef\u4ee5\u548cC\/C++ \u7a0b\u5e8f\u4e00\u8f83\u9ad8\u4e0b\u7684\u5730\u6b65\u3002<\/li>\n<\/ol>\n<h3><a id=\"_3537\"><\/a>\u4e3a\u5565\u6211\u4eec\u8fd8\u9700\u8981\u89e3\u91ca\u5668\u5462\uff1f<\/h3>\n<ol>\n<li>\u6709\u4e9b\u5f00\u53d1\u4eba\u5458\u4f1a\u611f\u89c9\u5230\u8be7\u5f02\uff0c\u65e2\u7136HotSpot VM\u4e2d\u5df2\u7ecf\u5185\u7f6eJIT\u7f16\u8bd1\u5668\u4e86\uff0c\u90a3\u4e48\u4e3a\u4ec0\u4e48\u8fd8\u9700\u8981\u518d\u4f7f\u7528\u89e3\u91ca\u5668\u6765\u201c\u62d6\u7d2f\u201d\u7a0b\u5e8f\u7684\u6267\u884c\u6027\u80fd\u5462\uff1f\u6bd4\u5982JRockit VM\u5185\u90e8\u5c31\u4e0d\u5305\u542b\u89e3\u91ca\u5668\uff0c\u5b57\u8282\u7801\u5168\u90e8\u90fd\u4f9d\u9760\u5373\u65f6\u7f16\u8bd1\u5668\u7f16\u8bd1\u540e\u6267\u884c\u3002<\/li>\n<li>JRockit\u865a\u62df\u673a\u662f\u780d\u6389\u4e86\u89e3\u91ca\u5668\uff0c\u4e5f\u5c31\u662f\u53ea\u91c7\u53ca\u65f6\u7f16\u8bd1\u5668\u3002\u90a3\u662f\u56e0\u4e3a\u5462JRockit\u53ea\u90e8\u7f72\u5728\u670d\u52a1\u5668\u4e0a\uff0c\u4e00\u822c\u5df2\u7ecf\u6709\u65f6\u95f4\u8ba9\u4ed6\u8fdb\u884c\u6307\u4ee4\u7f16\u8bd1\u7684\u8fc7\u7a0b\u4e86\uff0c\u5bf9\u4e8e\u54cd\u5e94\u6765\u8bf4\u8981\u6c42\u4e0d\u9ad8\uff0c\u7b49\u53ca\u65f6\u7f16\u8bd1\u5668\u7684\u7f16\u8bd1\u5b8c\u6210\u540e\uff0c\u5c31\u4f1a\u63d0\u4f9b\u66f4\u597d\u7684\u6027\u80fd<\/li>\n<\/ol>\n<p><strong>\u9996\u5148\u660e\u786e\u4e24\u70b9\uff1a<\/strong><\/p>\n<ol>\n<li>\u5f53\u7a0b\u5e8f\u542f\u52a8\u540e\uff0c\u89e3\u91ca\u5668\u53ef\u4ee5\u9a6c\u4e0a\u53d1\u6325\u4f5c\u7528\uff0c<strong>\u54cd\u5e94\u901f\u5ea6\u5feb<\/strong>\uff0c\u7701\u53bb\u7f16\u8bd1\u7684\u65f6\u95f4\uff0c\u7acb\u5373\u6267\u884c\u3002<\/li>\n<li>\u7f16\u8bd1\u5668\u8981\u60f3\u53d1\u6325\u4f5c\u7528\uff0c\u628a\u4ee3\u7801\u7f16\u8bd1\u6210\u672c\u5730\u4ee3\u7801\uff0c<strong>\u9700\u8981\u4e00\u5b9a\u7684\u6267\u884c\u65f6\u95f4<\/strong>\uff0c\u4f46\u7f16\u8bd1\u4e3a\u672c\u5730\u4ee3\u7801\u540e\uff0c\u6267\u884c\u6548\u7387\u9ad8\u3002<\/li>\n<\/ol>\n<p><strong>\u6240\u4ee5\uff1a<\/strong><\/p>\n<ol>\n<li>\u5c3d\u7ba1JRockit VM\u4e2d\u7a0b\u5e8f\u7684\u6267\u884c\u6027\u80fd\u4f1a\u975e\u5e38\u9ad8\u6548\uff0c\u4f46\u7a0b\u5e8f\u5728\u542f\u52a8\u65f6\u5fc5\u7136\u9700\u8981\u82b1\u8d39\u66f4\u957f\u7684\u65f6\u95f4\u6765\u8fdb\u884c\u7f16\u8bd1\u3002\u5bf9\u4e8e\u670d\u52a1\u7aef\u5e94\u7528\u6765\u8bf4\uff0c\u542f\u52a8\u65f6\u95f4\u5e76\u975e\u662f\u5173\u6ce8\u91cd\u70b9\uff0c\u4f46\u5bf9\u4e8e\u90a3\u4e9b\u770b\u4e2d\u542f\u52a8\u65f6\u95f4\u7684\u5e94\u7528\u573a\u666f\u800c\u8a00\uff0c\u6216\u8bb8\u5c31\u9700\u8981\u91c7\u7528\u89e3\u91ca\u5668\u4e0e\u5373\u65f6\u7f16\u8bd1\u5668\u5e76\u5b58\u7684\u67b6\u6784\u6765\u6362\u53d6\u4e00\u4e2a\u5e73\u8861\u70b9\u3002<\/li>\n<li>\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u5728Java\u865a\u62df\u5668\u542f\u52a8\u65f6\uff0c\u89e3\u91ca\u5668\u53ef\u4ee5\u9996\u5148\u53d1\u6325\u4f5c\u7528\uff0c\u800c\u4e0d\u5fc5\u7b49\u5f85\u5373\u65f6\u7f16\u8bd1\u5668\u5168\u90e8\u7f16\u8bd1\u5b8c\u6210\u540e\u518d\u6267\u884c\uff0c\u8fd9\u6837\u53ef\u4ee5\u7701\u53bb\u8bb8\u591a\u4e0d\u5fc5\u8981\u7684\u7f16\u8bd1\u65f6\u95f4\u3002\u968f\u7740\u65f6\u95f4\u7684\u63a8\u79fb\uff0c\u7f16\u8bd1\u5668\u53d1\u6325\u4f5c\u7528\uff0c\u628a\u8d8a\u6765\u8d8a\u591a\u7684\u4ee3\u7801\u7f16\u8bd1\u6210\u672c\u5730\u4ee3\u7801\uff0c\u83b7\u5f97\u66f4\u9ad8\u7684\u6267\u884c\u6548\u7387\u3002<\/li>\n<li>\u540c\u65f6\uff0c\u89e3\u91ca\u6267\u884c\u5728\u7f16\u8bd1\u5668\u8fdb\u884c\u6fc0\u8fdb\u4f18\u5316\u4e0d\u6210\u7acb\u7684\u65f6\u5019\uff0c\u4f5c\u4e3a\u7f16\u8bd1\u5668\u7684\u201c\u9003\u751f\u95e8\u201d\uff08\u540e\u5907\u65b9\u6848\uff09\u3002<\/li>\n<\/ol>\n<h3><a id=\"_3562\"><\/a>\u6848\u4f8b<\/h3>\n<ul>\n<li>\u5f53\u865a\u62df\u673a\u542f\u52a8\u7684\u65f6\u5019\uff0c\u89e3\u91ca\u5668\u53ef\u4ee5\u9996\u5148\u53d1\u6325\u4f5c\u7528\uff0c\u800c\u4e0d\u5fc5\u7b49\u5f85\u5373\u65f6\u7f16\u8bd1\u5668\u5168\u90e8\u7f16\u8bd1\u5b8c\u6210\u518d\u6267\u884c\uff0c\u8fd9\u6837\u53ef\u4ee5\u7701\u53bb\u8bb8\u591a\u4e0d\u5fc5\u8981\u7684\u7f16\u8bd1\u65f6\u95f4\u3002\u968f\u7740\u7a0b\u5e8f\u8fd0\u884c\u65f6\u95f4\u7684\u63a8\u79fb\uff0c\u5373\u65f6\u7f16\u8bd1\u5668\u9010\u6e10\u53d1\u6325\u4f5c\u7528\uff0c\u6839\u636e\u70ed\u70b9\u63a2\u6d4b\u529f\u80fd\uff0c\u5c06\u6709\u4ef7\u503c\u7684\u5b57\u8282\u7801\u7f16\u8bd1\u4e3a\u672c\u5730\u673a\u5668\u6307\u4ee4\uff0c\u4ee5\u6362\u53d6\u66f4\u9ad8\u7684\u7a0b\u5e8f\u6267\u884c\u6548\u7387\u3002<\/li>\n<\/ul>\n<ol>\n<li>\u6ce8\u610f\u89e3\u91ca\u6267\u884c\u4e0e\u7f16\u8bd1\u6267\u884c\u5728\u7ebf\u4e0a\u73af\u5883\u5fae\u5999\u7684\u8fa9\u8bc1\u5173\u7cfb\u3002<strong>\u673a\u5668\u5728\u70ed\u673a\u72b6\u6001\uff08\u5df2\u7ecf\u8fd0\u884c\u4e86\u4e00\u6bb5\u65f6\u95f4\u53eb\u70ed\u673a\u72b6\u6001\uff09\u53ef\u4ee5\u627f\u53d7\u7684\u8d1f\u8f7d\u8981\u5927\u4e8e\u51b7\u673a\u72b6\u6001\uff08\u521a\u542f\u52a8\u7684\u65f6\u5019\u53eb\u51b7\u673a\u72b6\u6001\uff09<\/strong>\u3002\u5982\u679c\u4ee5\u70ed\u673a\u72b6\u6001\u65f6\u7684\u6d41\u91cf\u8fdb\u884c\u5207\u6d41\uff0c\u53ef\u80fd\u4f7f\u5904\u4e8e\u51b7\u673a\u72b6\u6001\u7684\u670d\u52a1\u5668\u56e0\u65e0\u6cd5\u627f\u8f7d\u6d41\u91cf\u800c\u5047\u6b7b\u3002<\/li>\n<li>\u5728\u751f\u4ea7\u73af\u5883\u53d1\u5e03\u8fc7\u7a0b\u4e2d\uff0c\u4ee5\u5206\u6279\u7684\u65b9\u5f0f\u8fdb\u884c\u53d1\u5e03\uff0c\u6839\u636e\u673a\u5668\u6570\u91cf\u5212\u5206\u6210\u591a\u4e2a\u6279\u6b21\uff0c\u6bcf\u4e2a\u6279\u6b21\u7684\u673a\u5668\u6570\u81f3\u591a\u5360\u5230\u6574\u4e2a\u96c6\u7fa4\u76841\/8\u3002\u66fe\u7ecf\u6709\u8fd9\u6837\u7684\u6545\u969c\u6848\u4f8b\uff1a\u67d0\u7a0b\u5e8f\u5458\u5728\u53d1\u5e03\u5e73\u53f0\u8fdb\u884c\u5206\u6279\u53d1\u5e03\uff0c\u5728\u8f93\u5165\u53d1\u5e03\u603b\u6279\u6570\u65f6\uff0c\u8bef\u586b\u5199\u6210\u5206\u4e3a\u4e24\u6279\u53d1\u5e03\u3002\u5982\u679c\u662f\u70ed\u673a\u72b6\u6001\uff0c\u5728\u6b63\u5e38\u60c5\u51b5\u4e0b\u4e00\u534a\u7684\u673a\u5668\u53ef\u4ee5\u52c9\u5f3a\u627f\u8f7d\u6d41\u91cf\uff0c\u4f46\u7531\u4e8e\u521a\u542f\u52a8\u7684JVM\u5747\u662f\u89e3\u91ca\u6267\u884c\uff0c\u8fd8\u6ca1\u6709\u8fdb\u884c\u70ed\u70b9\u4ee3\u7801\u7edf\u8ba1\u548cJIT\u52a8\u6001\u7f16\u8bd1\uff0c\u5bfc\u81f4\u673a\u5668\u542f\u52a8\u4e4b\u540e\uff0c\u5f53\u524d1\/2\u53d1\u5e03\u6210\u529f\u7684\u670d\u52a1\u5668\u9a6c\u4e0a\u5168\u90e8\u5b95\u673a\uff0c\u6b64\u6545\u969c\u8bf4\u660e\u4e86JIT\u7684\u5b58\u5728\u3002\u2014<strong>\u963f\u91cc\u56e2\u961f<\/strong><\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/c89390a431ef371a50539c50d3a8e5be.png#align=left&amp;display=inline&amp;height=265&amp;originHeight=265&amp;originWidth=612&amp;size=0&amp;status=done&amp;style=none&amp;width=612\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/c89390a431ef371a50539c50d3a8e5be.png#align=left&amp;display=inline&amp;height=265&amp;originHeight=265&amp;originWidth=612&amp;size=0&amp;status=done&amp;style=none&amp;width=612\" alt=\"\"><\/noscript><\/p>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">JITTest<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        ArrayList<span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>String<span class=\"token punctuation\">&gt;<\/span><\/span> list <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">ArrayList<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token operator\">&gt;<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> <span class=\"token number\">1000<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            list<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"\u8ba9\u5929\u4e0b\u6ca1\u6709\u96be\u5b66\u7684\u6280\u672f\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n            <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n                Thread<span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1000<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">InterruptedException<\/span> e<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n                e<span class=\"token punctuation\">.<\/span><span class=\"token function\">printStackTrace<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span>\n        <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u901a\u8fc7 JVisualVM \u67e5\u770b JIT \u7f16\u8bd1\u5668\u6267\u884c\u7684\u7f16\u8bd1\u6b21\u6570<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/2b03d2abe023d6ec60ac3e5ff73cec5f.png#align=left&amp;display=inline&amp;height=825&amp;originHeight=825&amp;originWidth=1717&amp;size=0&amp;status=done&amp;style=none&amp;width=1717\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/2b03d2abe023d6ec60ac3e5ff73cec5f.png#align=left&amp;display=inline&amp;height=825&amp;originHeight=825&amp;originWidth=1717&amp;size=0&amp;status=done&amp;style=none&amp;width=1717\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"JIT_3603\"><\/a>JIT\u7f16\u8bd1\u5668\u76f8\u5173\u6982\u5ff5<\/h3>\n<ol>\n<li>Java \u8bed\u8a00\u7684\u201c\u7f16\u8bd1\u671f\u201d\u5176\u5b9e\u662f\u4e00\u6bb5\u201c\u4e0d\u786e\u5b9a\u201d\u7684\u64cd\u4f5c\u8fc7\u7a0b\uff0c\u56e0\u4e3a\u5b83\u53ef\u80fd\u662f\u6307\u4e00\u4e2a\u524d\u7aef\u7f16\u8bd1\u5668\uff08\u5176\u5b9e\u53eb\u201c\u7f16\u8bd1\u5668\u7684\u524d\u7aef\u201d\u66f4\u51c6\u786e\u4e00\u4e9b\uff09\u628a.java\u6587\u4ef6\u8f6c\u53d8\u6210.class\u6587\u4ef6\u7684\u8fc7\u7a0b\u3002<\/li>\n<li>\u4e5f\u53ef\u80fd\u662f\u6307\u865a\u62df\u673a\u7684\u540e\u7aef\u8fd0\u884c\u671f\u7f16\u8bd1\u5668\uff08JIT\u7f16\u8bd1\u5668\uff0cJust In Time Compiler\uff09\u628a\u5b57\u8282\u7801\u8f6c\u53d8\u6210\u673a\u5668\u7801\u7684\u8fc7\u7a0b\u3002<\/li>\n<li>\u8fd8\u53ef\u80fd\u662f\u6307\u4f7f\u7528\u9759\u6001\u63d0\u524d\u7f16\u8bd1\u5668\uff08AOT\u7f16\u8bd1\u5668\uff0cAhead of Time Compiler\uff09\u76f4\u63a5\u628a.java\u6587\u4ef6\u7f16\u8bd1\u6210\u672c\u5730\u673a\u5668\u4ee3\u7801\u7684\u8fc7\u7a0b\u3002\uff08\u53ef\u80fd\u662f\u540e\u7eed\u53d1\u5c55\u7684\u8d8b\u52bf\uff09<\/li>\n<\/ol>\n<p><strong>\u5178\u578b\u7684\u7f16\u8bd1\u5668\uff1a<\/strong><\/p>\n<ol>\n<li>\u524d\u7aef\u7f16\u8bd1\u5668\uff1aSun\u7684javac\u3001Eclipse JDT\u4e2d\u7684\u589e\u91cf\u5f0f\u7f16\u8bd1\u5668\uff08ECJ\uff09\u3002<\/li>\n<li>JIT\u7f16\u8bd1\u5668\uff1aHotSpot VM\u7684C1\u3001C2\u7f16\u8bd1\u5668\u3002<\/li>\n<li>AOT \u7f16\u8bd1\u5668\uff1aGNU Compiler for the Java\uff08GCJ\uff09\u3001Excelsior JET\u3002<\/li>\n<\/ol>\n<h3><a id=\"_3621\"><\/a>\u70ed\u70b9\u4ee3\u7801\u53ca\u63a2\u6d4b\u65b9\u5f0f<\/h3>\n<ol>\n<li>\u5f53\u7136\u662f\u5426\u9700\u8981\u542f\u52a8JIT\u7f16\u8bd1\u5668\u5c06\u5b57\u8282\u7801\u76f4\u63a5\u7f16\u8bd1\u4e3a\u5bf9\u5e94\u5e73\u53f0\u7684\u672c\u5730\u673a\u5668\u6307\u4ee4\uff0c\u5219\u9700\u8981\u6839\u636e\u4ee3\u7801\u88ab\u8c03\u7528<strong>\u6267\u884c\u7684\u9891\u7387<\/strong>\u800c\u5b9a\u3002<\/li>\n<li>\u5173\u4e8e\u90a3\u4e9b\u9700\u8981\u88ab\u7f16\u8bd1\u4e3a\u672c\u5730\u4ee3\u7801\u7684\u5b57\u8282\u7801\uff0c\u4e5f\u88ab\u79f0\u4e4b\u4e3a**\u201c\u70ed\u70b9\u4ee3\u7801\u201d<strong>\uff0cJIT\u7f16\u8bd1\u5668\u5728\u8fd0\u884c\u65f6\u4f1a\u9488\u5bf9\u90a3\u4e9b\u9891\u7e41\u88ab\u8c03\u7528\u7684\u201c\u70ed\u70b9\u4ee3\u7801\u201d\u505a\u51fa<\/strong>\u6df1\u5ea6\u4f18\u5316**\uff0c\u5c06\u5176\u76f4\u63a5\u7f16\u8bd1\u4e3a\u5bf9\u5e94\u5e73\u53f0\u7684\u672c\u5730\u673a\u5668\u6307\u4ee4\uff0c\u4ee5\u6b64\u63d0\u5347Java\u7a0b\u5e8f\u7684\u6267\u884c\u6027\u80fd\u3002<\/li>\n<li>\u4e00\u4e2a\u88ab\u591a\u6b21\u8c03\u7528\u7684\u65b9\u6cd5\uff0c\u6216\u8005\u662f\u4e00-\u4e2a\u65b9\u6cd5\u4f53\u5185\u90e8\u5faa\u73af\u6b21\u6570\u8f83\u591a\u7684\u5faa\u73af\u4f53\u90fd\u53ef\u4ee5\u88ab\u79f0\u4e4b\u4e3a\u201c\u70ed\u70b9\u4ee3\u7801\u201d\uff0c\u56e0\u6b64\u90fd\u53ef\u4ee5\u901a\u8fc7JIT\u7f16\u8bd1\u5668\u7f16\u8bd1\u4e3a\u672c\u5730\u673a\u5668\u6307\u4ee4\u3002\u7531\u4e8e\u8fd9\u79cd\u7f16\u8bd1\u65b9\u5f0f\u53d1\u751f\u5728\u65b9\u6cd5\u7684\u6267\u884c\u8fc7\u7a0b\u4e2d\uff0c\u56e0\u6b64\u4e5f\u88ab\u79f0\u4e4b\u4e3a\u6808\u4e0a\u66ff\u6362\uff0c\u6216\u7b80\u79f0\u4e3aOSR (On StackReplacement)\u7f16\u8bd1\u3002<\/li>\n<li>\u4e00\u4e2a\u65b9\u6cd5\u7a76\u7adf\u8981\u88ab\u8c03\u7528\u591a\u5c11\u6b21\uff0c\u6216\u8005\u4e00\u4e2a\u5faa\u73af\u4f53\u7a76\u7adf\u9700\u8981\u6267\u884c\u591a\u5c11\u6b21\u5faa\u73af\u624d\u53ef\u4ee5\u8fbe\u5230\u8fd9\u4e2a\u6807\u51c6\uff1f\u5fc5\u7136\u9700\u8981\u4e00\u4e2a\u660e\u786e\u7684\u9608\u503c\uff0cJIT\u7f16\u8bd1\u5668\u624d\u4f1a\u5c06\u8fd9\u4e9b\u201c\u70ed\u70b9\u4ee3\u7801\u201d\u7f16\u8bd1\u4e3a\u672c\u5730\u673a\u5668\u6307\u4ee4\u6267\u884c\u3002\u8fd9\u91cc\u4e3b\u8981\u4f9d\u9760\u70ed\u70b9\u63a2\u6d4b\u529f\u80fd\u3002<\/li>\n<li><strong>\u76ee\u524dHotSpot VM\u6240\u91c7\u7528\u7684\u70ed\u70b9\u63a2\u6d4b\u65b9\u5f0f\u662f\u57fa\u4e8e\u8ba1\u6570\u5668\u7684\u70ed\u70b9\u63a2\u6d4b<\/strong>\u3002<\/li>\n<li>\u91c7\u7528\u57fa\u4e8e\u8ba1\u6570\u5668\u7684\u70ed\u70b9\u63a2\u6d4b\uff0cHotSpot VM\u5c06\u4f1a\u4e3a\u6bcf\u4e00\u4e2a\u65b9\u6cd5\u90fd\u5efa\u7acb2\u4e2a\u4e0d\u540c\u7c7b\u578b\u7684\u8ba1\u6570\u5668\uff0c\u5206\u522b\u4e3a\u65b9\u6cd5\u8c03\u7528\u8ba1\u6570\u5668\uff08Invocation Counter\uff09\u548c\u56de\u8fb9\u8ba1\u6570\u5668\uff08Back Edge Counter\uff09\u3002\n<ol>\n<li>\u65b9\u6cd5\u8c03\u7528\u8ba1\u6570\u5668\u7528\u4e8e\u7edf\u8ba1\u65b9\u6cd5\u7684\u8c03\u7528\u6b21\u6570<\/li>\n<li>\u56de\u8fb9\u8ba1\u6570\u5668\u5219\u7528\u4e8e\u7edf\u8ba1\u5faa\u73af\u4f53\u6267\u884c\u7684\u5faa\u73af\u6b21\u6570<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h4><a id=\"_3635\"><\/a>\u65b9\u6cd5\u8c03\u7528\u8ba1\u6570\u5668<\/h4>\n<ol>\n<li>\u8fd9\u4e2a\u8ba1\u6570\u5668\u5c31\u7528\u4e8e\u7edf\u8ba1\u65b9\u6cd5\u88ab\u8c03\u7528\u7684\u6b21\u6570\uff0c\u5b83\u7684\u9ed8\u8ba4\u9600\u503c\u5728Client\u6a21\u5f0f\u4e0b\u662f1500\u6b21\uff0c\u5728Server\u6a21\u5f0f\u4e0b\u662f10000\u6b21\u3002\u8d85\u8fc7\u8fd9\u4e2a\u9608\u503c\uff0c\u5c31\u4f1a\u89e6\u53d1JIT\u7f16\u8bd1\u3002<\/li>\n<li>\u8fd9\u4e2a\u9600\u503c\u53ef\u4ee5\u901a\u8fc7\u865a\u62df\u673a\u53c2\u6570 -XX:CompileThreshold \u6765\u4eba\u4e3a\u8bbe\u5b9a\u3002<\/li>\n<li>\u5f53\u4e00\u4e2a\u65b9\u6cd5\u88ab\u8c03\u7528\u65f6\uff0c\u4f1a\u5148\u68c0\u67e5\u8be5\u65b9\u6cd5\u662f\u5426\u5b58\u5728\u88abJIT\u7f16\u8bd1\u8fc7\u7684\u7248\u672c\n<ul>\n<li>\u5982\u679c\u5b58\u5728\uff0c\u5219\u4f18\u5148\u4f7f\u7528\u7f16\u8bd1\u540e\u7684\u672c\u5730\u4ee3\u7801\u6765\u6267\u884c<\/li>\n<li>\u5982\u679c\u4e0d\u5b58\u5728\u5df2\u88ab\u7f16\u8bd1\u8fc7\u7684\u7248\u672c\uff0c\u5219\u5c06\u6b64\u65b9\u6cd5\u7684\u8c03\u7528\u8ba1\u6570\u5668\u503c\u52a01\uff0c\u7136\u540e\u5224\u65ad\u65b9\u6cd5\u8c03\u7528\u8ba1\u6570\u5668\u4e0e\u56de\u8fb9\u8ba1\u6570\u5668\u503c\u4e4b\u548c\u662f\u5426\u8d85\u8fc7\u65b9\u6cd5\u8c03\u7528\u8ba1\u6570\u5668\u7684\u9600\u503c\u3002\n<ul>\n<li>\u5982\u679c\u5df2\u8d85\u8fc7\u9608\u503c\uff0c\u90a3\u4e48\u5c06\u4f1a\u5411\u5373\u65f6\u7f16\u8bd1\u5668\u63d0\u4ea4\u4e00\u4e2a\u8be5\u65b9\u6cd5\u7684\u4ee3\u7801\u7f16\u8bd1\u8bf7\u6c42\u3002<\/li>\n<li>\u5982\u679c\u672a\u8d85\u8fc7\u9608\u503c\uff0c\u5219\u4f7f\u7528\u89e3\u91ca\u5668\u5bf9\u5b57\u8282\u7801\u6587\u4ef6\u89e3\u91ca\u6267\u884c<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/97ef4930fcc3f4e435056ec484d8986d.png#align=left&amp;display=inline&amp;height=730&amp;originHeight=730&amp;originWidth=864&amp;size=0&amp;status=done&amp;style=none&amp;width=864\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/97ef4930fcc3f4e435056ec484d8986d.png#align=left&amp;display=inline&amp;height=730&amp;originHeight=730&amp;originWidth=864&amp;size=0&amp;status=done&amp;style=none&amp;width=864\" alt=\"\"><\/noscript><\/p>\n<h4><a id=\"_3651\"><\/a>\u70ed\u5ea6\u8870\u51cf<\/h4>\n<ol>\n<li>\u5982\u679c\u4e0d\u505a\u4efb\u4f55\u8bbe\u7f6e\uff0c\u65b9\u6cd5\u8c03\u7528\u8ba1\u6570\u5668\u7edf\u8ba1\u7684\u5e76\u4e0d\u662f\u65b9\u6cd5\u88ab\u8c03\u7528\u7684\u7edd\u5bf9\u6b21\u6570\uff0c\u800c\u662f\u4e00\u4e2a\u76f8\u5bf9\u7684\u6267\u884c\u9891\u7387\uff0c\u5373<strong>\u4e00\u6bb5\u65f6\u95f4\u4e4b\u5185\u65b9\u6cd5\u88ab\u8c03\u7528\u7684\u6b21\u6570<\/strong>\u3002\u5f53\u8d85\u8fc7\u4e00\u5b9a\u7684\u65f6\u95f4\u9650\u5ea6\uff0c\u5982\u679c\u65b9\u6cd5\u7684\u8c03\u7528\u6b21\u6570\u4ecd\u7136\u4e0d\u8db3\u4ee5\u8ba9\u5b83\u63d0\u4ea4\u7ed9\u5373\u65f6\u7f16\u8bd1\u5668\u7f16\u8bd1\uff0c\u90a3\u8fd9\u4e2a\u65b9\u6cd5\u7684\u8c03\u7528\u8ba1\u6570\u5668\u5c31\u4f1a\u88ab\u51cf\u5c11\u4e00\u534a\uff0c\u8fd9\u4e2a\u8fc7\u7a0b\u79f0\u4e3a\u65b9\u6cd5\u8c03\u7528\u8ba1\u6570\u5668\u70ed\u5ea6\u7684\u8870\u51cf\uff08Counter Decay\uff09\uff0c\u800c\u8fd9\u6bb5\u65f6\u95f4\u5c31\u79f0\u4e3a\u6b64\u65b9\u6cd5\u7edf\u8ba1\u7684\u534a\u8870\u5468\u671f\uff08Counter Half Life Time\uff09\uff08\u534a\u8870\u5468\u671f\u662f\u5316\u5b66\u4e2d\u7684\u6982\u5ff5\uff0c\u6bd4\u5982\u51fa\u571f\u7684\u6587\u7269\u901a\u8fc7\u67e5\u770bC60\u6765\u83b7\u5f97\u6587\u7269\u7684\u5e74\u9f84\uff09<\/li>\n<li>\u8fdb\u884c\u70ed\u5ea6\u8870\u51cf\u7684\u52a8\u4f5c\u662f\u5728\u865a\u62df\u673a\u8fdb\u884c\u5783\u573e\u6536\u96c6\u65f6\u987a\u4fbf\u8fdb\u884c\u7684\uff0c\u53ef\u4ee5\u4f7f\u7528\u865a\u62df\u673a\u53c2\u6570 -XX:-UseCounterDecay \u6765\u5173\u95ed\u70ed\u5ea6\u8870\u51cf\uff0c\u8ba9\u65b9\u6cd5\u8ba1\u6570\u5668\u7edf\u8ba1\u65b9\u6cd5\u8c03\u7528\u7684\u7edd\u5bf9\u6b21\u6570\uff0c\u8fd9\u6837\u7684\u8bdd\uff0c\u53ea\u8981\u7cfb\u7edf\u8fd0\u884c\u65f6\u95f4\u8db3\u591f\u957f\uff0c\u7edd\u5927\u90e8\u5206\u65b9\u6cd5\u90fd\u4f1a\u88ab\u7f16\u8bd1\u6210\u672c\u5730\u4ee3\u7801\u3002<\/li>\n<li>\u53e6\u5916\uff0c\u53ef\u4ee5\u4f7f\u7528-XX:CounterHalfLifeTime\u53c2\u6570\u8bbe\u7f6e\u534a\u8870\u5468\u671f\u7684\u65f6\u95f4\uff0c\u5355\u4f4d\u662f\u79d2\u3002<\/li>\n<\/ol>\n<h4><a id=\"_3660\"><\/a>\u56de\u8fb9\u8ba1\u6570\u5668<\/h4>\n<p>\u5b83\u7684\u4f5c\u7528\u662f\u7edf\u8ba1\u4e00\u4e2a\u65b9\u6cd5\u4e2d\u5faa\u73af\u4f53\u4ee3\u7801\u6267\u884c\u7684\u6b21\u6570\uff0c\u5728\u5b57\u8282\u7801\u4e2d\u9047\u5230\u63a7\u5236\u6d41\u5411\u540e\u8df3\u8f6c\u7684\u6307\u4ee4\u79f0\u4e3a\u201c\u56de\u8fb9\u201d\uff08Back Edge\uff09\u3002\u663e\u7136\uff0c\u5efa\u7acb\u56de\u8fb9\u8ba1\u6570\u5668\u7edf\u8ba1\u7684\u76ee\u7684\u5c31\u662f\u4e3a\u4e86\u89e6\u53d1OSR\u7f16\u8bd1\u3002<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/3b0515d08c506bb144fb446a0aeb80b2.png#align=left&amp;display=inline&amp;height=714&amp;originHeight=714&amp;originWidth=693&amp;size=0&amp;status=done&amp;style=none&amp;width=693\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/3b0515d08c506bb144fb446a0aeb80b2.png#align=left&amp;display=inline&amp;height=714&amp;originHeight=714&amp;originWidth=693&amp;size=0&amp;status=done&amp;style=none&amp;width=693\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"HotSpotVM_3669\"><\/a>HotSpotVM\u53ef\u4ee5\u8bbe\u7f6e\u7a0b\u5e8f\u6267\u884c\u65b9\u6cd5<\/h3>\n<p>\u7f3a\u7701\u60c5\u51b5\u4e0bHotSpot VM\u662f\u91c7\u7528\u89e3\u91ca\u5668\u4e0e\u5373\u65f6\u7f16\u8bd1\u5668\u5e76\u5b58\u7684\u67b6\u6784\uff0c\u5f53\u7136\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u6839\u636e\u5177\u4f53\u7684\u5e94\u7528\u573a\u666f\uff0c\u901a\u8fc7\u547d\u4ee4\u663e\u5f0f\u5730\u4e3aJava\u865a\u62df\u673a\u6307\u5b9a\u5728\u8fd0\u884c\u65f6\u5230\u5e95\u662f\u5b8c\u5168\u91c7\u7528\u89e3\u91ca\u5668\u6267\u884c\uff0c\u8fd8\u662f\u5b8c\u5168\u91c7\u7528\u5373\u65f6\u7f16\u8bd1\u5668\u6267\u884c\u3002\u5982\u4e0b\u6240\u793a\uff1a<\/p>\n<ol>\n<li>-Xint\uff1a\u5b8c\u5168\u91c7\u7528\u89e3\u91ca\u5668\u6a21\u5f0f\u6267\u884c\u7a0b\u5e8f\uff1b<\/li>\n<li>-Xcomp\uff1a\u5b8c\u5168\u91c7\u7528\u5373\u65f6\u7f16\u8bd1\u5668\u6a21\u5f0f\u6267\u884c\u7a0b\u5e8f\u3002\u5982\u679c\u5373\u65f6\u7f16\u8bd1\u51fa\u73b0\u95ee\u9898\uff0c\u89e3\u91ca\u5668\u4f1a\u4ecb\u5165\u6267\u884c<\/li>\n<li>-Xmixed\uff1a\u91c7\u7528\u89e3\u91ca\u5668+\u5373\u65f6\u7f16\u8bd1\u5668\u7684\u6df7\u5408\u6a21\u5f0f\u5171\u540c\u6267\u884c\u7a0b\u5e8f\u3002<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/242a1822c248d4759cdac856ea060447.png#align=left&amp;display=inline&amp;height=550&amp;originHeight=550&amp;originWidth=1001&amp;size=0&amp;status=done&amp;style=none&amp;width=1001\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/242a1822c248d4759cdac856ea060447.png#align=left&amp;display=inline&amp;height=550&amp;originHeight=550&amp;originWidth=1001&amp;size=0&amp;status=done&amp;style=none&amp;width=1001\" alt=\"\"><\/noscript><\/p>\n<p><strong><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/fab6e7987228d423193f4080c1512947.png#align=left&amp;display=inline&amp;height=581&amp;name=image.png&amp;originHeight=581&amp;originWidth=1344&amp;size=900777&amp;status=done&amp;style=none&amp;width=1344\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"image.png\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/fab6e7987228d423193f4080c1512947.png#align=left&amp;display=inline&amp;height=581&amp;name=image.png&amp;originHeight=581&amp;originWidth=1344&amp;size=900777&amp;status=done&amp;style=none&amp;width=1344\" alt=\"image.png\"><\/noscript><\/strong><br \/> <strong>\u4ee3\u7801\u6d4b\u8bd5<\/strong><\/p>\n<pre><code class=\"prism language-java\"><span class=\"token comment\">\/**\n * \u6d4b\u8bd5\u89e3\u91ca\u5668\u6a21\u5f0f\u548cJIT\u7f16\u8bd1\u6a21\u5f0f\n *  -Xint  : 6520ms\n *  -Xcomp : 950ms\n *  -Xmixed : 936ms\n *\/<\/span>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">IntCompTest<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n\n        <span class=\"token keyword\">long<\/span> start <span class=\"token operator\">=<\/span> System<span class=\"token punctuation\">.<\/span><span class=\"token function\">currentTimeMillis<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        <span class=\"token function\">testPrimeNumber<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1000000<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        <span class=\"token keyword\">long<\/span> end <span class=\"token operator\">=<\/span> System<span class=\"token punctuation\">.<\/span><span class=\"token function\">currentTimeMillis<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"\u82b1\u8d39\u7684\u65f6\u95f4\u4e3a\uff1a\"<\/span> <span class=\"token operator\">+<\/span> <span class=\"token punctuation\">(<\/span>end <span class=\"token operator\">-<\/span> start<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">testPrimeNumber<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> count<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> count<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token comment\">\/\/\u8ba1\u7b97100\u4ee5\u5185\u7684\u8d28\u6570<\/span>\n            label<span class=\"token operator\">:<\/span><span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> j <span class=\"token operator\">=<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span>j <span class=\"token operator\">&lt;=<\/span> <span class=\"token number\">100<\/span><span class=\"token punctuation\">;<\/span>j<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n                <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> k <span class=\"token operator\">=<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span>k <span class=\"token operator\">&lt;=<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">sqrt<\/span><span class=\"token punctuation\">(<\/span>j<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>k<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n                    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>j <span class=\"token operator\">%<\/span> k <span class=\"token operator\">==<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n                        <span class=\"token keyword\">continue<\/span> label<span class=\"token punctuation\">;<\/span>\n                    <span class=\"token punctuation\">}<\/span>\n                <span class=\"token punctuation\">}<\/span>\n                <span class=\"token comment\">\/\/System.out.println(j);<\/span>\n            <span class=\"token punctuation\">}<\/span>\n\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u7ed3\u8bba\uff1a\u53ea\u7528\u89e3\u91ca\u5668\u6267\u884c\u662f\u771f\u7684\u6162<\/p>\n<h3><a id=\"HotSpotVM_JIT__3729\"><\/a>HotSpotVM JIT \u5206\u7c7b<\/h3>\n<p>\u5728HotSpot VM\u4e2d\u5185\u5d4c\u6709\u4e24\u4e2aJIT\u7f16\u8bd1\u5668\uff0c\u5206\u522b\u4e3aClient Compiler\u548cServer Compiler\uff0c\u4f46\u5927\u591a\u6570\u60c5\u51b5\u4e0b\u6211\u4eec\u7b80\u79f0\u4e3aC1\u7f16\u8bd1\u5668 \u548c C2\u7f16\u8bd1\u5668\u3002\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u901a\u8fc7\u5982\u4e0b\u547d\u4ee4\u663e\u5f0f\u6307\u5b9aJava\u865a\u62df\u673a\u5728\u8fd0\u884c\u65f6\u5230\u5e95\u4f7f\u7528\u54ea\u4e00\u79cd\u5373\u65f6\u7f16\u8bd1\u5668\uff0c\u5982\u4e0b\u6240\u793a\uff1a<\/p>\n<ol>\n<li>-client\uff1a\u6307\u5b9aJava\u865a\u62df\u673a\u8fd0\u884c\u5728Client\u6a21\u5f0f\u4e0b\uff0c\u5e76\u4f7f\u7528C1\u7f16\u8bd1\u5668\uff1b\n<ul>\n<li>C1\u7f16\u8bd1\u5668\u4f1a\u5bf9\u5b57\u8282\u7801\u8fdb\u884c\u7b80\u5355\u548c\u53ef\u9760\u7684\u4f18\u5316\uff0c\u8017\u65f6\u77ed\uff0c\u4ee5\u8fbe\u5230\u66f4\u5feb\u7684\u7f16\u8bd1\u901f\u5ea6\u3002<\/li>\n<\/ul>\n<\/li>\n<li>-server\uff1a\u6307\u5b9aJava\u865a\u62df\u673a\u8fd0\u884c\u5728server\u6a21\u5f0f\u4e0b\uff0c\u5e76\u4f7f\u7528C2\u7f16\u8bd1\u5668\u3002\n<ul>\n<li>C2\u8fdb\u884c\u8017\u65f6\u8f83\u957f\u7684\u4f18\u5316\uff0c\u4ee5\u53ca\u6fc0\u8fdb\u4f18\u5316\uff0c\u4f46\u4f18\u5316\u7684\u4ee3\u7801\u6267\u884c\u6548\u7387\u66f4\u9ad8\u3002\uff08\u4f7f\u7528C++\uff09<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3><a id=\"C1C2_3742\"><\/a>C1\u548cC2\u7f16\u8bd1\u5668\u4e0d\u540c\u7684\u4f18\u5316\u7b56\u7565<\/h3>\n<ol>\n<li>\u5728\u4e0d\u540c\u7684\u7f16\u8bd1\u5668\u4e0a\u6709\u4e0d\u540c\u7684\u4f18\u5316\u7b56\u7565\uff0cC1\u7f16\u8bd1\u5668\u4e0a\u4e3b\u8981\u6709\u65b9\u6cd5\u5185\u8054\uff0c\u53bb\u865a\u62df\u5316\u3001\u5143\u4f59\u6d88\u9664\u3002\n<ul>\n<li>\u65b9\u6cd5\u5185\u8054\uff1a\u5c06\u5f15\u7528\u7684\u51fd\u6570\u4ee3\u7801\u7f16\u8bd1\u5230\u5f15\u7528\u70b9\u5904\uff0c\u8fd9\u6837\u53ef\u4ee5\u51cf\u5c11\u6808\u5e27\u7684\u751f\u6210\uff0c\u51cf\u5c11\u53c2\u6570\u4f20\u9012\u4ee5\u53ca\u8df3\u8f6c\u8fc7\u7a0b<\/li>\n<li>\u53bb\u865a\u62df\u5316\uff1a\u5bf9\u552f\u4e00\u7684\u5b9e\u73b0\u6a0a\u8fdb\u884c\u5185\u8054<\/li>\n<li>\u5197\u4f59\u6d88\u9664\uff1a\u5728\u8fd0\u884c\u671f\u95f4\u628a\u4e00\u4e9b\u4e0d\u4f1a\u6267\u884c\u7684\u4ee3\u7801\u6298\u53e0\u6389<\/li>\n<\/ul>\n<\/li>\n<li>C2\u7684\u4f18\u5316\u4e3b\u8981\u662f\u5728\u5168\u5c40\u5c42\u9762\uff0c\u9003\u9038\u5206\u6790\u662f\u4f18\u5316\u7684\u57fa\u7840\u3002\u57fa\u4e8e\u9003\u9038\u5206\u6790\u5728C2\u4e0a\u6709\u5982\u4e0b\u51e0\u79cd\u4f18\u5316\uff1a\n<ul>\n<li>\u6807\u91cf\u66ff\u6362\uff1a\u7528\u6807\u91cf\u503c\u4ee3\u66ff\u805a\u5408\u5bf9\u8c61\u7684\u5c5e\u6027\u503c<\/li>\n<li>\u6808\u4e0a\u5206\u914d\uff1a\u5bf9\u4e8e\u672a\u9003\u9038\u7684\u5bf9\u8c61\u5206\u914d\u5bf9\u8c61\u5728\u6808\u800c\u4e0d\u662f\u5806<\/li>\n<li>\u540c\u6b65\u6d88\u9664\uff1a\u6e05\u9664\u540c\u6b65\u64cd\u4f5c\uff0c\u901a\u5e38\u6307synchronized<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<blockquote>\n<p>\u4e5f\u5c31\u662f\u8bf4\u4e4b\u524d\u7684\u9003\u9038\u5206\u6790\uff0c\u53ea\u6709\u5728C2\uff08server\u6a21\u5f0f\u4e0b\uff09\u624d\u4f1a\u89e6\u53d1\u3002\u90a3\u662f\u5426\u8bf4\u660eC1\u5c31\u7528\u4e0d\u4e86\u4e86\uff1f<\/p>\n<\/blockquote>\n<h3><a id=\"_3760\"><\/a>\u5206\u5c42\u7f16\u8bd1\u7b56\u7565<\/h3>\n<ol>\n<li>\u5206\u5c42\u7f16\u8bd1\uff08Tiered Compilation\uff09\u7b56\u7565\uff1a\u7a0b\u5e8f\u89e3\u91ca\u6267\u884c\uff08\u4e0d\u5f00\u542f\u6027\u80fd\u76d1\u63a7\uff09\u53ef\u4ee5\u89e6\u53d1C1\u7f16\u8bd1\uff0c\u5c06\u5b57\u8282\u7801\u7f16\u8bd1\u6210\u673a\u5668\u7801\uff0c\u53ef\u4ee5\u8fdb\u884c\u7b80\u5355\u4f18\u5316\uff0c\u4e5f\u53ef\u4ee5\u52a0\u4e0a\u6027\u80fd\u76d1\u63a7\uff0cC2\u7f16\u8bd1\u4f1a\u6839\u636e\u6027\u80fd\u76d1\u63a7\u4fe1\u606f\u8fdb\u884c\u6fc0\u8fdb\u4f18\u5316\u3002<\/li>\n<li>\u4e0d\u8fc7\u5728Java7\u7248\u672c\u4e4b\u540e\uff0c\u4e00\u65e6\u5f00\u53d1\u4eba\u5458\u5728\u7a0b\u5e8f\u4e2d\u663e\u5f0f\u6307\u5b9a\u547d\u4ee4\u201c-server\"\u65f6\uff0c\u9ed8\u8ba4\u5c06\u4f1a\u5f00\u542f\u5206\u5c42\u7f16\u8bd1\u7b56\u7565\uff0c\u7531C1\u7f16\u8bd1\u5668\u548cC2\u7f16\u8bd1\u5668\u76f8\u4e92\u534f\u4f5c\u5171\u540c\u6765\u6267\u884c\u7f16\u8bd1\u4efb\u52a1\u3002<\/li>\n<li>\u4e00\u822c\u6765\u8bb2\uff0cJIT\u7f16\u8bd1\u51fa\u6765\u7684\u673a\u5668\u7801\u6027\u80fd\u6bd4\u89e3\u91ca\u5668\u89e3\u91ca\u6267\u884c\u7684\u6027\u80fd\u9ad8<\/li>\n<li>C2\u7f16\u8bd1\u5668\u542f\u52a8\u65f6\u957f\u6bd4C1\u6162\uff0c\u7cfb\u7edf\u7a33\u5b9a\u6267\u884c\u4ee5\u540e\uff0cC2\u7f16\u8bd1\u5668\u6267\u884c\u901f\u5ea6\u8fdc\u5feb\u4e8eC1\u7f16\u8bd1\u5668<\/li>\n<\/ol>\n<h4><a id=\"Graal__3770\"><\/a>Graal \u7f16\u8bd1\u5668<\/h4>\n<ul>\n<li>\u81eaJDK10\u8d77\uff0cHotSpot\u53c8\u52a0\u5165\u4e86\u4e00\u4e2a\u5168\u65b0\u7684\u5373\u65f6\u7f16\u8bd1\u5668\uff1aGraal\u7f16\u8bd1\u5668<\/li>\n<li>\u7f16\u8bd1\u6548\u679c\u77ed\u77ed\u51e0\u5e74\u65f6\u95f4\u5c31\u8ffd\u5e73\u4e86G2\u7f16\u8bd1\u5668\uff0c\u672a\u6765\u53ef\u671f\uff08\u5bf9\u5e94\u8fd8\u51fa\u73b0\u4e86Graal\u865a\u62df\u673a\uff0c\u662f\u6709\u53ef\u80fd\u66ff\u4ee3Hotspot\u7684\u865a\u62df\u673a\u7684\uff09<\/li>\n<li>\u76ee\u524d\uff0c\u5e26\u7740\u5b9e\u9a8c\u72b6\u6001\u6807\u7b7e\uff0c\u9700\u8981\u4f7f\u7528\u5f00\u5173\u53c2\u6570\u53bb\u6fc0\u6d3b\u624d\u80fd\u4f7f\u7528<br \/> -XX:+UnlockExperimentalvMOptions -XX:+UseJVMCICompiler<\/li>\n<\/ul>\n<h4><a id=\"AOT_3780\"><\/a>AOT\u7f16\u8bd1\u5668<\/h4>\n<ol>\n<li>jdk9\u5f15\u5165\u4e86AoT\u7f16\u8bd1\u5668\uff08\u9759\u6001\u63d0\u524d\u7f16\u8bd1\u5668\uff0cAhead of Time Compiler\uff09<\/li>\n<li>Java 9\u5f15\u5165\u4e86\u5b9e\u9a8c\u6027AOT\u7f16\u8bd1\u5de5\u5177jaotc\u3002\u5b83\u501f\u52a9\u4e86Graal\u7f16\u8bd1\u5668\uff0c\u5c06\u6240\u8f93\u5165\u7684Java\u7c7b\u6587\u4ef6\u8f6c\u6362\u4e3a\u673a\u5668\u7801\uff0c\u5e76\u5b58\u653e\u81f3\u751f\u6210\u7684\u52a8\u6001\u5171\u4eab\u5e93\u4e4b\u4e2d\u3002<\/li>\n<li>\u6240\u8c13AOT\u7f16\u8bd1\uff0c\u662f\u4e0e\u5373\u65f6\u7f16\u8bd1\u76f8\u5bf9\u7acb\u7684\u4e00\u4e2a\u6982\u5ff5\u3002\u6211\u4eec\u77e5\u9053\uff0c\u5373\u65f6\u7f16\u8bd1\u6307\u7684\u662f<strong>\u5728\u7a0b\u5e8f\u7684\u8fd0\u884c\u8fc7\u7a0b\u4e2d<\/strong>\uff0c\u5c06\u5b57\u8282\u7801\u8f6c\u6362\u4e3a\u53ef\u5728\u786c\u4ef6\u4e0a\u76f4\u63a5\u8fd0\u884c\u7684\u673a\u5668\u7801\uff0c\u5e76\u90e8\u7f72\u81f3\u6258\u7ba1\u73af\u5883\u4e2d\u7684\u8fc7\u7a0b\u3002\u800cAOT\u7f16\u8bd1\u6307\u7684\u5219\u662f\uff0c<strong>\u5728\u7a0b\u5e8f\u8fd0\u884c\u4e4b\u524d<\/strong>\uff0c\u4fbf\u5c06\u5b57\u8282\u7801\u8f6c\u6362\u4e3a\u673a\u5668\u7801\u7684\u8fc7\u7a0b\u3002<br \/> .java -&gt; .class -&gt; (\u4f7f\u7528jaotc) -&gt; .so<\/li>\n<\/ol>\n<p><strong>AOT\u7f16\u8bd1\u5668\u7f16\u8bd1\u5668\u7684\u4f18\u7f3a\u70b9<\/strong><\/p>\n<p><strong>\u6700\u5927\u7684\u597d\u5904\uff1a<\/strong><\/p>\n<ol>\n<li>Java\u865a\u62df\u673a\u52a0\u8f7d\u5df2\u7ecf\u9884\u7f16\u8bd1\u6210\u4e8c\u8fdb\u5236\u5e93\uff0c\u53ef\u4ee5\u76f4\u63a5\u6267\u884c\u3002<\/li>\n<li>\u4e0d\u5fc5\u7b49\u5f85\u5373\u65f6\u7f16\u8bd1\u5668\u7684\u9884\u70ed\uff0c\u51cf\u5c11Java\u5e94\u7528\u7ed9\u4eba\u5e26\u6765\u201c\u7b2c\u4e00\u6b21\u8fd0\u884c\u6162\u201d \u7684\u4e0d\u826f\u4f53\u9a8c<\/li>\n<\/ol>\n<p><strong>\u7f3a\u70b9\uff1a<\/strong><\/p>\n<ol>\n<li>\u7834\u574f\u4e86 java \u201c \u4e00\u6b21\u7f16\u8bd1\uff0c\u5230\u5904\u8fd0\u884c\u201d\uff0c\u5fc5\u987b\u4e3a\u6bcf\u4e2a\u4e0d\u540c\u7684\u786c\u4ef6\uff0cOS\u7f16\u8bd1\u5bf9\u5e94\u7684\u53d1\u884c\u5305<\/li>\n<li>\u964d\u4f4e\u4e86Java\u94fe\u63a5\u8fc7\u7a0b\u7684\u52a8\u6001\u6027\uff0c\u52a0\u8f7d\u7684\u4ee3\u7801\u5728\u7f16\u8bd1\u5668\u5c31\u5fc5\u987b\u5168\u90e8\u5df2\u77e5\u3002<\/li>\n<li>\u8fd8\u9700\u8981\u7ee7\u7eed\u4f18\u5316\u4e2d\uff0c\u6700\u521d\u53ea\u652f\u6301Linux X64 java base<\/li>\n<\/ol>\n<hr>\n<p>title: JVM\u7cfb\u5217-\u7b2c9\u7ae0-StringTable(\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60)<br \/> tags:<\/p>\n<ul>\n<li>JVM<\/li>\n<li>\u865a\u62df\u673a<br \/> categories:<\/li>\n<li>JVM<\/li>\n<li>1.\u5185\u5b58\u4e0e\u5783\u573e\u56de\u6536\u7bc7<br \/> keywords: JVM\uff0c\u865a\u62df\u673a\u3002<br \/> description: JVM\u7cfb\u5217-\u7b2c9\u7ae0-StringTable(\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60)\u3002<br \/> cover: \u2018<a href=\"https:\/\/cdn.jsdelivr.net\/gh\/youthlql\/lql_img\/JVM\/logo.png\" alt=\"JVM\u5165\u95e8\" title=\"JVM\u5165\u95e8\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/cdn.jsdelivr.net\/gh\/youthlql\/lql_img\/JVM\/logo.png<\/a>\u2019<br \/> top_img: \u2018<a href=\"https:\/\/cdn.jsdelivr.net\/gh\/youthlql\/lql_img\/blog\/top_img.jpg\" alt=\"JVM\u5165\u95e8\" title=\"JVM\u5165\u95e8\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/cdn.jsdelivr.net\/gh\/youthlql\/lql_img\/blog\/top_img.jpg<\/a>\u2019<br \/> abbrlink: ee2ba71e<br \/> date: 2020-11-16 12:38:02<\/li>\n<\/ul>\n<hr>\n<h1><a id=\"StringTable_3835\"><\/a>StringTable\uff08\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\uff09<\/h1>\n<h2><a id=\"String_3838\"><\/a>String\u7684\u57fa\u672c\u7279\u6027<\/h2>\n<ol>\n<li>String\uff1a\u5b57\u7b26\u4e32\uff0c\u4f7f\u7528\u4e00\u5bf9 \u201c\u201d \u5f15\u8d77\u6765\u8868\u793a<\/li>\n<\/ol>\n<pre><code class=\"prism language-java\">  String s1 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"atguigu\"<\/span> <span class=\"token punctuation\">;<\/span>   \t\t\t<span class=\"token comment\">\/\/ \u5b57\u9762\u91cf\u7684\u5b9a\u4e49\u65b9\u5f0f<\/span>\n  String s2 <span class=\"token operator\">=<\/span>  <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"hello\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>     <span class=\"token comment\">\/\/ new \u5bf9\u8c61\u7684\u65b9\u5f0f<\/span>\n<\/code><\/pre>\n<ol start=\"2\">\n<li>String\u88ab\u58f0\u660e\u4e3afinal\u7684\uff0c\u4e0d\u53ef\u88ab\u7ee7\u627f<\/li>\n<li>String\u5b9e\u73b0\u4e86Serializable\u63a5\u53e3\uff1a\u8868\u793a\u5b57\u7b26\u4e32\u662f\u652f\u6301\u5e8f\u5217\u5316\u7684\u3002\u5b9e\u73b0\u4e86Comparable\u63a5\u53e3\uff1a\u8868\u793aString\u53ef\u4ee5\u6bd4\u8f83\u5927\u5c0f<\/li>\n<li>String\u5728jdk8\u53ca\u4ee5\u524d\u5185\u90e8\u5b9a\u4e49\u4e86<code>final char value[]<\/code>\u7528\u4e8e\u5b58\u50a8\u5b57\u7b26\u4e32\u6570\u636e\u3002JDK9\u65f6\u6539\u4e3a<code>byte[]<\/code><\/li>\n<\/ol>\n<h2><a id=\"_JDK9__String__3857\"><\/a>\u4e3a\u4ec0\u4e48 JDK9 \u6539\u53d8\u4e86 String \u7684\u7ed3\u6784<\/h2>\n<blockquote>\n<p><strong>\u5b98\u65b9\u6587\u6863<\/strong>\uff1a<a href=\"http:\/\/openjdk.java.net\/jeps\/254\" target=\"_blank\"  rel=\"nofollow\" >http:\/\/openjdk.java.net\/jeps\/254<\/a><\/p>\n<\/blockquote>\n<p><strong>\u4e3a\u4ec0\u4e48\u6539\u4e3a byte[] \u5b58\u50a8\uff1f<\/strong><\/p>\n<ol>\n<li>String\u7c7b\u7684\u5f53\u524d\u5b9e\u73b0\u5c06\u5b57\u7b26\u5b58\u50a8\u5728char\u6570\u7ec4\u4e2d\uff0c\u6bcf\u4e2a\u5b57\u7b26\u4f7f\u7528\u4e24\u4e2a\u5b57\u8282(16\u4f4d)\u3002<\/li>\n<li>\u4ece\u8bb8\u591a\u4e0d\u540c\u7684\u5e94\u7528\u7a0b\u5e8f\u6536\u96c6\u7684\u6570\u636e\u8868\u660e\uff0c\u5b57\u7b26\u4e32\u662f\u5806\u4f7f\u7528\u7684\u4e3b\u8981\u7ec4\u6210\u90e8\u5206\uff0c\u800c\u4e14\u5927\u591a\u6570\u5b57\u7b26\u4e32\u5bf9\u8c61\u53ea\u5305\u542b\u62c9\u4e01\u5b57\u7b26\uff08Latin-1\uff09\u3002\u8fd9\u4e9b\u5b57\u7b26\u53ea\u9700\u8981\u4e00\u4e2a\u5b57\u8282\u7684\u5b58\u50a8\u7a7a\u95f4\uff0c\u56e0\u6b64\u8fd9\u4e9b\u5b57\u7b26\u4e32\u5bf9\u8c61\u7684\u5185\u90e8char\u6570\u7ec4\u4e2d\u6709\u4e00\u534a\u7684\u7a7a\u95f4\u5c06\u4e0d\u4f1a\u4f7f\u7528\uff0c\u4ea7\u751f\u4e86\u5927\u91cf\u6d6a\u8d39\u3002<\/li>\n<li>\u4e4b\u524d String \u7c7b\u4f7f\u7528 UTF-16 \u7684 char[] \u6570\u7ec4\u5b58\u50a8\uff0c\u73b0\u5728\u6539\u4e3a byte[] \u6570\u7ec4 \u5916\u52a0\u4e00\u4e2a\u7f16\u7801\u6807\u8bc6\u5b58\u50a8\u3002\u8be5\u7f16\u7801\u8868\u793a\u5982\u679c\u4f60\u7684\u5b57\u7b26\u662fISO-8859-1\u6216\u8005Latin-1\uff0c\u90a3\u4e48\u53ea\u9700\u8981\u4e00\u4e2a\u5b57\u8282\u5b58\u3002\u5982\u679c\u4f60\u662f\u5176\u5b83\u5b57\u7b26\u96c6\uff0c\u6bd4\u5982UTF-8\uff0c\u4f60\u4ecd\u7136\u7528\u4e24\u4e2a\u5b57\u8282\u5b58<\/li>\n<li>\u7ed3\u8bba\uff1aString\u518d\u4e5f\u4e0d\u7528char[] \u6765\u5b58\u50a8\u4e86\uff0c\u6539\u6210\u4e86byte [] \u52a0\u4e0a\u7f16\u7801\u6807\u8bb0\uff0c\u8282\u7ea6\u4e86\u4e00\u4e9b\u7a7a\u95f4<\/li>\n<li>\u540c\u65f6\u57fa\u4e8eString\u7684\u6570\u636e\u7ed3\u6784\uff0c\u4f8b\u5982StringBuffer\u548cStringBuilder\u4e5f\u540c\u6837\u505a\u4e86\u4fee\u6539<\/li>\n<\/ol>\n<pre><code class=\"prism language-java\"><span class=\"token comment\">\/\/ \u4e4b\u524d<\/span>\n<span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token keyword\">char<\/span> value<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token comment\">\/\/ \u4e4b\u540e<\/span>\n<span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token keyword\">byte<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> value\n<\/code><\/pre>\n<h3><a id=\"String__3883\"><\/a>String \u7684\u57fa\u672c\u7279\u6027<\/h3>\n<ul>\n<li>String\uff1a\u4ee3\u8868\u4e0d\u53ef\u53d8\u7684\u5b57\u7b26\u5e8f\u5217\u3002\u7b80\u79f0\uff1a\u4e0d\u53ef\u53d8\u6027\u3002<\/li>\n<\/ul>\n<ol>\n<li>\u5f53\u5bf9\u5b57\u7b26\u4e32\u91cd\u65b0\u8d4b\u503c\u65f6\uff0c\u9700\u8981\u91cd\u5199\u6307\u5b9a\u5185\u5b58\u533a\u57df\u8d4b\u503c\uff0c\u4e0d\u80fd\u4f7f\u7528\u539f\u6709\u7684value\u8fdb\u884c\u8d4b\u503c\u3002<\/li>\n<li>\u5f53\u5bf9\u73b0\u6709\u7684\u5b57\u7b26\u4e32\u8fdb\u884c\u8fde\u63a5\u64cd\u4f5c\u65f6\uff0c\u4e5f\u9700\u8981\u91cd\u65b0\u6307\u5b9a\u5185\u5b58\u533a\u57df\u8d4b\u503c\uff0c\u4e0d\u80fd\u4f7f\u7528\u539f\u6709\u7684value\u8fdb\u884c\u8d4b\u503c\u3002<\/li>\n<li>\u5f53\u8c03\u7528String\u7684replace()\u65b9\u6cd5\u4fee\u6539\u6307\u5b9a\u5b57\u7b26\u6216\u5b57\u7b26\u4e32\u65f6\uff0c\u4e5f\u9700\u8981\u91cd\u65b0\u6307\u5b9a\u5185\u5b58\u533a\u57df\u8d4b\u503c\uff0c\u4e0d\u80fd\u4f7f\u7528\u539f\u6709\u7684value\u8fdb\u884c\u8d4b\u503c\u3002<\/li>\n<\/ol>\n<ul>\n<li>\u901a\u8fc7\u5b57\u9762\u91cf\u7684\u65b9\u5f0f\uff08\u533a\u522b\u4e8enew\uff09\u7ed9\u4e00\u4e2a\u5b57\u7b26\u4e32\u8d4b\u503c\uff0c\u6b64\u65f6\u7684\u5b57\u7b26\u4e32\u503c\u58f0\u660e\u5728\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u3002<\/li>\n<\/ul>\n<p><strong>\u5f53\u5bf9\u5b57\u7b26\u4e32\u91cd\u65b0\u8d4b\u503c\u65f6\uff0c\u9700\u8981\u91cd\u5199\u6307\u5b9a\u5185\u5b58\u533a\u57df\u8d4b\u503c\uff0c\u4e0d\u80fd\u4f7f\u7528\u539f\u6709\u7684value\u8fdb\u884c\u8d4b\u503c<\/strong><\/p>\n<p>\u4ee3\u7801<\/p>\n<pre><code class=\"prism language-java\">\t<span class=\"token annotation punctuation\">@Test<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">test1<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        String s1 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"abc\"<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u5b57\u9762\u91cf\u5b9a\u4e49\u7684\u65b9\u5f0f\uff0c\"abc\"\u5b58\u50a8\u5728\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d<\/span>\n        String s2 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"abc\"<\/span><span class=\"token punctuation\">;<\/span>\n        s1 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"hello\"<\/span><span class=\"token punctuation\">;<\/span>\n\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s1 <span class=\"token operator\">==<\/span> s2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u5224\u65ad\u5730\u5740\uff1atrue  --&gt; false<\/span>\n\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/abc<\/span>\n\n    <span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u5b57\u8282\u7801\u6307\u4ee4<\/p>\n<ul>\n<li>\u53d6\u5b57\u7b26\u4e32 \u201cabc\u201d \u65f6\uff0c\u4f7f\u7528\u7684\u662f\u540c\u4e00\u4e2a\u7b26\u53f7\u5f15\u7528\uff1a#2<\/li>\n<li>\u53d6\u5b57\u7b26\u4e32 \u201chello\u201d \u65f6\uff0c\u4f7f\u7528\u7684\u662f\u53e6\u4e00\u4e2a\u7b26\u53f7\u5f15\u7528\uff1a#3<\/li>\n<\/ul>\n<p><strong>\u5f53\u5bf9\u73b0\u6709\u7684\u5b57\u7b26\u4e32\u8fdb\u884c\u8fde\u63a5\u64cd\u4f5c\u65f6\uff0c\u4e5f\u9700\u8981\u91cd\u65b0\u6307\u5b9a\u5185\u5b58\u533a\u57df\u8d4b\u503c\uff0c\u4e0d\u80fd\u4f7f\u7528\u539f\u6709\u7684value\u8fdb\u884c\u8d4b\u503c<\/strong><\/p>\n<pre><code class=\"prism language-java\">\t<span class=\"token annotation punctuation\">@Test<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">test2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        String s1 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"abc\"<\/span><span class=\"token punctuation\">;<\/span>\n        String s2 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"abc\"<\/span><span class=\"token punctuation\">;<\/span>\n        s2 <span class=\"token operator\">+=<\/span> <span class=\"token string\">\"def\"<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/abcdef<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/abc<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p><strong>\u5f53\u8c03\u7528string\u7684replace()\u65b9\u6cd5\u4fee\u6539\u6307\u5b9a\u5b57\u7b26\u6216\u5b57\u7b26\u4e32\u65f6\uff0c\u4e5f\u9700\u8981\u91cd\u65b0\u6307\u5b9a\u5185\u5b58\u533a\u57df\u8d4b\u503c\uff0c\u4e0d\u80fd\u4f7f\u7528\u539f\u6709\u7684value\u8fdb\u884c\u8d4b\u503c<\/strong><\/p>\n<pre><code class=\"prism language-java\"><span class=\"token annotation punctuation\">@Test<\/span>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">test3<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    String s1 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"abc\"<\/span><span class=\"token punctuation\">;<\/span>\n    String s2 <span class=\"token operator\">=<\/span> s1<span class=\"token punctuation\">.<\/span><span class=\"token function\">replace<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'a'<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">'m'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/abc<\/span>\n    System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/mbc<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p><strong>\u4e00\u9053\u7b14\u8bd5\u9898<\/strong><\/p>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">StringExer<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    String str <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"good\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">char<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> ch <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<!-- --><\/span><span class=\"token string\">'t'<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">'e'<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">'s'<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">'t'<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">change<\/span><span class=\"token punctuation\">(<\/span>String str<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">char<\/span> ch<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        str <span class=\"token operator\">=<\/span> <span class=\"token string\">\"test ok\"<\/span><span class=\"token punctuation\">;<\/span>\n        ch<span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">=<\/span> <span class=\"token string\">'b'<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        StringExer ex <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">StringExer<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        ex<span class=\"token punctuation\">.<\/span><span class=\"token function\">change<\/span><span class=\"token punctuation\">(<\/span>ex<span class=\"token punctuation\">.<\/span>str<span class=\"token punctuation\">,<\/span> ex<span class=\"token punctuation\">.<\/span>ch<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>ex<span class=\"token punctuation\">.<\/span>str<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/good<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>ex<span class=\"token punctuation\">.<\/span>ch<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/best<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>str \u7684\u5185\u5bb9\u5e76\u6ca1\u6709\u53d8\uff1a\u201ctest ok\u201d \u4f4d\u4e8e\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u7684\u53e6\u4e00\u4e2a\u533a\u57df\uff08\u5730\u5740\uff09\uff0c\u8fdb\u884c\u8d4b\u503c\u64cd\u4f5c\u5e76\u6ca1\u6709\u4fee\u6539\u539f\u6765 str \u6307\u5411\u7684\u5f15\u7528\u7684\u5185\u5bb9<\/p>\n<h3><a id=\"String__3986\"><\/a>String \u7684\u5e95\u5c42\u7ed3\u6784<\/h3>\n<p><strong>\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u662f\u4e0d\u4f1a\u5b58\u50a8\u76f8\u540c\u5185\u5bb9\u7684\u5b57\u7b26\u4e32\u7684<\/strong><\/p>\n<ol>\n<li>String\u7684String Pool\uff08\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\uff09\u662f\u4e00\u4e2a\u56fa\u5b9a\u5927\u5c0f\u7684Hashtable\uff0c\u9ed8\u8ba4\u503c\u5927\u5c0f\u957f\u5ea6\u662f1009\u3002\u5982\u679c\u653e\u8fdbString Pool\u7684String\u975e\u5e38\u591a\uff0c\u5c31\u4f1a\u9020\u6210Hash\u51b2\u7a81\u4e25\u91cd\uff0c\u4ece\u800c\u5bfc\u81f4\u94fe\u8868\u4f1a\u5f88\u957f\uff0c\u800c\u94fe\u8868\u957f\u4e86\u540e\u76f4\u63a5\u4f1a\u9020\u6210\u7684\u5f71\u54cd\u5c31\u662f\u5f53\u8c03\u7528String.intern()\u65b9\u6cd5\u65f6\u6027\u80fd\u4f1a\u5927\u5e45\u4e0b\u964d\u3002<\/li>\n<li>\u4f7f\u7528-XX:StringTablesize\u53ef\u8bbe\u7f6eStringTable\u7684\u957f\u5ea6<\/li>\n<li>\u5728JDK6\u4e2dStringTable\u662f\u56fa\u5b9a\u7684\uff0c\u5c31\u662f1009\u7684\u957f\u5ea6\uff0c\u6240\u4ee5\u5982\u679c\u5e38\u91cf\u6c60\u4e2d\u7684\u5b57\u7b26\u4e32\u8fc7\u591a\u5c31\u4f1a\u5bfc\u81f4\u6548\u7387\u4e0b\u964d\u5f88\u5feb\uff0cStringTablesize\u8bbe\u7f6e\u6ca1\u6709\u8981\u6c42<\/li>\n<li>\u5728JDK7\u4e2d\uff0cStringTable\u7684\u957f\u5ea6\u9ed8\u8ba4\u503c\u662f60013\uff0cStringTablesize\u8bbe\u7f6e\u6ca1\u6709\u8981\u6c42<\/li>\n<li>\u5728JDK8\u4e2d\uff0cStringTable\u7684\u957f\u5ea6\u9ed8\u8ba4\u503c\u662f60013\uff0cStringTable\u53ef\u4ee5\u8bbe\u7f6e\u7684\u6700\u5c0f\u503c\u4e3a1009<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/72ca217d61741117a5171593ae13b884.png#align=left&amp;display=inline&amp;height=300&amp;originHeight=300&amp;originWidth=857&amp;size=0&amp;status=done&amp;style=none&amp;width=857\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/72ca217d61741117a5171593ae13b884.png#align=left&amp;display=inline&amp;height=300&amp;originHeight=300&amp;originWidth=857&amp;size=0&amp;status=done&amp;style=none&amp;width=857\" alt=\"\"><\/noscript><\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/178cbab1296af0b33157bdb6ab7f7df2.png#align=left&amp;display=inline&amp;height=215&amp;originHeight=215&amp;originWidth=1382&amp;size=0&amp;status=done&amp;style=none&amp;width=1382\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/178cbab1296af0b33157bdb6ab7f7df2.png#align=left&amp;display=inline&amp;height=215&amp;originHeight=215&amp;originWidth=1382&amp;size=0&amp;status=done&amp;style=none&amp;width=1382\" alt=\"\"><\/noscript><\/p>\n<p><strong>\u6d4b\u8bd5\u4e0d\u540c StringTable \u957f\u5ea6\u4e0b\uff0c\u7a0b\u5e8f\u7684\u6027\u80fd<\/strong><\/p>\n<p>\u4ee3\u7801<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token comment\">\/**\n * \u4ea7\u751f10\u4e07\u4e2a\u957f\u5ea6\u4e0d\u8d85\u8fc710\u7684\u5b57\u7b26\u4e32\uff0c\u5305\u542ba-z,A-Z\n *\/<\/span>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">GenerateString<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">throws<\/span> IOException <span class=\"token punctuation\">{<!-- --><\/span>\n        FileWriter fw <span class=\"token operator\">=<\/span>  <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">FileWriter<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"words.txt\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> <span class=\"token number\">100000<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token comment\">\/\/1 - 10<\/span>\n           <span class=\"token keyword\">int<\/span> length <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">(<\/span>Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">random<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token number\">10<\/span> <span class=\"token operator\">-<\/span> <span class=\"token number\">1<\/span> <span class=\"token operator\">+<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            fw<span class=\"token punctuation\">.<\/span><span class=\"token function\">write<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">getString<\/span><span class=\"token punctuation\">(<\/span>length<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token string\">\"\\n\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n\n        fw<span class=\"token punctuation\">.<\/span><span class=\"token function\">close<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> String <span class=\"token function\">getString<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> length<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        String str <span class=\"token operator\">=<\/span> <span class=\"token string\">\"\"<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> length<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token comment\">\/\/65 - 90, 97-122<\/span>\n            <span class=\"token keyword\">int<\/span> num <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">(<\/span>Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">random<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token number\">90<\/span> <span class=\"token operator\">-<\/span> <span class=\"token number\">65<\/span> <span class=\"token operator\">+<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token number\">65<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">(<\/span>Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">random<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">32<\/span><span class=\"token punctuation\">;<\/span>\n            str <span class=\"token operator\">+=<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">char<\/span><span class=\"token punctuation\">)<\/span>num<span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token keyword\">return<\/span> str<span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">StringTest2<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n\n        BufferedReader br <span class=\"token operator\">=<\/span> null<span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            br <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">BufferedReader<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">FileReader<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"words.txt\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token keyword\">long<\/span> start <span class=\"token operator\">=<\/span> System<span class=\"token punctuation\">.<\/span><span class=\"token function\">currentTimeMillis<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            String data<span class=\"token punctuation\">;<\/span>\n            <span class=\"token keyword\">while<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span>data <span class=\"token operator\">=<\/span> br<span class=\"token punctuation\">.<\/span><span class=\"token function\">readLine<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">!=<\/span> null<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n                data<span class=\"token punctuation\">.<\/span><span class=\"token function\">intern<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/\u5982\u679c\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u6ca1\u6709\u5bf9\u5e94data\u7684\u5b57\u7b26\u4e32\u7684\u8bdd\uff0c\u5219\u5728\u5e38\u91cf\u6c60\u4e2d\u751f\u6210<\/span>\n            <span class=\"token punctuation\">}<\/span>\n\n            <span class=\"token keyword\">long<\/span> end <span class=\"token operator\">=<\/span> System<span class=\"token punctuation\">.<\/span><span class=\"token function\">currentTimeMillis<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n            System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"\u82b1\u8d39\u7684\u65f6\u95f4\u4e3a\uff1a\"<\/span> <span class=\"token operator\">+<\/span> <span class=\"token punctuation\">(<\/span>end <span class=\"token operator\">-<\/span> start<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/1009:143ms  100009:47ms<\/span>\n        <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">IOException<\/span> e<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            e<span class=\"token punctuation\">.<\/span><span class=\"token function\">printStackTrace<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">finally<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>br <span class=\"token operator\">!=<\/span> null<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n                <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n                    br<span class=\"token punctuation\">.<\/span><span class=\"token function\">close<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">IOException<\/span> e<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n                    e<span class=\"token punctuation\">.<\/span><span class=\"token function\">printStackTrace<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                <span class=\"token punctuation\">}<\/span>\n\n            <span class=\"token punctuation\">}<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<ul>\n<li>-XX:StringTableSize=1009 \uff1a\u7a0b\u5e8f\u8017\u65f6 143ms<\/li>\n<li>-XX:StringTableSize=100009 \uff1a\u7a0b\u5e8f\u8017\u65f6 47ms<\/li>\n<\/ul>\n<h2><a id=\"String__4080\"><\/a>String \u7684\u5185\u5b58\u5206\u914d<\/h2>\n<ol>\n<li>\u5728Java\u8bed\u8a00\u4e2d\u67098\u79cd\u57fa\u672c\u6570\u636e\u7c7b\u578b\u548c\u4e00\u79cd\u6bd4\u8f83\u7279\u6b8a\u7684\u7c7b\u578bString\u3002\u8fd9\u4e9b\u7c7b\u578b\u4e3a\u4e86\u4f7f\u5b83\u4eec\u5728\u8fd0\u884c\u8fc7\u7a0b\u4e2d\u901f\u5ea6\u66f4\u5feb\u3001\u66f4\u8282\u7701\u5185\u5b58\uff0c\u90fd\u63d0\u4f9b\u4e86\u4e00\u79cd\u5e38\u91cf\u6c60\u7684\u6982\u5ff5\u3002<\/li>\n<li>\u5e38\u91cf\u6c60\u5c31\u7c7b\u4f3c\u4e00\u4e2aJava\u7cfb\u7edf\u7ea7\u522b\u63d0\u4f9b\u7684\u7f13\u5b58\u30028\u79cd\u57fa\u672c\u6570\u636e\u7c7b\u578b\u7684\u5e38\u91cf\u6c60\u90fd\u662f\u7cfb\u7edf\u534f\u8c03\u7684\uff0cString\u7c7b\u578b\u7684\u5e38\u91cf\u6c60\u6bd4\u8f83\u7279\u6b8a\u3002\u5b83\u7684\u4e3b\u8981\u4f7f\u7528\u65b9\u6cd5\u6709\u4e24\u79cd\u3002\n<ul>\n<li>\u76f4\u63a5\u4f7f\u7528\u53cc\u5f15\u53f7\u58f0\u660e\u51fa\u6765\u7684String\u5bf9\u8c61\u4f1a\u76f4\u63a5\u5b58\u50a8\u5728\u5e38\u91cf\u6c60\u4e2d\u3002\u6bd4\u5982\uff1a<code>String info=\"atguigu.com\";<\/code><\/li>\n<li>\u5982\u679c\u4e0d\u662f\u7528\u53cc\u5f15\u53f7\u58f0\u660e\u7684String\u5bf9\u8c61\uff0c\u53ef\u4ee5\u4f7f\u7528String\u63d0\u4f9b\u7684intern()\u65b9\u6cd5\u3002\u8fd9\u4e2a\u540e\u9762\u91cd\u70b9\u8c08<\/li>\n<\/ul>\n<\/li>\n<li>Java 6\u53ca\u4ee5\u524d\uff0c\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u5b58\u653e\u5728\u6c38\u4e45\u4ee3<\/li>\n<li>Java 7\u4e2d Oracle\u7684\u5de5\u7a0b\u5e08\u5bf9\u5b57\u7b26\u4e32\u6c60\u7684\u903b\u8f91\u505a\u4e86\u5f88\u5927\u7684\u6539\u53d8\uff0c\u5373\u5c06\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u7684\u4f4d\u7f6e\u8c03\u6574\u5230Java\u5806\u5185\n<ul>\n<li>\u6240\u6709\u7684\u5b57\u7b26\u4e32\u90fd\u4fdd\u5b58\u5728\u5806\uff08Heap\uff09\u4e2d\uff0c\u548c\u5176\u4ed6\u666e\u901a\u5bf9\u8c61\u4e00\u6837\uff0c\u8fd9\u6837\u53ef\u4ee5\u8ba9\u4f60\u5728\u8fdb\u884c\u8c03\u4f18\u5e94\u7528\u65f6\u4ec5\u9700\u8981\u8c03\u6574\u5806\u5927\u5c0f\u5c31\u53ef\u4ee5\u4e86\u3002<\/li>\n<li>\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u6982\u5ff5\u539f\u672c\u4f7f\u7528\u5f97\u6bd4\u8f83\u591a\uff0c\u4f46\u662f\u8fd9\u4e2a\u6539\u52a8\u4f7f\u5f97\u6211\u4eec\u6709\u8db3\u591f\u7684\u7406\u7531\u8ba9\u6211\u4eec\u91cd\u65b0\u8003\u8651\u5728Java 7\u4e2d\u4f7f\u7528String.intern()\u3002<\/li>\n<\/ul>\n<\/li>\n<li>Java8\u5143\u7a7a\u95f4\uff0c\u5b57\u7b26\u4e32\u5e38\u91cf\u5728\u5806<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f64d08fb4b5e5cd168282c50320bcfbe.png#align=left&amp;display=inline&amp;height=508&amp;originHeight=508&amp;originWidth=998&amp;size=0&amp;status=done&amp;style=none&amp;width=998\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f64d08fb4b5e5cd168282c50320bcfbe.png#align=left&amp;display=inline&amp;height=508&amp;originHeight=508&amp;originWidth=998&amp;size=0&amp;status=done&amp;style=none&amp;width=998\" alt=\"\"><\/noscript><\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f8dbfdf6671b9312823ba9346cb340e6.png#align=left&amp;display=inline&amp;height=473&amp;originHeight=473&amp;originWidth=992&amp;size=0&amp;status=done&amp;style=none&amp;width=992\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f8dbfdf6671b9312823ba9346cb340e6.png#align=left&amp;display=inline&amp;height=473&amp;originHeight=473&amp;originWidth=992&amp;size=0&amp;status=done&amp;style=none&amp;width=992\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"StringTable__4101\"><\/a>StringTable \u4e3a\u4ec0\u4e48\u8981\u8c03\u6574\uff1f<\/h3>\n<blockquote>\n<p><strong>\u5b98\u65b9\u6587\u6863<\/strong>:<a href=\"https:\/\/www.oracle.com\/java\/technologies\/javase\/jdk7-relnotes.html#jdk7changes\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/www.oracle.com\/java\/technologies\/javase\/jdk7-relnotes.html#jdk7changes<\/a><\/p>\n<\/blockquote>\n<ol>\n<li>\u4e3a\u4ec0\u4e48\u8981\u8c03\u6574\u4f4d\u7f6e\uff1f\n<ul>\n<li>\u6c38\u4e45\u4ee3\u7684\u9ed8\u8ba4\u7a7a\u95f4\u5927\u5c0f\u6bd4\u8f83\u5c0f<\/li>\n<li>\u6c38\u4e45\u4ee3\u5783\u573e\u56de\u6536\u9891\u7387\u4f4e\uff0c\u5927\u91cf\u7684\u5b57\u7b26\u4e32\u65e0\u6cd5\u53ca\u65f6\u56de\u6536\uff0c\u5bb9\u6613\u8fdb\u884cFull GC\u4ea7\u751fSTW\u6216\u8005\u5bb9\u6613\u4ea7\u751fOOM\uff1aPermGen Space<\/li>\n<li>\u5806\u4e2d\u7a7a\u95f4\u8db3\u591f\u5927\uff0c\u5b57\u7b26\u4e32\u53ef\u88ab\u53ca\u65f6\u56de\u6536<\/li>\n<\/ul>\n<\/li>\n<li>\u5728JDK 7\u4e2d\uff0cinterned\u5b57\u7b26\u4e32\u4e0d\u518d\u5728Java\u5806\u7684\u6c38\u4e45\u4ee3\u4e2d\u5206\u914d\uff0c\u800c\u662f\u5728Java\u5806\u7684\u4e3b\u8981\u90e8\u5206\uff08\u79f0\u4e3a\u5e74\u8f7b\u4ee3\u548c\u5e74\u8001\u4ee3\uff09\u4e2d\u5206\u914d\uff0c\u4e0e\u5e94\u7528\u7a0b\u5e8f\u521b\u5efa\u7684\u5176\u4ed6\u5bf9\u8c61\u4e00\u8d77\u5206\u914d\u3002<\/li>\n<li>\u6b64\u66f4\u6539\u5c06\u5bfc\u81f4\u9a7b\u7559\u5728\u4e3bJava\u5806\u4e2d\u7684\u6570\u636e\u66f4\u591a\uff0c\u9a7b\u7559\u5728\u6c38\u4e45\u751f\u6210\u4e2d\u7684\u6570\u636e\u66f4\u5c11\uff0c\u56e0\u6b64\u53ef\u80fd\u9700\u8981\u8c03\u6574\u5806\u5927\u5c0f\u3002<\/li>\n<\/ol>\n<p><strong>\u4ee3\u7801\u793a\u4f8b<\/strong><\/p>\n<pre><code class=\"prism language-java\"><span class=\"token comment\">\/**\n * jdk6\u4e2d\uff1a\n * -XX:PermSize=6m -XX:MaxPermSize=6m -Xms6m -Xmx6m\n *\n * jdk8\u4e2d\uff1a\n * -XX:MetaspaceSize=6m -XX:MaxMetaspaceSize=6m -Xms6m -Xmx6m\n *\/<\/span>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">StringTest3<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token comment\">\/\/\u4f7f\u7528Set\u4fdd\u6301\u7740\u5e38\u91cf\u6c60\u5f15\u7528\uff0c\u907f\u514dfull gc\u56de\u6536\u5e38\u91cf\u6c60\u884c\u4e3a<\/span>\n        Set<span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>String<span class=\"token punctuation\">&gt;<\/span><\/span> set <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">HashSet<\/span><span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>String<span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token comment\">\/\/\u5728short\u53ef\u4ee5\u53d6\u503c\u7684\u8303\u56f4\u5185\u8db3\u4ee5\u8ba96MB\u7684PermSize\u6216heap\u4ea7\u751fOOM\u4e86\u3002<\/span>\n        <span class=\"token keyword\">short<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">while<\/span><span class=\"token punctuation\">(<\/span><span class=\"token boolean\">true<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n            set<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">.<\/span><span class=\"token function\">valueOf<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">intern<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u8f93\u51fa\u7ed3\u679c\uff1a\u6211\u771f\u6ca1\u9a97\u4f60\uff0c\u5b57\u7b26\u4e32\u771f\u7684\u5728\u5806\u4e2d\uff08JDK8\uff09<\/p>\n<pre><code class=\"prism language-java\">Exception in thread <span class=\"token string\">\"main\"<\/span> java<span class=\"token punctuation\">.<\/span>lang<span class=\"token punctuation\">.<\/span>OutOfMemoryError<span class=\"token operator\">:<\/span> Java heap space\n\tat java<span class=\"token punctuation\">.<\/span>util<span class=\"token punctuation\">.<\/span>HashMap<span class=\"token punctuation\">.<\/span><span class=\"token function\">resize<\/span><span class=\"token punctuation\">(<\/span>HashMap<span class=\"token punctuation\">.<\/span>java<span class=\"token operator\">:<\/span><span class=\"token number\">703<\/span><span class=\"token punctuation\">)<\/span>\n\tat java<span class=\"token punctuation\">.<\/span>util<span class=\"token punctuation\">.<\/span>HashMap<span class=\"token punctuation\">.<\/span><span class=\"token function\">putVal<\/span><span class=\"token punctuation\">(<\/span>HashMap<span class=\"token punctuation\">.<\/span>java<span class=\"token operator\">:<\/span><span class=\"token number\">662<\/span><span class=\"token punctuation\">)<\/span>\n\tat java<span class=\"token punctuation\">.<\/span>util<span class=\"token punctuation\">.<\/span>HashMap<span class=\"token punctuation\">.<\/span><span class=\"token function\">put<\/span><span class=\"token punctuation\">(<\/span>HashMap<span class=\"token punctuation\">.<\/span>java<span class=\"token operator\">:<\/span><span class=\"token number\">611<\/span><span class=\"token punctuation\">)<\/span>\n\tat java<span class=\"token punctuation\">.<\/span>util<span class=\"token punctuation\">.<\/span>HashSet<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span>HashSet<span class=\"token punctuation\">.<\/span>java<span class=\"token operator\">:<\/span><span class=\"token number\">219<\/span><span class=\"token punctuation\">)<\/span>\n\tat com<span class=\"token punctuation\">.<\/span>atguigu<span class=\"token punctuation\">.<\/span>java<span class=\"token punctuation\">.<\/span>StringTest3<span class=\"token punctuation\">.<\/span><span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>StringTest3<span class=\"token punctuation\">.<\/span>java<span class=\"token operator\">:<\/span><span class=\"token number\">22<\/span><span class=\"token punctuation\">)<\/span>\n\nProcess finished with exit code <span class=\"token number\">1<\/span>\n<\/code><\/pre>\n<h2><a id=\"String__4157\"><\/a>String \u7684\u57fa\u672c\u64cd\u4f5c<\/h2>\n<p>Java\u8bed\u8a00\u89c4\u8303\u91cc\u8981\u6c42\u5b8c\u5168\u76f8\u540c\u7684\u5b57\u7b26\u4e32\u5b57\u9762\u91cf\uff0c\u5e94\u8be5\u5305\u542b\u540c\u6837\u7684Unicode\u5b57\u7b26\u5e8f\u5217\uff08\u5305\u542b\u540c\u4e00\u4efd\u7801\u70b9\u5e8f\u5217\u7684\u5e38\u91cf\uff09\uff0c\u5e76\u4e14\u5fc5\u987b\u662f\u6307\u5411\u540c\u4e00\u4e2aString\u7c7b\u5b9e\u4f8b\u3002<\/p>\n<h3><a id=\"1_4163\"><\/a>\u4e3e\u4f8b1<\/h3>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">StringTest4<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/2293<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"1\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/2294<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"2\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"3\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"4\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"5\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"6\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"7\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"8\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"9\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"10\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/2303<\/span>\n        <span class=\"token comment\">\/\/\u5982\u4e0b\u7684\u5b57\u7b26\u4e32\"1\" \u5230 \"10\"\u4e0d\u4f1a\u518d\u6b21\u52a0\u8f7d<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"1\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/2304<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"2\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/2304<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"3\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"4\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"5\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"6\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"7\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"8\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"9\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"10\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/2304<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u5206\u6790\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u7684\u53d8\u5316<\/p>\n<p>1\u3001\u7a0b\u5e8f\u542f\u52a8\u65f6\u5df2\u7ecf\u52a0\u8f7d\u4e86 2293 \u4e2a\u5b57\u7b26\u4e32\u5e38\u91cf<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/e15be981bfa4210a318b2c2357a5bdfe.png#align=left&amp;display=inline&amp;height=842&amp;originHeight=842&amp;originWidth=1880&amp;size=0&amp;status=done&amp;style=none&amp;width=1880\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/e15be981bfa4210a318b2c2357a5bdfe.png#align=left&amp;display=inline&amp;height=842&amp;originHeight=842&amp;originWidth=1880&amp;size=0&amp;status=done&amp;style=none&amp;width=1880\" alt=\"\"><\/noscript><\/p>\n<p>2\u3001\u52a0\u8f7d\u4e86\u4e00\u4e2a\u6362\u884c\u7b26\uff08println\uff09\uff0c\u6240\u4ee5\u591a\u4e86\u4e00\u4e2a<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/c85efb227379715df641b3a3189125ee.png#align=left&amp;display=inline&amp;height=869&amp;originHeight=869&amp;originWidth=1870&amp;size=0&amp;status=done&amp;style=none&amp;width=1870\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/c85efb227379715df641b3a3189125ee.png#align=left&amp;display=inline&amp;height=869&amp;originHeight=869&amp;originWidth=1870&amp;size=0&amp;status=done&amp;style=none&amp;width=1870\" alt=\"\"><\/noscript><\/p>\n<p>3\u3001\u52a0\u8f7d\u4e86\u5b57\u7b26\u4e32\u5e38\u91cf \u201c1\u201d~\u201c9\u201d<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/e2f5c793e84a0ee08b9931c09b13531d.png#align=left&amp;display=inline&amp;height=850&amp;originHeight=850&amp;originWidth=1893&amp;size=0&amp;status=done&amp;style=none&amp;width=1893\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/e2f5c793e84a0ee08b9931c09b13531d.png#align=left&amp;display=inline&amp;height=850&amp;originHeight=850&amp;originWidth=1893&amp;size=0&amp;status=done&amp;style=none&amp;width=1893\" alt=\"\"><\/noscript><\/p>\n<p>4\u3001\u52a0\u8f7d\u5b57\u7b26\u4e32\u5e38\u91cf \u201c10\u201d<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/8a88bb51475f273b6c895d6ec576dbc4.png#align=left&amp;display=inline&amp;height=848&amp;originHeight=848&amp;originWidth=1909&amp;size=0&amp;status=done&amp;style=none&amp;width=1909\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/8a88bb51475f273b6c895d6ec576dbc4.png#align=left&amp;display=inline&amp;height=848&amp;originHeight=848&amp;originWidth=1909&amp;size=0&amp;status=done&amp;style=none&amp;width=1909\" alt=\"\"><\/noscript><\/p>\n<p>5\u3001\u4e4b\u540e\u7684\u5b57\u7b26\u4e32\"1\" \u5230 \"10\"\u4e0d\u4f1a\u518d\u6b21\u52a0\u8f7d<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f96f7b49dc84c92799e7fa0596710db4.png#align=left&amp;display=inline&amp;height=838&amp;originHeight=838&amp;originWidth=1851&amp;size=0&amp;status=done&amp;style=none&amp;width=1851\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f96f7b49dc84c92799e7fa0596710db4.png#align=left&amp;display=inline&amp;height=838&amp;originHeight=838&amp;originWidth=1851&amp;size=0&amp;status=done&amp;style=none&amp;width=1851\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"2_4229\"><\/a>\u4e3e\u4f8b2<\/h3>\n<pre><code class=\"prism language-java\"><span class=\"token comment\">\/\/\u5b98\u65b9\u793a\u4f8b\u4ee3\u7801<\/span>\n<span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Memory<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span><span class=\"token comment\">\/\/line 1<\/span>\n        <span class=\"token keyword\">int<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/line 2<\/span>\n        Object obj <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Object<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/line 3<\/span>\n        Memory mem <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Memory<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/line 4<\/span>\n        mem<span class=\"token punctuation\">.<\/span><span class=\"token function\">foo<\/span><span class=\"token punctuation\">(<\/span>obj<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/line 5<\/span>\n    <span class=\"token punctuation\">}<\/span><span class=\"token comment\">\/\/line 9<\/span>\n\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">foo<\/span><span class=\"token punctuation\">(<\/span>Object param<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span><span class=\"token comment\">\/\/line 6<\/span>\n        String str <span class=\"token operator\">=<\/span> param<span class=\"token punctuation\">.<\/span><span class=\"token function\">toString<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/line 7<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>str<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span><span class=\"token comment\">\/\/line 8<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u5206\u6790\u8fd0\u884c\u65f6\u5185\u5b58\uff08foo() \u65b9\u6cd5\u662f\u5b9e\u4f8b\u65b9\u6cd5\uff0c\u5176\u5b9e\u56fe\u4e2d\u5c11\u4e86\u4e00\u4e2a this \u5c40\u90e8\u53d8\u91cf\uff09<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/88fcd9e9ff25e4a8f0bdc873d73075e7.png#align=left&amp;display=inline&amp;height=569&amp;originHeight=569&amp;originWidth=1216&amp;size=0&amp;status=done&amp;style=none&amp;width=1216\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/88fcd9e9ff25e4a8f0bdc873d73075e7.png#align=left&amp;display=inline&amp;height=569&amp;originHeight=569&amp;originWidth=1216&amp;size=0&amp;status=done&amp;style=none&amp;width=1216\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"_4256\"><\/a>\u5b57\u7b26\u4e32\u62fc\u63a5\u64cd\u4f5c<\/h2>\n<h3><a id=\"_4259\"><\/a>\u5148\u8bf4\u7ed3\u8bba<\/h3>\n<ol>\n<li>\u5e38\u91cf\u4e0e\u5e38\u91cf\u7684\u62fc\u63a5\u7ed3\u679c\u5728\u5e38\u91cf\u6c60\uff0c\u539f\u7406\u662f\u7f16\u8bd1\u671f\u4f18\u5316<\/li>\n<li>\u5e38\u91cf\u6c60\u4e2d\u4e0d\u4f1a\u5b58\u5728\u76f8\u540c\u5185\u5bb9\u7684\u53d8\u91cf<\/li>\n<li>\u62fc\u63a5\u524d\u540e\uff0c\u53ea\u8981\u5176\u4e2d\u6709\u4e00\u4e2a\u662f\u53d8\u91cf\uff0c\u7ed3\u679c\u5c31\u5728\u5806\u4e2d\u3002\u53d8\u91cf\u62fc\u63a5\u7684\u539f\u7406\u662fStringBuilder<\/li>\n<li>\u5982\u679c\u62fc\u63a5\u7684\u7ed3\u679c\u8c03\u7528intern()\u65b9\u6cd5\uff0c\u6839\u636e\u8be5\u5b57\u7b26\u4e32\u662f\u5426\u5728\u5e38\u91cf\u6c60\u4e2d\u5b58\u5728\uff0c\u5206\u4e3a\uff1a\n<ul>\n<li>\u5982\u679c\u5b58\u5728\uff0c\u5219\u8fd4\u56de\u5b57\u7b26\u4e32\u5728\u5e38\u91cf\u6c60\u4e2d\u7684\u5730\u5740<\/li>\n<li>\u5982\u679c\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u4e0d\u5b58\u5728\u8be5\u5b57\u7b26\u4e32\uff0c\u5219\u5728\u5e38\u91cf\u6c60\u4e2d\u521b\u5efa\u4e00\u4efd\uff0c\u5e76\u8fd4\u56de\u6b64\u5bf9\u8c61\u7684\u5730\u5740<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><strong>1\u3001\u5e38\u91cf\u4e0e\u5e38\u91cf\u7684\u62fc\u63a5\u7ed3\u679c\u5728\u5e38\u91cf\u6c60\uff0c\u539f\u7406\u662f\u7f16\u8bd1\u671f\u4f18\u5316<\/strong><\/p>\n<p>\u4ee3\u7801<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token annotation punctuation\">@Test<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">test1<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        String s1 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"a\"<\/span> <span class=\"token operator\">+<\/span> <span class=\"token string\">\"b\"<\/span> <span class=\"token operator\">+<\/span> <span class=\"token string\">\"c\"<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u7f16\u8bd1\u671f\u4f18\u5316\uff1a\u7b49\u540c\u4e8e\"abc\"<\/span>\n        String s2 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"abc\"<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/\"abc\"\u4e00\u5b9a\u662f\u653e\u5728\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\uff0c\u5c06\u6b64\u5730\u5740\u8d4b\u7ed9s2<\/span>\n        <span class=\"token comment\">\/*\n         * \u6700\u7ec8.java\u7f16\u8bd1\u6210.class,\u518d\u6267\u884c.class\n         * String s1 = \"abc\";\n         * String s2 = \"abc\"\n         *\/<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s1 <span class=\"token operator\">==<\/span> s2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/true<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s1<span class=\"token punctuation\">.<\/span><span class=\"token function\">equals<\/span><span class=\"token punctuation\">(<\/span>s2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/true<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u4ece\u5b57\u8282\u7801\u6307\u4ee4\u770b\u51fa\uff1a\u7f16\u8bd1\u5668\u505a\u4e86\u4f18\u5316\uff0c\u5c06 \u201ca\u201d + \u201cb\u201d + \u201cc\u201d \u4f18\u5316\u6210\u4e86 \u201cabc\u201d<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token number\">0<\/span> ldc #<span class=\"token number\">2<\/span> <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>abc<span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token number\">2<\/span> astore_1\n<span class=\"token number\">3<\/span> ldc #<span class=\"token number\">2<\/span> <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>abc<span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token number\">5<\/span> astore_2\n<span class=\"token number\">6<\/span> getstatic #<span class=\"token number\">3<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>System<span class=\"token punctuation\">.<\/span>out<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">9<\/span> aload_1\n<span class=\"token number\">10<\/span> aload_2\n<span class=\"token number\">11<\/span> if_acmpne <span class=\"token number\">18<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">14<\/span> iconst_1\n<span class=\"token number\">15<\/span> <span class=\"token keyword\">goto<\/span> <span class=\"token number\">19<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">4<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">18<\/span> iconst_0\n<span class=\"token number\">19<\/span> invokevirtual #<span class=\"token number\">4<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>io<span class=\"token operator\">\/<\/span>PrintStream<span class=\"token punctuation\">.<\/span>println<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">22<\/span> getstatic #<span class=\"token number\">3<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>System<span class=\"token punctuation\">.<\/span>out<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">25<\/span> aload_1\n<span class=\"token number\">26<\/span> aload_2\n<span class=\"token number\">27<\/span> invokevirtual #<span class=\"token number\">5<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>String<span class=\"token punctuation\">.<\/span>equals<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">30<\/span> invokevirtual #<span class=\"token number\">4<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>io<span class=\"token operator\">\/<\/span>PrintStream<span class=\"token punctuation\">.<\/span>println<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">33<\/span> <span class=\"token keyword\">return<\/span>\n<\/code><\/pre>\n<p>IDEA \u53cd\u7f16\u8bd1 class \u6587\u4ef6\u540e\uff0c\u6765\u770b\u8fd9\u4e2a\u95ee\u9898<\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f194172465fa125ea1e2ce2f7a4ba355.png#align=left&amp;display=inline&amp;height=598&amp;originHeight=598&amp;originWidth=1149&amp;size=0&amp;status=done&amp;style=none&amp;width=1149\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/f194172465fa125ea1e2ce2f7a4ba355.png#align=left&amp;display=inline&amp;height=598&amp;originHeight=598&amp;originWidth=1149&amp;size=0&amp;status=done&amp;style=none&amp;width=1149\" alt=\"\"><\/noscript><\/p>\n<p><strong>2\u3001\u62fc\u63a5\u524d\u540e\uff0c\u53ea\u8981\u5176\u4e2d\u6709\u4e00\u4e2a\u662f\u53d8\u91cf\uff0c\u7ed3\u679c\u5c31\u5728\u5806\u4e2d<\/strong><\/p>\n<p><strong>\u8c03\u7528 intern() \u65b9\u6cd5\uff0c\u5219\u4e3b\u52a8\u5c06\u5b57\u7b26\u4e32\u5bf9\u8c61\u5b58\u5165\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\uff0c\u5e76\u5c06\u5176\u5730\u5740\u8fd4\u56de<\/strong><\/p>\n<pre><code class=\"prism language-java\"><span class=\"token annotation punctuation\">@Test<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">test2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        String s1 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"javaEE\"<\/span><span class=\"token punctuation\">;<\/span>\n        String s2 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"hadoop\"<\/span><span class=\"token punctuation\">;<\/span>\n\n        String s3 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"javaEEhadoop\"<\/span><span class=\"token punctuation\">;<\/span>\n        String s4 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"javaEE\"<\/span> <span class=\"token operator\">+<\/span> <span class=\"token string\">\"hadoop\"<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u7f16\u8bd1\u671f\u4f18\u5316<\/span>\n        <span class=\"token comment\">\/\/\u5982\u679c\u62fc\u63a5\u7b26\u53f7\u7684\u524d\u540e\u51fa\u73b0\u4e86\u53d8\u91cf\uff0c\u5219\u76f8\u5f53\u4e8e\u5728\u5806\u7a7a\u95f4\u4e2dnew String()\uff0c\u5177\u4f53\u7684\u5185\u5bb9\u4e3a\u62fc\u63a5\u7684\u7ed3\u679c\uff1ajavaEEhadoop<\/span>\n        String s5 <span class=\"token operator\">=<\/span> s1 <span class=\"token operator\">+<\/span> <span class=\"token string\">\"hadoop\"<\/span><span class=\"token punctuation\">;<\/span>\n        String s6 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"javaEE\"<\/span> <span class=\"token operator\">+<\/span> s2<span class=\"token punctuation\">;<\/span>\n        String s7 <span class=\"token operator\">=<\/span> s1 <span class=\"token operator\">+<\/span> s2<span class=\"token punctuation\">;<\/span>\n\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s3 <span class=\"token operator\">==<\/span> s4<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/true<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s3 <span class=\"token operator\">==<\/span> s5<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/false<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s3 <span class=\"token operator\">==<\/span> s6<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/false<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s3 <span class=\"token operator\">==<\/span> s7<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/false<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s5 <span class=\"token operator\">==<\/span> s6<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/false<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s5 <span class=\"token operator\">==<\/span> s7<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/false<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s6 <span class=\"token operator\">==<\/span> s7<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/false<\/span>\n        <span class=\"token comment\">\/\/intern():\u5224\u65ad\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u662f\u5426\u5b58\u5728javaEEhadoop\u503c\uff0c\u5982\u679c\u5b58\u5728\uff0c\u5219\u8fd4\u56de\u5e38\u91cf\u6c60\u4e2djavaEEhadoop\u7684\u5730\u5740\uff1b<\/span>\n        <span class=\"token comment\">\/\/\u5982\u679c\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u4e0d\u5b58\u5728javaEEhadoop\uff0c\u5219\u5728\u5e38\u91cf\u6c60\u4e2d\u52a0\u8f7d\u4e00\u4efdjavaEEhadoop\uff0c\u5e76\u8fd4\u56de\u6b21\u5bf9\u8c61\u7684\u5730\u5740\u3002<\/span>\n        String s8 <span class=\"token operator\">=<\/span> s6<span class=\"token punctuation\">.<\/span><span class=\"token function\">intern<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s3 <span class=\"token operator\">==<\/span> s8<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/true<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u4ece\u5b57\u8282\u7801\u89d2\u5ea6\u6765\u770b\uff1a\u62fc\u63a5\u524d\u540e\u6709\u53d8\u91cf\uff0c\u90fd\u4f1a\u4f7f\u7528\u5230 StringBuilder \u7c7b<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token number\">0<\/span> ldc #<span class=\"token number\">6<\/span> <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>javaEE<span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token number\">2<\/span> astore_1\n<span class=\"token number\">3<\/span> ldc #<span class=\"token number\">7<\/span> <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>hadoop<span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token number\">5<\/span> astore_2\n<span class=\"token number\">6<\/span> ldc #<span class=\"token number\">8<\/span> <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>javaEEhadoop<span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token number\">8<\/span> astore_3\n<span class=\"token number\">9<\/span> ldc #<span class=\"token number\">8<\/span> <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>javaEEhadoop<span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token number\">11<\/span> astore <span class=\"token number\">4<\/span>\n<span class=\"token number\">13<\/span> <span class=\"token keyword\">new<\/span> #<span class=\"token number\">9<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">16<\/span> dup\n<span class=\"token number\">17<\/span> invokespecial #<span class=\"token number\">10<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span><span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>init<span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">20<\/span> aload_1\n<span class=\"token number\">21<\/span> invokevirtual #<span class=\"token number\">11<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span>append<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">24<\/span> ldc #<span class=\"token number\">7<\/span> <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>hadoop<span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token number\">26<\/span> invokevirtual #<span class=\"token number\">11<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span>append<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">29<\/span> invokevirtual #<span class=\"token number\">12<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span>toString<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">32<\/span> astore <span class=\"token number\">5<\/span>\n<span class=\"token number\">34<\/span> <span class=\"token keyword\">new<\/span> #<span class=\"token number\">9<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">37<\/span> dup\n<span class=\"token number\">38<\/span> invokespecial #<span class=\"token number\">10<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span><span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>init<span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">41<\/span> ldc #<span class=\"token number\">6<\/span> <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>javaEE<span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token number\">43<\/span> invokevirtual #<span class=\"token number\">11<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span>append<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">46<\/span> aload_2\n<span class=\"token number\">47<\/span> invokevirtual #<span class=\"token number\">11<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span>append<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">50<\/span> invokevirtual #<span class=\"token number\">12<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span>toString<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">53<\/span> astore <span class=\"token number\">6<\/span>\n<span class=\"token number\">55<\/span> <span class=\"token keyword\">new<\/span> #<span class=\"token number\">9<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">58<\/span> dup\n<span class=\"token number\">59<\/span> invokespecial #<span class=\"token number\">10<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span><span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>init<span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">62<\/span> aload_1\n<span class=\"token number\">63<\/span> invokevirtual #<span class=\"token number\">11<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span>append<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">66<\/span> aload_2\n<span class=\"token number\">67<\/span> invokevirtual #<span class=\"token number\">11<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span>append<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">70<\/span> invokevirtual #<span class=\"token number\">12<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span>toString<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">73<\/span> astore <span class=\"token number\">7<\/span>\n<span class=\"token number\">75<\/span> getstatic #<span class=\"token number\">3<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>System<span class=\"token punctuation\">.<\/span>out<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">78<\/span> aload_3\n<span class=\"token number\">79<\/span> aload <span class=\"token number\">4<\/span>\n<span class=\"token number\">81<\/span> if_acmpne <span class=\"token number\">88<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">84<\/span> iconst_1\n<span class=\"token number\">85<\/span> <span class=\"token keyword\">goto<\/span> <span class=\"token number\">89<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">4<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">88<\/span> iconst_0\n<span class=\"token number\">89<\/span> invokevirtual #<span class=\"token number\">4<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>io<span class=\"token operator\">\/<\/span>PrintStream<span class=\"token punctuation\">.<\/span>println<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">92<\/span> getstatic #<span class=\"token number\">3<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>System<span class=\"token punctuation\">.<\/span>out<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">95<\/span> aload_3\n<span class=\"token number\">96<\/span> aload <span class=\"token number\">5<\/span>\n<span class=\"token number\">98<\/span> if_acmpne <span class=\"token number\">105<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">101<\/span> iconst_1\n<span class=\"token number\">102<\/span> <span class=\"token keyword\">goto<\/span> <span class=\"token number\">106<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">4<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">105<\/span> iconst_0\n<span class=\"token number\">106<\/span> invokevirtual #<span class=\"token number\">4<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>io<span class=\"token operator\">\/<\/span>PrintStream<span class=\"token punctuation\">.<\/span>println<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">109<\/span> getstatic #<span class=\"token number\">3<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>System<span class=\"token punctuation\">.<\/span>out<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">112<\/span> aload_3\n<span class=\"token number\">113<\/span> aload <span class=\"token number\">6<\/span>\n<span class=\"token number\">115<\/span> if_acmpne <span class=\"token number\">122<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">118<\/span> iconst_1\n<span class=\"token number\">119<\/span> <span class=\"token keyword\">goto<\/span> <span class=\"token number\">123<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">4<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">122<\/span> iconst_0\n<span class=\"token number\">123<\/span> invokevirtual #<span class=\"token number\">4<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>io<span class=\"token operator\">\/<\/span>PrintStream<span class=\"token punctuation\">.<\/span>println<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">126<\/span> getstatic #<span class=\"token number\">3<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>System<span class=\"token punctuation\">.<\/span>out<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">129<\/span> aload_3\n<span class=\"token number\">130<\/span> aload <span class=\"token number\">7<\/span>\n<span class=\"token number\">132<\/span> if_acmpne <span class=\"token number\">139<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">135<\/span> iconst_1\n<span class=\"token number\">136<\/span> <span class=\"token keyword\">goto<\/span> <span class=\"token number\">140<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">4<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">139<\/span> iconst_0\n<span class=\"token number\">140<\/span> invokevirtual #<span class=\"token number\">4<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>io<span class=\"token operator\">\/<\/span>PrintStream<span class=\"token punctuation\">.<\/span>println<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">143<\/span> getstatic #<span class=\"token number\">3<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>System<span class=\"token punctuation\">.<\/span>out<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">146<\/span> aload <span class=\"token number\">5<\/span>\n<span class=\"token number\">148<\/span> aload <span class=\"token number\">6<\/span>\n<span class=\"token number\">150<\/span> if_acmpne <span class=\"token number\">157<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">153<\/span> iconst_1\n<span class=\"token number\">154<\/span> <span class=\"token keyword\">goto<\/span> <span class=\"token number\">158<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">4<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">157<\/span> iconst_0\n<span class=\"token number\">158<\/span> invokevirtual #<span class=\"token number\">4<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>io<span class=\"token operator\">\/<\/span>PrintStream<span class=\"token punctuation\">.<\/span>println<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">161<\/span> getstatic #<span class=\"token number\">3<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>System<span class=\"token punctuation\">.<\/span>out<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">164<\/span> aload <span class=\"token number\">5<\/span>\n<span class=\"token number\">166<\/span> aload <span class=\"token number\">7<\/span>\n<span class=\"token number\">168<\/span> if_acmpne <span class=\"token number\">175<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">171<\/span> iconst_1\n<span class=\"token number\">172<\/span> <span class=\"token keyword\">goto<\/span> <span class=\"token number\">176<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">4<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">175<\/span> iconst_0\n<span class=\"token number\">176<\/span> invokevirtual #<span class=\"token number\">4<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>io<span class=\"token operator\">\/<\/span>PrintStream<span class=\"token punctuation\">.<\/span>println<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">179<\/span> getstatic #<span class=\"token number\">3<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>System<span class=\"token punctuation\">.<\/span>out<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">182<\/span> aload <span class=\"token number\">6<\/span>\n<span class=\"token number\">184<\/span> aload <span class=\"token number\">7<\/span>\n<span class=\"token number\">186<\/span> if_acmpne <span class=\"token number\">193<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">189<\/span> iconst_1\n<span class=\"token number\">190<\/span> <span class=\"token keyword\">goto<\/span> <span class=\"token number\">194<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">4<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">193<\/span> iconst_0\n<span class=\"token number\">194<\/span> invokevirtual #<span class=\"token number\">4<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>io<span class=\"token operator\">\/<\/span>PrintStream<span class=\"token punctuation\">.<\/span>println<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">197<\/span> aload <span class=\"token number\">6<\/span>\n<span class=\"token number\">199<\/span> invokevirtual #<span class=\"token number\">13<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>String<span class=\"token punctuation\">.<\/span>intern<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">202<\/span> astore <span class=\"token number\">8<\/span>\n<span class=\"token number\">204<\/span> getstatic #<span class=\"token number\">3<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>System<span class=\"token punctuation\">.<\/span>out<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">207<\/span> aload_3\n<span class=\"token number\">208<\/span> aload <span class=\"token number\">8<\/span>\n<span class=\"token number\">210<\/span> if_acmpne <span class=\"token number\">217<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">213<\/span> iconst_1\n<span class=\"token number\">214<\/span> <span class=\"token keyword\">goto<\/span> <span class=\"token number\">218<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">4<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">217<\/span> iconst_0\n<span class=\"token number\">218<\/span> invokevirtual #<span class=\"token number\">4<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>io<span class=\"token operator\">\/<\/span>PrintStream<span class=\"token punctuation\">.<\/span>println<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">221<\/span> <span class=\"token keyword\">return<\/span>\n<\/code><\/pre>\n<h3><a id=\"_4468\"><\/a>\u5b57\u7b26\u4e32\u62fc\u63a5\u7684\u5e95\u5c42\u7ec6\u8282<\/h3>\n<p><strong>\u4e3e\u4f8b1<\/strong><\/p>\n<pre><code class=\"prism language-java\">    <span class=\"token annotation punctuation\">@Test<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">test3<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        String s1 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"a\"<\/span><span class=\"token punctuation\">;<\/span>\n        String s2 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"b\"<\/span><span class=\"token punctuation\">;<\/span>\n        String s3 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"ab\"<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token comment\">\/*\n        \u5982\u4e0b\u7684s1 + s2 \u7684\u6267\u884c\u7ec6\u8282\uff1a(\u53d8\u91cfs\u662f\u6211\u4e34\u65f6\u5b9a\u4e49\u7684\uff09\n        \u2460 StringBuilder s = new StringBuilder();\n        \u2461 s.append(\"a\")\n        \u2462 s.append(\"b\")\n        \u2463 s.toString()  --&gt; \u7ea6\u7b49\u4e8e new String(\"ab\")\uff0c\u4f46\u4e0d\u7b49\u4ef7\n\n        \u8865\u5145\uff1a\u5728jdk5.0\u4e4b\u540e\u4f7f\u7528\u7684\u662fStringBuilder,\u5728jdk5.0\u4e4b\u524d\u4f7f\u7528\u7684\u662fStringBuffer\n         *\/<\/span>\n        String s4 <span class=\"token operator\">=<\/span> s1 <span class=\"token operator\">+<\/span> s2<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s3 <span class=\"token operator\">==<\/span> s4<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/false<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u5b57\u8282\u7801\u6307\u4ee4<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token number\">0<\/span> ldc #<span class=\"token number\">14<\/span> <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>a<span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token number\">2<\/span> astore_1\n<span class=\"token number\">3<\/span> ldc #<span class=\"token number\">15<\/span> <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>b<span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token number\">5<\/span> astore_2\n<span class=\"token number\">6<\/span> ldc #<span class=\"token number\">16<\/span> <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>ab<span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token number\">8<\/span> astore_3\n<span class=\"token number\">9<\/span> <span class=\"token keyword\">new<\/span> #<span class=\"token number\">9<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">12<\/span> dup\n<span class=\"token number\">13<\/span> invokespecial #<span class=\"token number\">10<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span><span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>init<span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">16<\/span> aload_1\n<span class=\"token number\">17<\/span> invokevirtual #<span class=\"token number\">11<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span>append<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">20<\/span> aload_2\n<span class=\"token number\">21<\/span> invokevirtual #<span class=\"token number\">11<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span>append<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">24<\/span> invokevirtual #<span class=\"token number\">12<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span>toString<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">27<\/span> astore <span class=\"token number\">4<\/span>\n<span class=\"token number\">29<\/span> getstatic #<span class=\"token number\">3<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>System<span class=\"token punctuation\">.<\/span>out<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">32<\/span> aload_3\n<span class=\"token number\">33<\/span> aload <span class=\"token number\">4<\/span>\n<span class=\"token number\">35<\/span> if_acmpne <span class=\"token number\">42<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">38<\/span> iconst_1\n<span class=\"token number\">39<\/span> <span class=\"token keyword\">goto<\/span> <span class=\"token number\">43<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">4<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">42<\/span> iconst_0\n<span class=\"token number\">43<\/span> invokevirtual #<span class=\"token number\">4<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>io<span class=\"token operator\">\/<\/span>PrintStream<span class=\"token punctuation\">.<\/span>println<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">46<\/span> <span class=\"token keyword\">return<\/span>\n<\/code><\/pre>\n<p><strong>\u4e3e\u4f8b2<\/strong><\/p>\n<pre><code class=\"prism language-java\"><span class=\"token comment\">\/*\n    1. \u5b57\u7b26\u4e32\u62fc\u63a5\u64cd\u4f5c\u4e0d\u4e00\u5b9a\u4f7f\u7528\u7684\u662fStringBuilder!\n       \u5982\u679c\u62fc\u63a5\u7b26\u53f7\u5de6\u53f3\u4e24\u8fb9\u90fd\u662f\u5b57\u7b26\u4e32\u5e38\u91cf\u6216\u5e38\u91cf\u5f15\u7528\uff0c\u5219\u4ecd\u7136\u4f7f\u7528\u7f16\u8bd1\u671f\u4f18\u5316\uff0c\u5373\u975eStringBuilder\u7684\u65b9\u5f0f\u3002\n    2. \u9488\u5bf9\u4e8efinal\u4fee\u9970\u7c7b\u3001\u65b9\u6cd5\u3001\u57fa\u672c\u6570\u636e\u7c7b\u578b\u3001\u5f15\u7528\u6570\u636e\u7c7b\u578b\u7684\u91cf\u7684\u7ed3\u6784\u65f6\uff0c\u80fd\u4f7f\u7528\u4e0afinal\u7684\u65f6\u5019\u5efa\u8bae\u4f7f\u7528\u4e0a\u3002\n     *\/<\/span>\n    <span class=\"token annotation punctuation\">@Test<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">test4<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">final<\/span> String s1 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"a\"<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">final<\/span> String s2 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"b\"<\/span><span class=\"token punctuation\">;<\/span>\n        String s3 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"ab\"<\/span><span class=\"token punctuation\">;<\/span>\n        String s4 <span class=\"token operator\">=<\/span> s1 <span class=\"token operator\">+<\/span> s2<span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s3 <span class=\"token operator\">==<\/span> s4<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/true<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u4ece\u5b57\u8282\u7801\u89d2\u5ea6\u6765\u770b\uff1a\u4e3a\u53d8\u91cf s4 \u8d4b\u503c\u65f6\uff0c\u76f4\u63a5\u4f7f\u7528 #16 \u7b26\u53f7\u5f15\u7528\uff0c\u5373\u5b57\u7b26\u4e32\u5e38\u91cf \u201cab\u201d<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token number\">0<\/span> ldc #<span class=\"token number\">14<\/span> <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>a<span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token number\">2<\/span> astore_1\n<span class=\"token number\">3<\/span> ldc #<span class=\"token number\">15<\/span> <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>b<span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token number\">5<\/span> astore_2\n<span class=\"token number\">6<\/span> ldc #<span class=\"token number\">16<\/span> <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>ab<span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token number\">8<\/span> astore_3\n<span class=\"token number\">9<\/span> ldc #<span class=\"token number\">16<\/span> <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>ab<span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token number\">11<\/span> astore <span class=\"token number\">4<\/span>\n<span class=\"token number\">13<\/span> getstatic #<span class=\"token number\">3<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>System<span class=\"token punctuation\">.<\/span>out<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">16<\/span> aload_3\n<span class=\"token number\">17<\/span> aload <span class=\"token number\">4<\/span>\n<span class=\"token number\">19<\/span> if_acmpne <span class=\"token number\">26<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">22<\/span> iconst_1\n<span class=\"token number\">23<\/span> <span class=\"token keyword\">goto<\/span> <span class=\"token number\">27<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">4<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token number\">26<\/span> iconst_0\n<span class=\"token number\">27<\/span> invokevirtual #<span class=\"token number\">4<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>io<span class=\"token operator\">\/<\/span>PrintStream<span class=\"token punctuation\">.<\/span>println<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">30<\/span> <span class=\"token keyword\">return<\/span>\n<\/code><\/pre>\n<p><strong>\u62fc\u63a5\u64cd\u4f5c\u4e0e append \u64cd\u4f5c\u7684\u6548\u7387\u5bf9\u6bd4<\/strong><\/p>\n<pre><code class=\"prism language-java\">    <span class=\"token annotation punctuation\">@Test<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">test6<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n\n        <span class=\"token keyword\">long<\/span> start <span class=\"token operator\">=<\/span> System<span class=\"token punctuation\">.<\/span><span class=\"token function\">currentTimeMillis<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n<span class=\"token comment\">\/\/        method1(100000);\/\/4014<\/span>\n        <span class=\"token function\">method2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">100000<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/7<\/span>\n\n        <span class=\"token keyword\">long<\/span> end <span class=\"token operator\">=<\/span> System<span class=\"token punctuation\">.<\/span><span class=\"token function\">currentTimeMillis<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"\u82b1\u8d39\u7684\u65f6\u95f4\u4e3a\uff1a\"<\/span> <span class=\"token operator\">+<\/span> <span class=\"token punctuation\">(<\/span>end <span class=\"token operator\">-<\/span> start<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">method1<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> highLevel<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        String src <span class=\"token operator\">=<\/span> <span class=\"token string\">\"\"<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>i <span class=\"token operator\">&lt;<\/span> highLevel<span class=\"token punctuation\">;<\/span>i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n            src <span class=\"token operator\">=<\/span> src <span class=\"token operator\">+<\/span> <span class=\"token string\">\"a\"<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u6bcf\u6b21\u5faa\u73af\u90fd\u4f1a\u521b\u5efa\u4e00\u4e2aStringBuilder\u3001String<\/span>\n        <span class=\"token punctuation\">}<\/span>\n<span class=\"token comment\">\/\/        System.out.println(src);<\/span>\n\n    <span class=\"token punctuation\">}<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">method2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> highLevel<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token comment\">\/\/\u53ea\u9700\u8981\u521b\u5efa\u4e00\u4e2aStringBuilder<\/span>\n        StringBuilder src <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">StringBuilder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> highLevel<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            src<span class=\"token punctuation\">.<\/span><span class=\"token function\">append<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"a\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n<span class=\"token comment\">\/\/        System.out.println(src);<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<ol>\n<li>\u4f53\u4f1a\u6267\u884c\u6548\u7387\uff1a\u901a\u8fc7StringBuilder\u7684append()\u7684\u65b9\u5f0f\u6dfb\u52a0\u5b57\u7b26\u4e32\u7684\u6548\u7387\u8981\u8fdc\u9ad8\u4e8e\u4f7f\u7528String\u7684\u5b57\u7b26\u4e32\u62fc\u63a5\u65b9\u5f0f\uff01<\/li>\n<li>\u539f\u56e0\uff1a\n<ol>\n<li>StringBuilder\u7684append()\u7684\u65b9\u5f0f\uff1a\n<ul>\n<li>\u81ea\u59cb\u81f3\u7ec8\u4e2d\u53ea\u521b\u5efa\u8fc7\u4e00\u4e2aStringBuilder\u7684\u5bf9\u8c61<\/li>\n<\/ul>\n<\/li>\n<li>\u4f7f\u7528String\u7684\u5b57\u7b26\u4e32\u62fc\u63a5\u65b9\u5f0f\uff1a\n<ul>\n<li>\u521b\u5efa\u8fc7\u591a\u4e2aStringBuilder\u548cString\uff08\u8c03\u7684toString\u65b9\u6cd5\uff09\u7684\u5bf9\u8c61\uff0c\u5185\u5b58\u5360\u7528\u66f4\u5927\uff1b<\/li>\n<li>\u5982\u679c\u8fdb\u884cGC\uff0c\u9700\u8981\u82b1\u8d39\u989d\u5916\u7684\u65f6\u95f4\uff08\u5728\u62fc\u63a5\u7684\u8fc7\u7a0b\u4e2d\u4ea7\u751f\u7684\u4e00\u4e9b\u4e2d\u95f4\u5b57\u7b26\u4e32\u53ef\u80fd\u6c38\u8fdc\u4e5f\u7528\u4e0d\u5230\uff0c\u4f1a\u4ea7\u751f\u5927\u91cf\u5783\u573e\u5b57\u7b26\u4e32\uff09\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/li>\n<li>\u6539\u8fdb\u7684\u7a7a\u95f4\uff1a\n<ul>\n<li>\u5728\u5b9e\u9645\u5f00\u53d1\u4e2d\uff0c\u5982\u679c\u57fa\u672c\u786e\u5b9a\u8981\u524d\u524d\u540e\u540e\u6dfb\u52a0\u7684\u5b57\u7b26\u4e32\u957f\u5ea6\u4e0d\u9ad8\u4e8e\u67d0\u4e2a\u9650\u5b9a\u503chighLevel\u7684\u60c5\u51b5\u4e0b\uff0c\u5efa\u8bae\u4f7f\u7528\u6784\u9020\u5668\u5b9e\u4f8b\u5316\uff1a<\/li>\n<li><code>StringBuilder s = new StringBuilder(highLevel); \/\/new char[highLevel]<\/code><\/li>\n<li>\u8fd9\u6837\u53ef\u4ee5\u907f\u514d\u9891\u7e41\u6269\u5bb9<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2><a id=\"intern__4621\"><\/a>intern() \u7684\u4f7f\u7528<\/h2>\n<h3><a id=\"intern__4624\"><\/a>intern() \u65b9\u6cd5\u7684\u8bf4\u660e<\/h3>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">native<\/span> String <span class=\"token function\">intern<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<\/code><\/pre>\n<ol>\n<li>intern\u662f\u4e00\u4e2anative\u65b9\u6cd5\uff0c\u8c03\u7528\u7684\u662f\u5e95\u5c42C\u7684\u65b9\u6cd5<\/li>\n<li>\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u6c60\u6700\u521d\u662f\u7a7a\u7684\uff0c\u7531String\u7c7b\u79c1\u6709\u5730\u7ef4\u62a4\u3002\u5728\u8c03\u7528intern\u65b9\u6cd5\u65f6\uff0c\u5982\u679c\u6c60\u4e2d\u5df2\u7ecf\u5305\u542b\u4e86\u7531equals(object)\u65b9\u6cd5\u786e\u5b9a\u7684\u4e0e\u8be5\u5b57\u7b26\u4e32\u5185\u5bb9\u76f8\u7b49\u7684\u5b57\u7b26\u4e32\uff0c\u5219\u8fd4\u56de\u6c60\u4e2d\u7684\u5b57\u7b26\u4e32\u5730\u5740\u3002\u5426\u5219\uff0c\u8be5\u5b57\u7b26\u4e32\u5bf9\u8c61\u5c06\u88ab\u6dfb\u52a0\u5230\u6c60\u4e2d\uff0c\u5e76\u8fd4\u56de\u5bf9\u8be5\u5b57\u7b26\u4e32\u5bf9\u8c61\u7684\u5730\u5740\u3002\uff08\u8fd9\u662f\u6e90\u7801\u91cc\u7684\u5927\u6982\u7ffb\u8bd1\uff09<\/li>\n<li>\u5982\u679c\u4e0d\u662f\u7528\u53cc\u5f15\u53f7\u58f0\u660e\u7684String\u5bf9\u8c61\uff0c\u53ef\u4ee5\u4f7f\u7528String\u63d0\u4f9b\u7684intern\u65b9\u6cd5\uff1aintern\u65b9\u6cd5\u4f1a\u4ece\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u67e5\u8be2\u5f53\u524d\u5b57\u7b26\u4e32\u662f\u5426\u5b58\u5728\uff0c\u82e5\u4e0d\u5b58\u5728\u5c31\u4f1a\u5c06\u5f53\u524d\u5b57\u7b26\u4e32\u653e\u5165\u5e38\u91cf\u6c60\u4e2d\u3002\u6bd4\u5982\uff1a<\/li>\n<\/ol>\n<pre><code>String myInfo = new string(\"I love atguigu\").intern();\n<\/code><\/pre>\n<ol start=\"4\">\n<li>\u4e5f\u5c31\u662f\u8bf4\uff0c\u5982\u679c\u5728\u4efb\u610f\u5b57\u7b26\u4e32\u4e0a\u8c03\u7528String.intern\u65b9\u6cd5\uff0c\u90a3\u4e48\u5176\u8fd4\u56de\u7ed3\u679c\u6240\u6307\u5411\u7684\u90a3\u4e2a\u7c7b\u5b9e\u4f8b\uff0c\u5fc5\u987b\u548c\u76f4\u63a5\u4ee5\u5e38\u91cf\u5f62\u5f0f\u51fa\u73b0\u7684\u5b57\u7b26\u4e32\u5b9e\u4f8b\u5b8c\u5168\u76f8\u540c\u3002\u56e0\u6b64\uff0c\u4e0b\u5217\u8868\u8fbe\u5f0f\u7684\u503c\u5fc5\u5b9a\u662ftrue<\/li>\n<\/ol>\n<pre><code>(\"a\"+\"b\"+\"c\").intern()==\"abc\"\n<\/code><\/pre>\n<ol start=\"5\">\n<li>\u901a\u4fd7\u70b9\u8bb2\uff0cInterned String\u5c31\u662f\u786e\u4fdd\u5b57\u7b26\u4e32\u5728\u5185\u5b58\u91cc\u53ea\u6709\u4e00\u4efd\u62f7\u8d1d\uff0c\u8fd9\u6837\u53ef\u4ee5\u8282\u7ea6\u5185\u5b58\u7a7a\u95f4\uff0c\u52a0\u5feb\u5b57\u7b26\u4e32\u64cd\u4f5c\u4efb\u52a1\u7684\u6267\u884c\u901f\u5ea6\u3002\u6ce8\u610f\uff0c\u8fd9\u4e2a\u503c\u4f1a\u88ab\u5b58\u653e\u5728\u5b57\u7b26\u4e32\u5185\u90e8\u6c60\uff08String Intern Pool\uff09<\/li>\n<\/ol>\n<h3><a id=\"new_String__4648\"><\/a>new String() \u7684\u8bf4\u660e<\/h3>\n<h4><a id=\"new_Stringab_4651\"><\/a>new String(\u201cab\u201d)\u4f1a\u521b\u5efa\u51e0\u4e2a\u5bf9\u8c61\uff1f<\/h4>\n<pre><code class=\"prism language-java\"><span class=\"token comment\">\/**\n * \u9898\u76ee\uff1a\n * new String(\"ab\")\u4f1a\u521b\u5efa\u51e0\u4e2a\u5bf9\u8c61\uff1f\u770b\u5b57\u8282\u7801\uff0c\u5c31\u77e5\u9053\u662f\u4e24\u4e2a\u3002\n *     \u4e00\u4e2a\u5bf9\u8c61\u662f\uff1anew\u5173\u952e\u5b57\u5728\u5806\u7a7a\u95f4\u521b\u5efa\u7684\n *     \u53e6\u4e00\u4e2a\u5bf9\u8c61\u662f\uff1a\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u7684\u5bf9\u8c61\"ab\"\u3002 \u5b57\u8282\u7801\u6307\u4ee4\uff1aldc\n *\n *\/<\/span>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">StringNewTest<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        String str <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"ab\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u5b57\u8282\u7801\u6307\u4ee4<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token number\">0<\/span> <span class=\"token keyword\">new<\/span> #<span class=\"token number\">2<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>String<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">3<\/span> dup\n<span class=\"token number\">4<\/span> ldc #<span class=\"token number\">3<\/span> <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>ab<span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token number\">6<\/span> invokespecial #<span class=\"token number\">4<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>String<span class=\"token punctuation\">.<\/span><span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>init<span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">9<\/span> astore_1\n<span class=\"token number\">10<\/span> <span class=\"token keyword\">return<\/span>\n<\/code><\/pre>\n<p><code>0 new #2 &lt;java\/lang\/String&gt;<\/code>\uff1a\u5728\u5806\u4e2d\u521b\u5efa\u4e86\u4e00\u4e2a String \u5bf9\u8c61<\/p>\n<p><code>4 ldc #3 &lt;ab&gt;<\/code> \uff1a\u5728\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u653e\u5165 \u201cab\u201d\uff08\u5982\u679c\u4e4b\u524d\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u6ca1\u6709 \u201cab\u201d \u7684\u8bdd\uff09<\/p>\n<h4><a id=\"new_Stringa__new_Stringb__4689\"><\/a>new String(\u201ca\u201d) + new String(\u201cb\u201d) \u4f1a\u521b\u5efa\u51e0\u4e2a\u5bf9\u8c61\uff1f<\/h4>\n<p>\u4ee3\u7801<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token comment\">\/**\n * \u601d\u8003\uff1a\n * new String(\"a\") + new String(\"b\")\u5462\uff1f\n *  \u5bf9\u8c611\uff1anew StringBuilder()\n *  \u5bf9\u8c612\uff1a new String(\"a\")\n *  \u5bf9\u8c613\uff1a \u5e38\u91cf\u6c60\u4e2d\u7684\"a\"\n *  \u5bf9\u8c614\uff1a new String(\"b\")\n *  \u5bf9\u8c615\uff1a \u5e38\u91cf\u6c60\u4e2d\u7684\"b\"\n *\n *  \u6df1\u5165\u5256\u6790\uff1a StringBuilder\u7684toString():\n *      \u5bf9\u8c616 \uff1anew String(\"ab\")\n *       \u5f3a\u8c03\u4e00\u4e0b\uff0ctoString()\u7684\u8c03\u7528\uff0c\u5728\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\uff0c\u6ca1\u6709\u751f\u6210\"ab\"\n *\n *\/<\/span>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">StringNewTest<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n\n        String str <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"a\"<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"b\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u5b57\u8282\u7801\u6307\u4ee4<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token number\">0<\/span> <span class=\"token keyword\">new<\/span> #<span class=\"token number\">2<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">3<\/span> dup\n<span class=\"token number\">4<\/span> invokespecial #<span class=\"token number\">3<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span><span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>init<span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">7<\/span> <span class=\"token keyword\">new<\/span> #<span class=\"token number\">4<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>String<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">10<\/span> dup\n<span class=\"token number\">11<\/span> ldc #<span class=\"token number\">5<\/span> <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>a<span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token number\">13<\/span> invokespecial #<span class=\"token number\">6<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>String<span class=\"token punctuation\">.<\/span><span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>init<span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">16<\/span> invokevirtual #<span class=\"token number\">7<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span>append<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">19<\/span> <span class=\"token keyword\">new<\/span> #<span class=\"token number\">4<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>String<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">22<\/span> dup\n<span class=\"token number\">23<\/span> ldc #<span class=\"token number\">8<\/span> <span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>b<span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token number\">25<\/span> invokespecial #<span class=\"token number\">6<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>String<span class=\"token punctuation\">.<\/span><span class=\"token generics function\"><span class=\"token punctuation\">&lt;<\/span>init<span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">28<\/span> invokevirtual #<span class=\"token number\">7<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span>append<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">31<\/span> invokevirtual #<span class=\"token number\">9<\/span> <span class=\"token operator\">&lt;<\/span>java<span class=\"token operator\">\/<\/span>lang<span class=\"token operator\">\/<\/span>StringBuilder<span class=\"token punctuation\">.<\/span>toString<span class=\"token operator\">&gt;<\/span>\n<span class=\"token number\">34<\/span> astore_1\n<span class=\"token number\">35<\/span> <span class=\"token keyword\">return<\/span>\n<\/code><\/pre>\n<p><strong>\u7b54\u6848\u662f4\u4e2a\u62165\u4e2a\u62166\u4e2a<\/strong><\/p>\n<p>\u5b57\u8282\u7801\u6307\u4ee4\u5206\u6790\uff1a<\/p>\n<ol>\n<li><code>0 new #2 &lt;java\/lang\/StringBuilder&gt;<\/code> \uff1a\u62fc\u63a5\u5b57\u7b26\u4e32\u4f1a\u521b\u5efa\u4e00\u4e2a StringBuilder \u5bf9\u8c61<\/li>\n<li><code>7 new #4 &lt;java\/lang\/String&gt;<\/code> \uff1a\u521b\u5efa String \u5bf9\u8c61\uff0c\u5bf9\u5e94\u4e8e new String(\u201ca\u201d)<\/li>\n<li><code>11 ldc #5 &lt;a&gt;<\/code> \uff1a\u5728\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u653e\u5165 \u201ca\u201d\uff08\u5982\u679c\u4e4b\u524d\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u6ca1\u6709 \u201ca\u201d \u7684\u8bdd\uff09<\/li>\n<li><code>19 new #4 &lt;java\/lang\/String&gt;<\/code> \uff1a\u521b\u5efa String \u5bf9\u8c61\uff0c\u5bf9\u5e94\u4e8e new String(\u201cb\u201d)<\/li>\n<li><code>23 ldc #8 &lt;b&gt;<\/code> \uff1a\u5728\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u653e\u5165 \u201cb\u201d\uff08\u5982\u679c\u4e4b\u524d\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u6ca1\u6709 \u201cb\u201d \u7684\u8bdd\uff09<\/li>\n<li><code>31 invokevirtual #9 &lt;java\/lang\/StringBuilder.toString&gt;<\/code> \uff1a\u8c03\u7528 StringBuilder \u7684 toString() \u65b9\u6cd5\uff0c\u4f1a\u751f\u6210\u4e00\u4e2a String \u5bf9\u8c61<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/06966ab87176f04c0a513d47fa9589c7.png#align=left&amp;display=inline&amp;height=886&amp;originHeight=886&amp;originWidth=1801&amp;size=0&amp;status=done&amp;style=none&amp;width=1801\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/06966ab87176f04c0a513d47fa9589c7.png#align=left&amp;display=inline&amp;height=886&amp;originHeight=886&amp;originWidth=1801&amp;size=0&amp;status=done&amp;style=none&amp;width=1801\" alt=\"\"><\/noscript><\/p>\n<h3><a id=\"_4760\"><\/a>\u6709\u70b9\u96be\u7684\u9762\u8bd5\u9898<\/h3>\n<blockquote>\n<p><strong>\u6709\u70b9\u96be\u7684\u9762\u8bd5\u9898<\/strong><\/p>\n<\/blockquote>\n<pre><code class=\"prism language-java\"><span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span>\n <span class=\"token operator\">*<\/span> \u5982\u4f55\u4fdd\u8bc1\u53d8\u91cfs\u6307\u5411\u7684\u662f\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u7684\u6570\u636e\u5462\uff1f\n <span class=\"token operator\">*<\/span> \u6709\u4e24\u79cd\u65b9\u5f0f\uff1a\n <span class=\"token operator\">*<\/span> \u65b9\u5f0f\u4e00\uff1a String s <span class=\"token operator\">=<\/span> <span class=\"token string\">\"shkstart\"<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u5b57\u9762\u91cf\u5b9a\u4e49\u7684\u65b9\u5f0f<\/span>\n <span class=\"token operator\">*<\/span> \u65b9\u5f0f\u4e8c\uff1a \u8c03\u7528<span class=\"token function\">intern<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\n <span class=\"token operator\">*<\/span>         String s <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"shkstart\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">intern<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n <span class=\"token operator\">*<\/span>         String s <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">StringBuilder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"shkstart\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">toString<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">intern<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n <span class=\"token operator\">*<\/span>\n <span class=\"token operator\">*<\/span><span class=\"token operator\">\/<\/span>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> \t<span class=\"token class-name\">StringIntern<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n\n        String s <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"1\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        s<span class=\"token punctuation\">.<\/span><span class=\"token function\">intern<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u8c03\u7528\u6b64\u65b9\u6cd5\u4e4b\u524d\uff0c\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u5df2\u7ecf\u5b58\u5728\u4e86\"1\"<\/span>\n        String s2 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"1\"<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s <span class=\"token operator\">==<\/span> s2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/jdk6\uff1afalse   jdk7\/8\uff1afalse<\/span>\n        \n        <span class=\"token comment\">\/*\n         1\u3001s3\u53d8\u91cf\u8bb0\u5f55\u7684\u5730\u5740\u4e3a\uff1anew String(\"11\")\n         2\u3001\u7ecf\u8fc7\u4e0a\u9762\u7684\u5206\u6790\uff0c\u6211\u4eec\u5df2\u7ecf\u77e5\u9053\u6267\u884c\u5b8cpos_1\u7684\u4ee3\u7801\uff0c\u5728\u5806\u4e2d\u6709\u4e86\u4e00\u4e2anew String(\"11\")\n         \u8fd9\u6837\u7684String\u5bf9\u8c61\u3002\u4f46\u662f\u5728\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u6ca1\u6709\"11\"\n         3\u3001\u63a5\u7740\u6267\u884cs3.intern()\uff0c\u5728\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u751f\u6210\"11\"\n           3-1\u3001\u5728JDK6\u7684\u7248\u672c\u4e2d\uff0c\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u8fd8\u5728\u6c38\u4e45\u4ee3\uff0c\u6240\u4ee5\u76f4\u63a5\u5728\u6c38\u4e45\u4ee3\u751f\u6210\"11\",\u4e5f\u5c31\u6709\u4e86\u65b0\u7684\u5730\u5740\n           3-2\u3001\u800c\u5728JDK7\u7684\u540e\u7eed\u7248\u672c\u4e2d\uff0c\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u88ab\u79fb\u52a8\u5230\u4e86\u5806\u4e2d\uff0c\u6b64\u65f6\u5806\u91cc\u5df2\u7ecf\u6709new String\uff08\"11\"\uff09\u4e86\n           \u51fa\u4e8e\u8282\u7701\u7a7a\u95f4\u7684\u76ee\u7684\uff0c\u76f4\u63a5\u5c06\u5806\u4e2d\u7684\u90a3\u4e2a\u5b57\u7b26\u4e32\u7684\u5f15\u7528\u5730\u5740\u50a8\u5b58\u5728\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u3002\u6ca1\u9519\uff0c\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\n           \u4e2d\u5b58\u7684\u662fnew String\uff08\"11\"\uff09\u5728\u5806\u4e2d\u7684\u5730\u5740\n         4\u3001\u6240\u4ee5\u5728JDK7\u540e\u7eed\u7248\u672c\u4e2d\uff0cs3\u548cs4\u6307\u5411\u7684\u5b8c\u5168\u662f\u540c\u4e00\u4e2a\u5730\u5740\u3002\n         *\/<\/span>\n        String s3 <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"1\"<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"1\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/pos_1<\/span>\n\t    s3<span class=\"token punctuation\">.<\/span><span class=\"token function\">intern<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        \n        String s4 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"11\"<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/s4\u53d8\u91cf\u8bb0\u5f55\u7684\u5730\u5740\uff1a\u4f7f\u7528\u7684\u662f\u4e0a\u4e00\u884c\u4ee3\u7801\u4ee3\u7801\u6267\u884c\u65f6\uff0c\u5728\u5e38\u91cf\u6c60\u4e2d\u751f\u6210\u7684\"11\"\u7684\u5730\u5740<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s3 <span class=\"token operator\">==<\/span> s4<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/jdk6\uff1afalse  jdk7\/8\uff1atrue<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u89e3\u91ca\u7684\u5df2\u7ecf\u6bd4\u8f83\u6e05\u695a\u4e86\uff0c\u4e0b\u9762\u770b\u4e00\u4e0b\u5185\u5b58\u56fe<\/p>\n<p><strong>\u5185\u5b58\u5206\u6790<\/strong><\/p>\n<p>JDK6 \uff1a\u6b63\u5e38\u773c\u5149\u5224\u65ad\u5373\u53ef<\/p>\n<ul>\n<li>new String() \u5373\u5728\u5806\u4e2d<\/li>\n<li>str.intern() \u5219\u628a\u5b57\u7b26\u4e32\u653e\u5165\u5e38\u91cf\u6c60\u4e2d<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/c007d81f6cc6e0697fad1a56df3eab50.png#align=left&amp;display=inline&amp;height=696&amp;originHeight=696&amp;originWidth=1147&amp;size=0&amp;status=done&amp;style=none&amp;width=1147\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/c007d81f6cc6e0697fad1a56df3eab50.png#align=left&amp;display=inline&amp;height=696&amp;originHeight=696&amp;originWidth=1147&amp;size=0&amp;status=done&amp;style=none&amp;width=1147\" alt=\"\"><\/noscript><\/p>\n<p>JDK7\u53ca\u540e\u7eed\u7248\u672c\uff0c<strong>\u6ce8\u610f\u5927\u5751<\/strong><\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/37b720b4196e7dcfb8bbc40ddbdfe06f.png#align=left&amp;display=inline&amp;height=566&amp;originHeight=566&amp;originWidth=1189&amp;size=0&amp;status=done&amp;style=none&amp;width=1189\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/37b720b4196e7dcfb8bbc40ddbdfe06f.png#align=left&amp;display=inline&amp;height=566&amp;originHeight=566&amp;originWidth=1189&amp;size=0&amp;status=done&amp;style=none&amp;width=1189\" alt=\"\"><\/noscript><\/p>\n<h4><a id=\"_4831\"><\/a>\u9762\u8bd5\u9898\u7684\u62d3\u5c55<\/h4>\n<pre><code class=\"prism language-java\"><span class=\"token comment\">\/**\n * StringIntern.java\u4e2d\u7ec3\u4e60\u7684\u62d3\u5c55\uff1a\n *\n *\/<\/span>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">StringIntern1<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token comment\">\/\/\u6267\u884c\u5b8c\u4e0b\u4e00\u884c\u4ee3\u7801\u4ee5\u540e\uff0c\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\uff0c\u662f\u5426\u5b58\u5728\"11\"\u5462\uff1f\u7b54\u6848\uff1a\u4e0d\u5b58\u5728\uff01\uff01<\/span>\n        String s3 <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"1\"<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"1\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/new String(\"11\")<\/span>\n        <span class=\"token comment\">\/\/\u5728\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u751f\u6210\u5bf9\u8c61\"11\"\uff0c\u4ee3\u7801\u987a\u5e8f\u6362\u4e00\u4e0b\uff0c\u5b9e\u6253\u5b9e\u7684\u5728\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u91cc\u6709\u4e00\u4e2a\"11\"\u5bf9\u8c61<\/span>\n        String s4 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"11\"<\/span><span class=\"token punctuation\">;<\/span>  \n        String s5 <span class=\"token operator\">=<\/span> s3<span class=\"token punctuation\">.<\/span><span class=\"token function\">intern<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        <span class=\"token comment\">\/\/ s3 \u662f\u5806\u4e2d\u7684 \"ab\" \uff0cs4 \u662f\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u7684 \"ab\"<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s3 <span class=\"token operator\">==<\/span> s4<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/false<\/span>\n\n        <span class=\"token comment\">\/\/ s5 \u662f\u4ece\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u53d6\u56de\u6765\u7684\u5f15\u7528\uff0c\u5f53\u7136\u548c s4 \u76f8\u7b49<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s5 <span class=\"token operator\">==<\/span> s4<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/true<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<h3><a id=\"intern__4857\"><\/a>intern() \u65b9\u6cd5\u7684\u7ec3\u4e60<\/h3>\n<p><strong>\u7ec3\u4e60 1<\/strong><\/p>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">StringExer1<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        String x <span class=\"token operator\">=<\/span> <span class=\"token string\">\"ab\"<\/span><span class=\"token punctuation\">;<\/span>\n        String s <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"a\"<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"b\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/new String(\"ab\")<\/span>\n        <span class=\"token comment\">\/\/\u5728\u4e0a\u4e00\u884c\u4ee3\u7801\u6267\u884c\u5b8c\u4ee5\u540e\uff0c\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u5e76\u6ca1\u6709\"ab\"<\/span>\n\t\t<span class=\"token comment\">\/*\n\t\t1\u3001jdk6\u4e2d\uff1a\u5728\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\uff08\u6b64\u65f6\u5728\u6c38\u4e45\u4ee3\uff09\u4e2d\u521b\u5efa\u4e00\u4e2a\u5b57\u7b26\u4e32\"ab\"\n        2\u3001jdk8\u4e2d\uff1a\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\uff08\u6b64\u65f6\u5728\u5806\u4e2d\uff09\u4e2d\u6ca1\u6709\u521b\u5efa\u5b57\u7b26\u4e32\"ab\",\u800c\u662f\u521b\u5efa\u4e00\u4e2a\u5f15\u7528\uff0c\u6307\u5411new String(\"ab\")\uff0c\t\t  \u5c06\u6b64\u5f15\u7528\u8fd4\u56de\n        3\u3001\u8be6\u89e3\u770b\u4e0a\u9762\n\t\t*\/<\/span>\n        String s2 <span class=\"token operator\">=<\/span> s<span class=\"token punctuation\">.<\/span><span class=\"token function\">intern<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s2 <span class=\"token operator\">==<\/span> <span class=\"token string\">\"ab\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/jdk6:true  jdk8:true<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s <span class=\"token operator\">==<\/span> <span class=\"token string\">\"ab\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/jdk6:false  jdk8:true<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p><strong>JDK6<\/strong><\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/7b5a34be5fea061cc36c7faf4b768408.png#align=left&amp;display=inline&amp;height=498&amp;originHeight=498&amp;originWidth=991&amp;size=0&amp;status=done&amp;style=none&amp;width=991\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/7b5a34be5fea061cc36c7faf4b768408.png#align=left&amp;display=inline&amp;height=498&amp;originHeight=498&amp;originWidth=991&amp;size=0&amp;status=done&amp;style=none&amp;width=991\" alt=\"\"><\/noscript><\/p>\n<p><strong>JDK7\/8<\/strong><\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/3088a5f6706cc99480426f8082094ec0.png#align=left&amp;display=inline&amp;height=668&amp;originHeight=668&amp;originWidth=1212&amp;size=0&amp;status=done&amp;style=none&amp;width=1212\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/3088a5f6706cc99480426f8082094ec0.png#align=left&amp;display=inline&amp;height=668&amp;originHeight=668&amp;originWidth=1212&amp;size=0&amp;status=done&amp;style=none&amp;width=1212\" alt=\"\"><\/noscript><\/p>\n<p><strong>\u7ec3\u4e602<\/strong><\/p>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">StringExer1<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token comment\">\/\/\u52a0\u4e00\u884c\u8fd9\u4e2a<\/span>\n        String x <span class=\"token operator\">=<\/span> <span class=\"token string\">\"ab\"<\/span><span class=\"token punctuation\">;<\/span>\n        String s <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"a\"<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"b\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/new String(\"ab\")<\/span>\n\n        String s2 <span class=\"token operator\">=<\/span> s<span class=\"token punctuation\">.<\/span><span class=\"token function\">intern<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s2 <span class=\"token operator\">==<\/span> <span class=\"token string\">\"ab\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/jdk6:true  jdk8:true<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s <span class=\"token operator\">==<\/span> <span class=\"token string\">\"ab\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/jdk6:false  jdk8:true<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/056b4a8dfe21326a24d899d51fe0095b.png#align=left&amp;display=inline&amp;height=716&amp;originHeight=716&amp;originWidth=1306&amp;size=0&amp;status=done&amp;style=none&amp;width=1306\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/056b4a8dfe21326a24d899d51fe0095b.png#align=left&amp;display=inline&amp;height=716&amp;originHeight=716&amp;originWidth=1306&amp;size=0&amp;status=done&amp;style=none&amp;width=1306\" alt=\"\"><\/noscript><\/p>\n<p><strong>\u7ec3\u4e603<\/strong><\/p>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">StringExer2<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        String s1 <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"ab\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u6267\u884c\u5b8c\u4ee5\u540e\uff0c\u4f1a\u5728\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u4f1a\u751f\u6210\"ab\"<\/span>\n\n        s1<span class=\"token punctuation\">.<\/span><span class=\"token function\">intern<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        String s2 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"ab\"<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s1 <span class=\"token operator\">==<\/span> s2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/false<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p><strong>\u9a8c\u8bc1<\/strong><\/p>\n<pre><code class=\"prism language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">StringExer2<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token comment\">\/\/ \u5bf9\u8c61\u5185\u5b58\u5730\u5740\u53ef\u4ee5\u4f7f\u7528System.identityHashCode(object)\u65b9\u6cd5\u83b7\u53d6<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        String s1 <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"a\"<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"b\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u6267\u884c\u5b8c\u4ee5\u540e\uff0c\u4e0d\u4f1a\u5728\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u4f1a\u751f\u6210\"ab\"<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>System<span class=\"token punctuation\">.<\/span><span class=\"token function\">identityHashCode<\/span><span class=\"token punctuation\">(<\/span>s1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        s1<span class=\"token punctuation\">.<\/span><span class=\"token function\">intern<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>System<span class=\"token punctuation\">.<\/span><span class=\"token function\">identityHashCode<\/span><span class=\"token punctuation\">(<\/span>s1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        String s2 <span class=\"token operator\">=<\/span> <span class=\"token string\">\"ab\"<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>System<span class=\"token punctuation\">.<\/span><span class=\"token function\">identityHashCode<\/span><span class=\"token punctuation\">(<\/span>s2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>s1 <span class=\"token operator\">==<\/span> s2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ true<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u8f93\u51fa\u7ed3\u679c\uff1a<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token number\">1836019240<\/span>\n<span class=\"token number\">1836019240<\/span>\n<span class=\"token number\">1836019240<\/span>\n<span class=\"token boolean\">true<\/span>\n<\/code><\/pre>\n<h3><a id=\"intern__4963\"><\/a>intern() \u7684\u6548\u7387\u6d4b\u8bd5\uff08\u7a7a\u95f4\u89d2\u5ea6\uff09<\/h3>\n<pre><code class=\"prism language-java\"><span class=\"token comment\">\/**\n * \u4f7f\u7528intern()\u6d4b\u8bd5\u6267\u884c\u6548\u7387\uff1a\u7a7a\u95f4\u4f7f\u7528\u4e0a\n *\n * \u7ed3\u8bba\uff1a\u5bf9\u4e8e\u7a0b\u5e8f\u4e2d\u5927\u91cf\u5b58\u5728\u5b58\u5728\u7684\u5b57\u7b26\u4e32\uff0c\u5c24\u5176\u5176\u4e2d\u5b58\u5728\u5f88\u591a\u91cd\u590d\u5b57\u7b26\u4e32\u65f6\uff0c\u4f7f\u7528intern()\u53ef\u4ee5\u8282\u7701\u5185\u5b58\u7a7a\u95f4\u3002\n *\n *\/<\/span>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">StringIntern2<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token keyword\">int<\/span> MAX_COUNT <span class=\"token operator\">=<\/span> <span class=\"token number\">1000<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">10000<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">final<\/span> String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> arr <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">[<\/span>MAX_COUNT<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        Integer<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> data <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Integer<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">3<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">4<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">5<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">6<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">8<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">9<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">10<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n\n        <span class=\"token keyword\">long<\/span> start <span class=\"token operator\">=<\/span> System<span class=\"token punctuation\">.<\/span><span class=\"token function\">currentTimeMillis<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> MAX_COUNT<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n<span class=\"token comment\">\/\/            arr[i] = new String(String.valueOf(data[i % data.length]));<\/span>\n            arr<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">.<\/span><span class=\"token function\">valueOf<\/span><span class=\"token punctuation\">(<\/span>data<span class=\"token punctuation\">[<\/span>i <span class=\"token operator\">%<\/span> data<span class=\"token punctuation\">.<\/span>length<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">intern<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token keyword\">long<\/span> end <span class=\"token operator\">=<\/span> System<span class=\"token punctuation\">.<\/span><span class=\"token function\">currentTimeMillis<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        System<span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"\u82b1\u8d39\u7684\u65f6\u95f4\u4e3a\uff1a\"<\/span> <span class=\"token operator\">+<\/span> <span class=\"token punctuation\">(<\/span>end <span class=\"token operator\">-<\/span> start<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            Thread<span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1000000<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">InterruptedException<\/span> e<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            e<span class=\"token punctuation\">.<\/span><span class=\"token function\">printStackTrace<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        System<span class=\"token punctuation\">.<\/span><span class=\"token function\">gc<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>1\u3001\u76f4\u63a5 new String \uff1a\u7531\u4e8e\u6bcf\u4e2a String \u5bf9\u8c61\u90fd\u662f new \u51fa\u6765\u7684\uff0c\u6240\u4ee5\u7a0b\u5e8f\u9700\u8981\u7ef4\u62a4\u5927\u91cf\u5b58\u653e\u5728\u5806\u7a7a\u95f4\u4e2d\u7684 String \u5b9e\u4f8b\uff0c\u7a0b\u5e8f\u5185\u5b58\u5360\u7528\u4e5f\u4f1a\u53d8\u9ad8<\/p>\n<pre><code class=\"prism language-java\">arr<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">.<\/span><span class=\"token function\">valueOf<\/span><span class=\"token punctuation\">(<\/span>data<span class=\"token punctuation\">[<\/span>i <span class=\"token operator\">%<\/span> data<span class=\"token punctuation\">.<\/span>length<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<\/code><\/pre>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/d469f4cd6d1d1c968142fe1d0fecaf49.png#align=left&amp;display=inline&amp;height=625&amp;originHeight=625&amp;originWidth=1868&amp;size=0&amp;status=done&amp;style=none&amp;width=1868\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/d469f4cd6d1d1c968142fe1d0fecaf49.png#align=left&amp;display=inline&amp;height=625&amp;originHeight=625&amp;originWidth=1868&amp;size=0&amp;status=done&amp;style=none&amp;width=1868\" alt=\"\"><\/noscript><\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/c7d47b5ddd5a9f0d95b0a6bd2af9636c.png#align=left&amp;display=inline&amp;height=622&amp;originHeight=622&amp;originWidth=1906&amp;size=0&amp;status=done&amp;style=none&amp;width=1906\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/c7d47b5ddd5a9f0d95b0a6bd2af9636c.png#align=left&amp;display=inline&amp;height=622&amp;originHeight=622&amp;originWidth=1906&amp;size=0&amp;status=done&amp;style=none&amp;width=1906\" alt=\"\"><\/noscript><\/p>\n<p>2\u3001\u4f7f\u7528 intern() \u65b9\u6cd5\uff1a\u7531\u4e8e\u6570\u7ec4\u4e2d\u5b57\u7b26\u4e32\u7684\u5f15\u7528\u90fd\u6307\u5411\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u4e2d\u7684\u5b57\u7b26\u4e32\uff0c\u6240\u4ee5\u7a0b\u5e8f\u9700\u8981\u7ef4\u62a4\u7684 String \u5bf9\u8c61\u66f4\u5c11\uff0c\u5185\u5b58\u5360\u7528\u4e5f\u66f4\u4f4e<\/p>\n<pre><code class=\"prism language-java\"><span class=\"token comment\">\/\/\u8c03\u7528\u4e86intern()\u65b9\u6cd5\u4f7f\u7528\u4e86\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u91cc\u7684\u5b57\u7b26\u4e32\uff0c\u90a3\u4e48\u524d\u9762\u5806\u91cc\u7684\u5b57\u7b26\u4e32\u4fbf\u4f1a\u88abGC\u6389\uff0c\u8fd9\u4e5f\u662fintern\u7701\u5185\u5b58\u7684\u5173\u952e\u539f\u56e0<\/span>\narr<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">.<\/span><span class=\"token function\">valueOf<\/span><span class=\"token punctuation\">(<\/span>data<span class=\"token punctuation\">[<\/span>i <span class=\"token operator\">%<\/span> data<span class=\"token punctuation\">.<\/span>length<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">intern<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<\/code><\/pre>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/860b0716f3b347d081b34c0d61791da4.png#align=left&amp;display=inline&amp;height=687&amp;originHeight=687&amp;originWidth=1909&amp;size=0&amp;status=done&amp;style=none&amp;width=1909\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/860b0716f3b347d081b34c0d61791da4.png#align=left&amp;display=inline&amp;height=687&amp;originHeight=687&amp;originWidth=1909&amp;size=0&amp;status=done&amp;style=none&amp;width=1909\" alt=\"\"><\/noscript><\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/4d300bda6714e32c1fed19fe271f8e30.png#align=left&amp;display=inline&amp;height=516&amp;originHeight=516&amp;originWidth=1900&amp;size=0&amp;status=done&amp;style=none&amp;width=1900\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/4d300bda6714e32c1fed19fe271f8e30.png#align=left&amp;display=inline&amp;height=516&amp;originHeight=516&amp;originWidth=1900&amp;size=0&amp;status=done&amp;style=none&amp;width=1900\" alt=\"\"><\/noscript><\/p>\n<p><strong>\u7ed3\u8bba<\/strong>\uff1a<\/p>\n<ol>\n<li>\u5bf9\u4e8e\u7a0b\u5e8f\u4e2d\u5927\u91cf\u4f7f\u7528\u5b58\u5728\u7684\u5b57\u7b26\u4e32\u65f6\uff0c\u5c24\u5176\u5b58\u5728\u5f88\u591a\u5df2\u7ecf\u91cd\u590d\u7684\u5b57\u7b26\u4e32\u65f6\uff0c\u4f7f\u7528intern()\u65b9\u6cd5\u80fd\u591f\u8282\u7701\u5f88\u5927\u7684\u5185\u5b58\u7a7a\u95f4\u3002<\/li>\n<li>\u5927\u7684\u7f51\u7ad9\u5e73\u53f0\uff0c\u9700\u8981\u5185\u5b58\u4e2d\u5b58\u50a8\u5927\u91cf\u7684\u5b57\u7b26\u4e32\u3002\u6bd4\u5982\u793e\u4ea4\u7f51\u7ad9\uff0c\u5f88\u591a\u4eba\u90fd\u5b58\u50a8\uff1a\u5317\u4eac\u5e02\u3001\u6d77\u6dc0\u533a\u7b49\u4fe1\u606f\u3002\u8fd9\u65f6\u5019\u5982\u679c\u5b57\u7b26\u4e32\u90fd\u8c03\u7528intern() \u65b9\u6cd5\uff0c\u5c31\u4f1a\u5f88\u660e\u663e\u964d\u4f4e\u5185\u5b58\u7684\u5927\u5c0f\u3002<\/li>\n<\/ol>\n<h2><a id=\"StringTable__5037\"><\/a>StringTable \u7684\u5783\u573e\u56de\u6536<\/h2>\n<pre><code class=\"prism language-java\"><span class=\"token comment\">\/**\n * String\u7684\u5783\u573e\u56de\u6536:\n * -Xms15m -Xmx15m -XX:+PrintStringTableStatistics -XX:+PrintGCDetails\n *\/<\/span>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">StringGCTest<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> j <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> j <span class=\"token operator\">&lt;<\/span> <span class=\"token number\">100000<\/span><span class=\"token punctuation\">;<\/span> j<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            String<span class=\"token punctuation\">.<\/span><span class=\"token function\">valueOf<\/span><span class=\"token punctuation\">(<\/span>j<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">intern<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p>\u8f93\u51fa\u7ed3\u679c\uff1a<\/p>\n<ul>\n<li>\u5728 PSYoungGen \u533a\u53d1\u751f\u4e86\u5783\u573e\u56de\u6536<\/li>\n<li>Number of entries \u548c Number of literals \u660e\u663e\u6ca1\u6709 100000<\/li>\n<li>\u4ee5\u4e0a\u4e24\u70b9\u5747\u8bf4\u660e StringTable \u533a\u53d1\u751f\u4e86\u5783\u573e\u56de\u6536<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/dee56b9db94673b9799d0482602bda68.png#align=left&amp;display=inline&amp;height=895&amp;originHeight=895&amp;originWidth=1890&amp;size=0&amp;status=done&amp;style=none&amp;width=1890\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/dee56b9db94673b9799d0482602bda68.png#align=left&amp;display=inline&amp;height=895&amp;originHeight=895&amp;originWidth=1890&amp;size=0&amp;status=done&amp;style=none&amp;width=1890\" alt=\"\"><\/noscript><\/p>\n<p><img decoding=\"async\" class=\"lazyload\"data-src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/c81050989fbef5456d48a06cc88efff1.png#align=left&amp;display=inline&amp;height=676&amp;originHeight=676&amp;originWidth=1806&amp;size=0&amp;status=done&amp;style=none&amp;width=1806\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\"><noscript><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/c81050989fbef5456d48a06cc88efff1.png#align=left&amp;display=inline&amp;height=676&amp;originHeight=676&amp;originWidth=1806&amp;size=0&amp;status=done&amp;style=none&amp;width=1806\" alt=\"\"><\/noscript><\/p>\n<h2><a id=\"G1__String__5070\"><\/a>G1 \u4e2d\u7684 String \u53bb\u91cd\u64cd\u4f5c<\/h2>\n<blockquote>\n<p><strong>\u5b98\u65b9\u6587\u6863<\/strong>\uff1a<a href=\"http:\/\/openjdk.java.net\/jeps\/192\" target=\"_blank\"  rel=\"nofollow\" >http:\/\/openjdk.java.net\/jeps\/192<\/a><\/p>\n<\/blockquote>\n<p>\u6682\u65f6\u4e86\u89e3\u4e00\u4e0b\uff0c\u540e\u9762\u4f1a\u8be6\u89e3\u5783\u573e\u56de\u6536\u5668<\/p>\n<p><strong>String\u53bb\u91cd\u64cd\u4f5c\u7684\u80cc\u666f<\/strong><\/p>\n<blockquote>\n<p>\u6ce8\u610f\u4e0d\u662f\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u7684\u53bb\u91cd\u64cd\u4f5c\uff0c\u5b57\u7b26\u4e32\u5e38\u91cf\u6c60\u672c\u8eab\u5c31\u6ca1\u6709\u91cd\u590d\u7684<\/p>\n<\/blockquote>\n<ol>\n<li>\u80cc\u666f\uff1a\u5bf9\u8bb8\u591aJava\u5e94\u7528\uff08\u6709\u5927\u7684\u4e5f\u6709\u5c0f\u7684\uff09\u505a\u7684\u6d4b\u8bd5\u5f97\u51fa\u4ee5\u4e0b\u7ed3\u679c\uff1a\n<ul>\n<li>\u5806\u5b58\u6d3b\u6570\u636e\u96c6\u5408\u91cc\u9762String\u5bf9\u8c61\u5360\u4e8625%<\/li>\n<li>\u5806\u5b58\u6d3b\u6570\u636e\u96c6\u5408\u91cc\u9762\u91cd\u590d\u7684String\u5bf9\u8c61\u670913.5%<\/li>\n<li>String\u5bf9\u8c61\u7684\u5e73\u5747\u957f\u5ea6\u662f45<\/li>\n<\/ul>\n<\/li>\n<li>\u8bb8\u591a\u5927\u89c4\u6a21\u7684Java\u5e94\u7528\u7684\u74f6\u9888\u5728\u4e8e\u5185\u5b58\uff0c\u6d4b\u8bd5\u8868\u660e\uff0c\u5728\u8fd9\u4e9b\u7c7b\u578b\u7684\u5e94\u7528\u91cc\u9762\uff0cJava\u5806\u4e2d\u5b58\u6d3b\u7684\u6570\u636e\u96c6\u5408\u5dee\u4e0d\u591a25%\u662fString\u5bf9\u8c61\u3002\u66f4\u8fdb\u4e00\u6b65\uff0c\u8fd9\u91cc\u9762\u5dee\u4e0d\u591a\u4e00\u534aString\u5bf9\u8c61\u662f\u91cd\u590d\u7684\uff0c\u91cd\u590d\u7684\u610f\u601d\u662f\u8bf4\uff1a<code>str1.equals(str2)= true<\/code>\u3002\u5806\u4e0a\u5b58\u5728\u91cd\u590d\u7684String\u5bf9\u8c61\u5fc5\u7136\u662f\u4e00\u79cd\u5185\u5b58\u7684\u6d6a\u8d39\u3002\u8fd9\u4e2a\u9879\u76ee\u5c06\u5728G1\u5783\u573e\u6536\u96c6\u5668\u4e2d\u5b9e\u73b0\u81ea\u52a8\u6301\u7eed\u5bf9\u91cd\u590d\u7684String\u5bf9\u8c61\u8fdb\u884c\u53bb\u91cd\uff0c\u8fd9\u6837\u5c31\u80fd\u907f\u514d\u6d6a\u8d39\u5185\u5b58\u3002<\/li>\n<\/ol>\n<p><strong>String \u53bb\u91cd\u7684\u7684\u5b9e\u73b0<\/strong><\/p>\n<ol>\n<li>\u5f53\u5783\u573e\u6536\u96c6\u5668\u5de5\u4f5c\u7684\u65f6\u5019\uff0c\u4f1a\u8bbf\u95ee\u5806\u4e0a\u5b58\u6d3b\u7684\u5bf9\u8c61\u3002\u5bf9\u6bcf\u4e00\u4e2a\u8bbf\u95ee\u7684\u5bf9\u8c61\u90fd\u4f1a\u68c0\u67e5\u662f\u5426\u662f\u5019\u9009\u7684\u8981\u53bb\u91cd\u7684String\u5bf9\u8c61\u3002<\/li>\n<li>\u5982\u679c\u662f\uff0c\u628a\u8fd9\u4e2a\u5bf9\u8c61\u7684\u4e00\u4e2a\u5f15\u7528\u63d2\u5165\u5230\u961f\u5217\u4e2d\u7b49\u5f85\u540e\u7eed\u7684\u5904\u7406\u3002\u4e00\u4e2a\u53bb\u91cd\u7684\u7ebf\u7a0b\u5728\u540e\u53f0\u8fd0\u884c\uff0c\u5904\u7406\u8fd9\u4e2a\u961f\u5217\u3002\u5904\u7406\u961f\u5217\u7684\u4e00\u4e2a\u5143\u7d20\u610f\u5473\u7740\u4ece\u961f\u5217\u5220\u9664\u8fd9\u4e2a\u5143\u7d20\uff0c\u7136\u540e\u5c1d\u8bd5\u53bb\u91cd\u5b83\u5f15\u7528\u7684String\u5bf9\u8c61\u3002<\/li>\n<li>\u4f7f\u7528\u4e00\u4e2aHashtable\u6765\u8bb0\u5f55\u6240\u6709\u7684\u88abString\u5bf9\u8c61\u4f7f\u7528\u7684\u4e0d\u91cd\u590d\u7684char\u6570\u7ec4\u3002\u5f53\u53bb\u91cd\u7684\u65f6\u5019\uff0c\u4f1a\u67e5\u8fd9\u4e2aHashtable\uff0c\u6765\u770b\u5806\u4e0a\u662f\u5426\u5df2\u7ecf\u5b58\u5728\u4e00\u4e2a\u4e00\u6a21\u4e00\u6837\u7684char\u6570\u7ec4\u3002<\/li>\n<li>\u5982\u679c\u5b58\u5728\uff0cString\u5bf9\u8c61\u4f1a\u88ab\u8c03\u6574\u5f15\u7528\u90a3\u4e2a\u6570\u7ec4\uff0c\u91ca\u653e\u5bf9\u539f\u6765\u7684\u6570\u7ec4\u7684\u5f15\u7528\uff0c\u6700\u7ec8\u4f1a\u88ab\u5783\u573e\u6536\u96c6\u5668\u56de\u6536\u6389\u3002<\/li>\n<li>\u5982\u679c\u67e5\u627e\u5931\u8d25\uff0cchar\u6570\u7ec4\u4f1a\u88ab\u63d2\u5165\u5230Hashtable\uff0c\u8fd9\u6837\u4ee5\u540e\u7684\u65f6\u5019\u5c31\u53ef\u4ee5\u5171\u4eab\u8fd9\u4e2a\u6570\u7ec4\u4e86\u3002<\/li>\n<\/ol>\n<p><strong>\u547d\u4ee4\u884c\u9009\u9879<\/strong><\/p>\n<ol>\n<li>UseStringDeduplication(bool) \uff1a\u5f00\u542fString\u53bb\u91cd\uff0c\u9ed8\u8ba4\u662f\u4e0d\u5f00\u542f\u7684\uff0c\u9700\u8981\u624b\u52a8\u5f00\u542f\u3002<\/li>\n<li>PrintStringDeduplicationStatistics(bool) \uff1a\u6253\u5370\u8be6\u7ec6\u7684\u53bb\u91cd\u7edf\u8ba1\u4fe1\u606f<\/li>\n<li>stringDeduplicationAgeThreshold(uintx) \uff1a\u8fbe\u5230\u8fd9\u4e2a\u5e74\u9f84\u7684String\u5bf9\u8c61\u88ab\u8ba4\u4e3a\u662f\u53bb\u91cd\u7684\u5019\u9009\u5bf9\u8c61<\/li>\n<\/ol>\n<p>\u53c2\u8003\u8d44\u6599\uff1a<br \/> 1.\u9a6c\u58eb\u5175JVMtia<\/p>\n<\/div>\n<link href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/editerView\/markdown_views-98b95bb57c.css\" rel=\"stylesheet\">\n<link href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/style-c216769e99.css\" rel=\"stylesheet\">\n<p>\u672c\u7bc7\u6587\u7ae0\u6765\u6e90\u4e8eCSDN\uff1ahttps:\/\/blog.csdn.net\/u012138605\/article\/details\/113795408<\/p>\n","raw":"","protected":false},"excerpt":{"rendered":"<p>JVM \u4e00\u3001JVM\u6982\u8ff0 \u67b6\u6784\u5e08\u6bcf\u5929\u5728\u60f3\u4ec0\u4e48\uff1f \u5982\u4f55\u8ba9\u7cfb\u7edf\u66f4\u5feb\uff1f \u5982\u4f55\u907f\u514d\u7cfb\u7edf\u51fa\u73b0\u74f6\u9888\uff1f \u77e5\u4e4e\u6709\u6761\u5e16\u5b50\uff1a\u5e94\u8be5\u5982\u4f55\u770b\u5f85\u62db\u8058\uff0c\u5e74\u85aa\u76f4\u901a5 &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"emotion":"","emotion_color":"","title_style":"","license":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-2915","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"post_thumbnail_image":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5ac3af865c64c4437b31a3f079160190.png#align=left&amp;display=inline&amp;height=107&amp;name=image.png&amp;originHeight=173&amp;originWidth=1118&amp;size=39274&amp;status=done&amp;style=none&amp;width=690","content_first_image":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5ac3af865c64c4437b31a3f079160190.png#align=left&amp;display=inline&amp;height=107&amp;name=image.png&amp;originHeight=173&amp;originWidth=1118&amp;size=39274&amp;status=done&amp;style=none&amp;width=690","post_medium_image_300":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5ac3af865c64c4437b31a3f079160190.png#align=left&amp;display=inline&amp;height=107&amp;name=image.png&amp;originHeight=173&amp;originWidth=1118&amp;size=39274&amp;status=done&amp;style=none&amp;width=690","post_thumbnail_image_624":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5ac3af865c64c4437b31a3f079160190.png#align=left&amp;display=inline&amp;height=107&amp;name=image.png&amp;originHeight=173&amp;originWidth=1118&amp;size=39274&amp;status=done&amp;style=none&amp;width=690","post_frist_image":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5ac3af865c64c4437b31a3f079160190.png#align=left&amp;display=inline&amp;height=107&amp;name=image.png&amp;originHeight=173&amp;originWidth=1118&amp;size=39274&amp;status=done&amp;style=none&amp;width=690","post_medium_image":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5ac3af865c64c4437b31a3f079160190.png#align=left&amp;display=inline&amp;height=107&amp;name=image.png&amp;originHeight=173&amp;originWidth=1118&amp;size=39274&amp;status=done&amp;style=none&amp;width=690","post_large_image":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5ac3af865c64c4437b31a3f079160190.png#align=left&amp;display=inline&amp;height=107&amp;name=image.png&amp;originHeight=173&amp;originWidth=1118&amp;size=39274&amp;status=done&amp;style=none&amp;width=690","post_full_image":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5ac3af865c64c4437b31a3f079160190.png#align=left&amp;display=inline&amp;height=107&amp;name=image.png&amp;originHeight=173&amp;originWidth=1118&amp;size=39274&amp;status=done&amp;style=none&amp;width=690","post_all_images":[{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5ac3af865c64c4437b31a3f079160190.png#align=left&amp;display=inline&amp;height=107&amp;name=image.png&amp;originHeight=173&amp;originWidth=1118&amp;size=39274&amp;status=done&amp;style=none&amp;width=690","id":"image0"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5ac3af865c64c4437b31a3f079160190.png#align=left&amp;display=inline&amp;height=107&amp;name=image.png&amp;originHeight=173&amp;originWidth=1118&amp;size=39274&amp;status=done&amp;style=none&amp;width=690","id":"image1"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/afde62d1605395058c41051e68754345.png#align=left&amp;display=inline&amp;height=202&amp;name=image.png&amp;originHeight=1112&amp;originWidth=1757&amp;size=1136448&amp;status=done&amp;style=none&amp;width=319","id":"image2"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/afde62d1605395058c41051e68754345.png#align=left&amp;display=inline&amp;height=202&amp;name=image.png&amp;originHeight=1112&amp;originWidth=1757&amp;size=1136448&amp;status=done&amp;style=none&amp;width=319","id":"image3"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/d34a7284fdb844f69f2f18e5f238d547.png#align=left&amp;display=inline&amp;height=223&amp;name=image.png&amp;originHeight=958&amp;originWidth=934&amp;size=894678&amp;status=done&amp;style=none&amp;width=217","id":"image4"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/d34a7284fdb844f69f2f18e5f238d547.png#align=left&amp;display=inline&amp;height=223&amp;name=image.png&amp;originHeight=958&amp;originWidth=934&amp;size=894678&amp;status=done&amp;style=none&amp;width=217","id":"image5"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/15df4d94d1331934243b94b7c42f8d06.png#align=left&amp;display=inline&amp;height=159&amp;name=image.png&amp;originHeight=1090&amp;originWidth=1730&amp;size=464202&amp;status=done&amp;style=none&amp;width=253","id":"image6"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/15df4d94d1331934243b94b7c42f8d06.png#align=left&amp;display=inline&amp;height=159&amp;name=image.png&amp;originHeight=1090&amp;originWidth=1730&amp;size=464202&amp;status=done&amp;style=none&amp;width=253","id":"image7"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/332939a15e27bd1d8606b43b5c7c7346.png#align=left&amp;display=inline&amp;height=138&amp;name=image.png&amp;originHeight=730&amp;originWidth=1310&amp;size=191809&amp;status=done&amp;style=none&amp;width=247","id":"image8"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/332939a15e27bd1d8606b43b5c7c7346.png#align=left&amp;display=inline&amp;height=138&amp;name=image.png&amp;originHeight=730&amp;originWidth=1310&amp;size=191809&amp;status=done&amp;style=none&amp;width=247","id":"image9"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/8c23edcd7e2e703b406b21b33ce8c779.png#align=left&amp;display=inline&amp;height=251&amp;name=image.png&amp;originHeight=1214&amp;originWidth=2711&amp;size=3932759&amp;status=done&amp;style=none&amp;width=560","id":"image10"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/8c23edcd7e2e703b406b21b33ce8c779.png#align=left&amp;display=inline&amp;height=251&amp;name=image.png&amp;originHeight=1214&amp;originWidth=2711&amp;size=3932759&amp;status=done&amp;style=none&amp;width=560","id":"image11"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/bef16519da75d3a85cfe6c9ae1ce9757.png#align=left&amp;display=inline&amp;height=809&amp;originHeight=809&amp;originWidth=890&amp;size=0&amp;status=done&amp;style=none&amp;width=890","id":"image12"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/bef16519da75d3a85cfe6c9ae1ce9757.png#align=left&amp;display=inline&amp;height=809&amp;originHeight=809&amp;originWidth=890&amp;size=0&amp;status=done&amp;style=none&amp;width=890","id":"image13"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/8ce571790b57a0cdd35e8c426c38c1c9.png#align=left&amp;display=inline&amp;height=215&amp;name=image.png&amp;originHeight=682&amp;originWidth=1821&amp;size=469243&amp;status=done&amp;style=none&amp;width=573","id":"image14"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/8ce571790b57a0cdd35e8c426c38c1c9.png#align=left&amp;display=inline&amp;height=215&amp;name=image.png&amp;originHeight=682&amp;originWidth=1821&amp;size=469243&amp;status=done&amp;style=none&amp;width=573","id":"image15"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/48d1b4358ca49169f0899a5e5ec0a966.png#align=left&amp;display=inline&amp;height=192&amp;name=image.png&amp;originHeight=609&amp;originWidth=1871&amp;size=1262557&amp;status=done&amp;style=none&amp;width=590","id":"image16"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/48d1b4358ca49169f0899a5e5ec0a966.png#align=left&amp;display=inline&amp;height=192&amp;name=image.png&amp;originHeight=609&amp;originWidth=1871&amp;size=1262557&amp;status=done&amp;style=none&amp;width=590","id":"image17"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/dd2e78fbf43b1b768f307f9826bf0e53.png#align=left&amp;display=inline&amp;height=429&amp;name=image.png&amp;originHeight=1064&amp;originWidth=2299&amp;size=266979&amp;status=done&amp;style=none&amp;width=926","id":"image18"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/dd2e78fbf43b1b768f307f9826bf0e53.png#align=left&amp;display=inline&amp;height=429&amp;name=image.png&amp;originHeight=1064&amp;originWidth=2299&amp;size=266979&amp;status=done&amp;style=none&amp;width=926","id":"image19"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/fa20ae0e13b5f83e1425d4bd64aad8e0.png#align=left&amp;display=inline&amp;height=212&amp;name=image.png&amp;originHeight=378&amp;originWidth=1210&amp;size=93877&amp;status=done&amp;style=none&amp;width=679","id":"image20"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/fa20ae0e13b5f83e1425d4bd64aad8e0.png#align=left&amp;display=inline&amp;height=212&amp;name=image.png&amp;originHeight=378&amp;originWidth=1210&amp;size=93877&amp;status=done&amp;style=none&amp;width=679","id":"image21"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/218e265a2ba1619d8b7767c1f6044c8f.png#align=left&amp;display=inline&amp;height=364&amp;name=image.png&amp;originHeight=1019&amp;originWidth=1835&amp;size=728137&amp;status=done&amp;style=none&amp;width=655","id":"image22"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/218e265a2ba1619d8b7767c1f6044c8f.png#align=left&amp;display=inline&amp;height=364&amp;name=image.png&amp;originHeight=1019&amp;originWidth=1835&amp;size=728137&amp;status=done&amp;style=none&amp;width=655","id":"image23"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/732fda94e8728f29c92b30deedb5bc97.png#align=left&amp;display=inline&amp;height=329&amp;name=image.png&amp;originHeight=988&amp;originWidth=1346&amp;size=1810061&amp;status=done&amp;style=none&amp;width=448.6666666666667","id":"image24"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/732fda94e8728f29c92b30deedb5bc97.png#align=left&amp;display=inline&amp;height=329&amp;name=image.png&amp;originHeight=988&amp;originWidth=1346&amp;size=1810061&amp;status=done&amp;style=none&amp;width=448.6666666666667","id":"image25"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/aa332fa93f79af1bac8d7c3f1b4881c4.png#align=left&amp;display=inline&amp;height=424&amp;name=image.png&amp;originHeight=1411&amp;originWidth=1553&amp;size=1827782&amp;status=done&amp;style=none&amp;width=467","id":"image26"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/aa332fa93f79af1bac8d7c3f1b4881c4.png#align=left&amp;display=inline&amp;height=424&amp;name=image.png&amp;originHeight=1411&amp;originWidth=1553&amp;size=1827782&amp;status=done&amp;style=none&amp;width=467","id":"image27"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/15102e70792de17941f912366c497d62.png#align=left&amp;display=inline&amp;height=208&amp;name=image.png&amp;originHeight=625&amp;originWidth=2039&amp;size=911938&amp;status=done&amp;style=none&amp;width=679.6666666666666","id":"image28"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/15102e70792de17941f912366c497d62.png#align=left&amp;display=inline&amp;height=208&amp;name=image.png&amp;originHeight=625&amp;originWidth=2039&amp;size=911938&amp;status=done&amp;style=none&amp;width=679.6666666666666","id":"image29"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/cec0ecb7e551f00310f34239cec40cc3.png#align=left&amp;display=inline&amp;height=333&amp;name=image.png&amp;originHeight=999&amp;originWidth=1241&amp;size=1208432&amp;status=done&amp;style=none&amp;width=413.6666666666667","id":"image30"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/cec0ecb7e551f00310f34239cec40cc3.png#align=left&amp;display=inline&amp;height=333&amp;name=image.png&amp;originHeight=999&amp;originWidth=1241&amp;size=1208432&amp;status=done&amp;style=none&amp;width=413.6666666666667","id":"image31"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/a05f60323dd9399e45ccd13625b3d364.png#align=left&amp;display=inline&amp;height=226&amp;name=image.png&amp;originHeight=838&amp;originWidth=1902&amp;size=1183938&amp;status=done&amp;style=none&amp;width=514","id":"image32"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/a05f60323dd9399e45ccd13625b3d364.png#align=left&amp;display=inline&amp;height=226&amp;name=image.png&amp;originHeight=838&amp;originWidth=1902&amp;size=1183938&amp;status=done&amp;style=none&amp;width=514","id":"image33"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/3c61542da352cbf88df6145d1529d4e2.png#align=left&amp;display=inline&amp;height=523&amp;name=image.png&amp;originHeight=523&amp;originWidth=1325&amp;size=819300&amp;status=done&amp;style=none&amp;width=1325","id":"image34"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/3c61542da352cbf88df6145d1529d4e2.png#align=left&amp;display=inline&amp;height=523&amp;name=image.png&amp;originHeight=523&amp;originWidth=1325&amp;size=819300&amp;status=done&amp;style=none&amp;width=1325","id":"image35"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/a370821dc03157fb2f9073123b00eb08.png#align=left&amp;display=inline&amp;height=291&amp;name=image.png&amp;originHeight=872&amp;originWidth=1065&amp;size=1060278&amp;status=done&amp;style=none&amp;width=355","id":"image36"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/a370821dc03157fb2f9073123b00eb08.png#align=left&amp;display=inline&amp;height=291&amp;name=image.png&amp;originHeight=872&amp;originWidth=1065&amp;size=1060278&amp;status=done&amp;style=none&amp;width=355","id":"image37"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/47641e8dbd771bb0806a08677ecfbd35.png#align=left&amp;display=inline&amp;height=429&amp;name=image.png&amp;originHeight=1653&amp;originWidth=2999&amp;size=6479112&amp;status=done&amp;style=none&amp;width=778","id":"image38"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/47641e8dbd771bb0806a08677ecfbd35.png#align=left&amp;display=inline&amp;height=429&amp;name=image.png&amp;originHeight=1653&amp;originWidth=2999&amp;size=6479112&amp;status=done&amp;style=none&amp;width=778","id":"image39"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/586bfbcafe4d0e6ac6a2a40260ee5bba.png#align=left&amp;display=inline&amp;height=335&amp;originHeight=511&amp;originWidth=797&amp;size=0&amp;status=done&amp;style=none&amp;width=522","id":"image40"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/586bfbcafe4d0e6ac6a2a40260ee5bba.png#align=left&amp;display=inline&amp;height=335&amp;originHeight=511&amp;originWidth=797&amp;size=0&amp;status=done&amp;style=none&amp;width=522","id":"image41"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f991671d84812115d9490ff9236bbd74.png#align=left&amp;display=inline&amp;height=328&amp;originHeight=509&amp;originWidth=867&amp;size=0&amp;status=done&amp;style=none&amp;width=559","id":"image42"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f991671d84812115d9490ff9236bbd74.png#align=left&amp;display=inline&amp;height=328&amp;originHeight=509&amp;originWidth=867&amp;size=0&amp;status=done&amp;style=none&amp;width=559","id":"image43"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/4cb5848f35445b5912702b6a9e657f07.png#align=left&amp;display=inline&amp;height=190&amp;originHeight=409&amp;originWidth=806&amp;size=0&amp;status=done&amp;style=none&amp;width=374","id":"image44"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/4cb5848f35445b5912702b6a9e657f07.png#align=left&amp;display=inline&amp;height=190&amp;originHeight=409&amp;originWidth=806&amp;size=0&amp;status=done&amp;style=none&amp;width=374","id":"image45"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/c696cc64361e214e5e0dfa5a54714658.png#align=left&amp;display=inline&amp;height=203&amp;originHeight=544&amp;originWidth=701&amp;size=0&amp;status=done&amp;style=none&amp;width=262","id":"image46"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/c696cc64361e214e5e0dfa5a54714658.png#align=left&amp;display=inline&amp;height=203&amp;originHeight=544&amp;originWidth=701&amp;size=0&amp;status=done&amp;style=none&amp;width=262","id":"image47"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/d9211aec91bad63142100f44ae3fbbd8.png#align=left&amp;display=inline&amp;height=237&amp;originHeight=479&amp;originWidth=1052&amp;size=0&amp;status=done&amp;style=none&amp;width=520","id":"image48"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/d9211aec91bad63142100f44ae3fbbd8.png#align=left&amp;display=inline&amp;height=237&amp;originHeight=479&amp;originWidth=1052&amp;size=0&amp;status=done&amp;style=none&amp;width=520","id":"image49"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/9f0d1e462b805a374de1a460b5c97b46.png#align=left&amp;display=inline&amp;height=268&amp;originHeight=360&amp;originWidth=367&amp;size=0&amp;status=done&amp;style=none&amp;width=273","id":"image50"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/9f0d1e462b805a374de1a460b5c97b46.png#align=left&amp;display=inline&amp;height=268&amp;originHeight=360&amp;originWidth=367&amp;size=0&amp;status=done&amp;style=none&amp;width=273","id":"image51"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/47505dd963711f0f5153b4300c982acd.png#align=left&amp;display=inline&amp;height=154&amp;name=image.png&amp;originHeight=791&amp;originWidth=1972&amp;size=675140&amp;status=done&amp;style=none&amp;width=385","id":"image52"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/47505dd963711f0f5153b4300c982acd.png#align=left&amp;display=inline&amp;height=154&amp;name=image.png&amp;originHeight=791&amp;originWidth=1972&amp;size=675140&amp;status=done&amp;style=none&amp;width=385","id":"image53"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/bc2d7113298b8ceeea7b95d9eae2322d.png#align=left&amp;display=inline&amp;height=197&amp;originHeight=292&amp;originWidth=1016&amp;size=0&amp;status=done&amp;style=none&amp;width=684","id":"image54"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/bc2d7113298b8ceeea7b95d9eae2322d.png#align=left&amp;display=inline&amp;height=197&amp;originHeight=292&amp;originWidth=1016&amp;size=0&amp;status=done&amp;style=none&amp;width=684","id":"image55"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/e8196d223405cda69df72f89eb8c4e4c.png#align=left&amp;display=inline&amp;height=325&amp;originHeight=520&amp;originWidth=604&amp;size=0&amp;status=done&amp;style=none&amp;width=377","id":"image56"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/e8196d223405cda69df72f89eb8c4e4c.png#align=left&amp;display=inline&amp;height=325&amp;originHeight=520&amp;originWidth=604&amp;size=0&amp;status=done&amp;style=none&amp;width=377","id":"image57"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/c5fefd2948f2d98f57d319bb391f208d.png#align=left&amp;display=inline&amp;height=236&amp;originHeight=448&amp;originWidth=1034&amp;size=0&amp;status=done&amp;style=none&amp;width=544","id":"image58"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/c5fefd2948f2d98f57d319bb391f208d.png#align=left&amp;display=inline&amp;height=236&amp;originHeight=448&amp;originWidth=1034&amp;size=0&amp;status=done&amp;style=none&amp;width=544","id":"image59"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5f91ada77b925850973fd3de0f1b25ae.png#align=left&amp;display=inline&amp;height=206&amp;originHeight=339&amp;originWidth=432&amp;size=0&amp;status=done&amp;style=none&amp;width=262","id":"image60"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5f91ada77b925850973fd3de0f1b25ae.png#align=left&amp;display=inline&amp;height=206&amp;originHeight=339&amp;originWidth=432&amp;size=0&amp;status=done&amp;style=none&amp;width=262","id":"image61"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/c383af8c2c1b94f33bb2451bdda01f38.png#align=left&amp;display=inline&amp;height=224&amp;originHeight=542&amp;originWidth=691&amp;size=0&amp;status=done&amp;style=none&amp;width=286","id":"image62"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/c383af8c2c1b94f33bb2451bdda01f38.png#align=left&amp;display=inline&amp;height=224&amp;originHeight=542&amp;originWidth=691&amp;size=0&amp;status=done&amp;style=none&amp;width=286","id":"image63"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/00822d74ea55baf29b7d4dfa4194e73a.png#align=left&amp;display=inline&amp;height=123&amp;originHeight=123&amp;originWidth=417&amp;size=0&amp;status=done&amp;style=none&amp;width=417","id":"image64"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/00822d74ea55baf29b7d4dfa4194e73a.png#align=left&amp;display=inline&amp;height=123&amp;originHeight=123&amp;originWidth=417&amp;size=0&amp;status=done&amp;style=none&amp;width=417","id":"image65"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/500de8cd4d95fed685dfe469442a5a4a.png#align=left&amp;display=inline&amp;height=332&amp;originHeight=507&amp;originWidth=812&amp;size=0&amp;status=done&amp;style=none&amp;width=531","id":"image66"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/500de8cd4d95fed685dfe469442a5a4a.png#align=left&amp;display=inline&amp;height=332&amp;originHeight=507&amp;originWidth=812&amp;size=0&amp;status=done&amp;style=none&amp;width=531","id":"image67"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/9a24c59be3bb5b6d4fa9e16299e85f76.png#align=left&amp;display=inline&amp;height=317&amp;originHeight=522&amp;originWidth=676&amp;size=0&amp;status=done&amp;style=none&amp;width=410","id":"image68"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/9a24c59be3bb5b6d4fa9e16299e85f76.png#align=left&amp;display=inline&amp;height=317&amp;originHeight=522&amp;originWidth=676&amp;size=0&amp;status=done&amp;style=none&amp;width=410","id":"image69"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/2518b97ea5a4718fcc074036069ea162.png#align=left&amp;display=inline&amp;height=289&amp;originHeight=437&amp;originWidth=560&amp;size=0&amp;status=done&amp;style=none&amp;width=370","id":"image70"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/2518b97ea5a4718fcc074036069ea162.png#align=left&amp;display=inline&amp;height=289&amp;originHeight=437&amp;originWidth=560&amp;size=0&amp;status=done&amp;style=none&amp;width=370","id":"image71"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5414be7ecc76cb3f695e82c4bee6a2a7.png#align=left&amp;display=inline&amp;height=231&amp;originHeight=650&amp;originWidth=978&amp;size=0&amp;status=done&amp;style=none&amp;width=348","id":"image72"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5414be7ecc76cb3f695e82c4bee6a2a7.png#align=left&amp;display=inline&amp;height=231&amp;originHeight=650&amp;originWidth=978&amp;size=0&amp;status=done&amp;style=none&amp;width=348","id":"image73"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5fbd19516a0c76bebc25b1d9215ba879.png#align=left&amp;display=inline&amp;height=310&amp;originHeight=547&amp;originWidth=275&amp;size=0&amp;status=done&amp;style=none&amp;width=156","id":"image74"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5fbd19516a0c76bebc25b1d9215ba879.png#align=left&amp;display=inline&amp;height=310&amp;originHeight=547&amp;originWidth=275&amp;size=0&amp;status=done&amp;style=none&amp;width=156","id":"image75"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/8fa9216ff75bcfd6991b4d3063a95551.png#align=left&amp;display=inline&amp;height=257&amp;originHeight=552&amp;originWidth=1331&amp;size=0&amp;status=done&amp;style=none&amp;width=619","id":"image76"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/8fa9216ff75bcfd6991b4d3063a95551.png#align=left&amp;display=inline&amp;height=257&amp;originHeight=552&amp;originWidth=1331&amp;size=0&amp;status=done&amp;style=none&amp;width=619","id":"image77"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/be35ee40dd55c917ecac3e41551f57e7.png#align=left&amp;display=inline&amp;height=253&amp;originHeight=490&amp;originWidth=907&amp;size=0&amp;status=done&amp;style=none&amp;width=469","id":"image78"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/be35ee40dd55c917ecac3e41551f57e7.png#align=left&amp;display=inline&amp;height=253&amp;originHeight=490&amp;originWidth=907&amp;size=0&amp;status=done&amp;style=none&amp;width=469","id":"image79"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/3767a34cfc0b2c08e92ffebdbccedc79.png#align=left&amp;display=inline&amp;height=231&amp;originHeight=396&amp;originWidth=1046&amp;size=0&amp;status=done&amp;style=none&amp;width=609","id":"image80"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/3767a34cfc0b2c08e92ffebdbccedc79.png#align=left&amp;display=inline&amp;height=231&amp;originHeight=396&amp;originWidth=1046&amp;size=0&amp;status=done&amp;style=none&amp;width=609","id":"image81"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5554e293699171d1f9fb9e09780d5add.png#align=left&amp;display=inline&amp;height=286&amp;originHeight=659&amp;originWidth=719&amp;size=0&amp;status=done&amp;style=none&amp;width=312","id":"image82"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5554e293699171d1f9fb9e09780d5add.png#align=left&amp;display=inline&amp;height=286&amp;originHeight=659&amp;originWidth=719&amp;size=0&amp;status=done&amp;style=none&amp;width=312","id":"image83"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/ff47035b4f40b9e5da7c1286678416ec.png#align=left&amp;display=inline&amp;height=339&amp;originHeight=945&amp;originWidth=1571&amp;size=0&amp;status=done&amp;style=none&amp;width=564","id":"image84"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/ff47035b4f40b9e5da7c1286678416ec.png#align=left&amp;display=inline&amp;height=339&amp;originHeight=945&amp;originWidth=1571&amp;size=0&amp;status=done&amp;style=none&amp;width=564","id":"image85"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/ef96aa94b4a91d7010a2abf7909566ea.png#align=left&amp;display=inline&amp;height=318&amp;originHeight=469&amp;originWidth=909&amp;size=0&amp;status=done&amp;style=none&amp;width=616","id":"image86"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/ef96aa94b4a91d7010a2abf7909566ea.png#align=left&amp;display=inline&amp;height=318&amp;originHeight=469&amp;originWidth=909&amp;size=0&amp;status=done&amp;style=none&amp;width=616","id":"image87"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/30e80f48b30e0f4ab6210b36b768591c.png#align=left&amp;display=inline&amp;height=268&amp;originHeight=474&amp;originWidth=885&amp;size=0&amp;status=done&amp;style=none&amp;width=501","id":"image88"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/30e80f48b30e0f4ab6210b36b768591c.png#align=left&amp;display=inline&amp;height=268&amp;originHeight=474&amp;originWidth=885&amp;size=0&amp;status=done&amp;style=none&amp;width=501","id":"image89"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5c49e2603b96e0f378ead14c9cccee72.png#align=left&amp;display=inline&amp;height=261&amp;originHeight=402&amp;originWidth=916&amp;size=0&amp;status=done&amp;style=none&amp;width=594","id":"image90"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/5c49e2603b96e0f378ead14c9cccee72.png#align=left&amp;display=inline&amp;height=261&amp;originHeight=402&amp;originWidth=916&amp;size=0&amp;status=done&amp;style=none&amp;width=594","id":"image91"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/7d715153c2974c6688f0c8e922a2fc86.png#align=left&amp;display=inline&amp;height=268&amp;originHeight=786&amp;originWidth=1134&amp;size=0&amp;status=done&amp;style=none&amp;width=387","id":"image92"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/7d715153c2974c6688f0c8e922a2fc86.png#align=left&amp;display=inline&amp;height=268&amp;originHeight=786&amp;originWidth=1134&amp;size=0&amp;status=done&amp;style=none&amp;width=387","id":"image93"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/b63cd812da551e1f67228c135b1b948a.png#align=left&amp;display=inline&amp;height=251&amp;originHeight=654&amp;originWidth=1450&amp;size=0&amp;status=done&amp;style=none&amp;width=557","id":"image94"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/b63cd812da551e1f67228c135b1b948a.png#align=left&amp;display=inline&amp;height=251&amp;originHeight=654&amp;originWidth=1450&amp;size=0&amp;status=done&amp;style=none&amp;width=557","id":"image95"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/aacbd5cb602c262997dbb0289b8e1d81.png#align=left&amp;display=inline&amp;height=296&amp;originHeight=473&amp;originWidth=385&amp;size=0&amp;status=done&amp;style=none&amp;width=241","id":"image96"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/aacbd5cb602c262997dbb0289b8e1d81.png#align=left&amp;display=inline&amp;height=296&amp;originHeight=473&amp;originWidth=385&amp;size=0&amp;status=done&amp;style=none&amp;width=241","id":"image97"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f995bc247016df73b1fbe8834c4d43ac.png#align=left&amp;display=inline&amp;height=246&amp;originHeight=522&amp;originWidth=1422&amp;size=0&amp;status=done&amp;style=none&amp;width=670","id":"image98"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f995bc247016df73b1fbe8834c4d43ac.png#align=left&amp;display=inline&amp;height=246&amp;originHeight=522&amp;originWidth=1422&amp;size=0&amp;status=done&amp;style=none&amp;width=670","id":"image99"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/6bbcb171bdd00982e4092d70246b095f.png#align=left&amp;display=inline&amp;height=330&amp;originHeight=610&amp;originWidth=1453&amp;size=0&amp;status=done&amp;style=none&amp;width=786","id":"image100"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/6bbcb171bdd00982e4092d70246b095f.png#align=left&amp;display=inline&amp;height=330&amp;originHeight=610&amp;originWidth=1453&amp;size=0&amp;status=done&amp;style=none&amp;width=786","id":"image101"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/3510d0cb33da8056132a2a031fe80545.png#align=left&amp;display=inline&amp;height=278&amp;originHeight=579&amp;originWidth=1410&amp;size=0&amp;status=done&amp;style=none&amp;width=677","id":"image102"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/3510d0cb33da8056132a2a031fe80545.png#align=left&amp;display=inline&amp;height=278&amp;originHeight=579&amp;originWidth=1410&amp;size=0&amp;status=done&amp;style=none&amp;width=677","id":"image103"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/ef9088871e5d1c33cb9ea57d63bcda97.png#align=left&amp;display=inline&amp;height=225&amp;originHeight=225&amp;originWidth=636&amp;size=0&amp;status=done&amp;style=none&amp;width=636","id":"image104"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/ef9088871e5d1c33cb9ea57d63bcda97.png#align=left&amp;display=inline&amp;height=225&amp;originHeight=225&amp;originWidth=636&amp;size=0&amp;status=done&amp;style=none&amp;width=636","id":"image105"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/7a68e3b2b40df96db05675f5ade518e7.png#align=left&amp;display=inline&amp;height=278&amp;originHeight=524&amp;originWidth=1242&amp;size=0&amp;status=done&amp;style=none&amp;width=658","id":"image106"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/7a68e3b2b40df96db05675f5ade518e7.png#align=left&amp;display=inline&amp;height=278&amp;originHeight=524&amp;originWidth=1242&amp;size=0&amp;status=done&amp;style=none&amp;width=658","id":"image107"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/779a99facbe63e9b066244dfa5ea317e.png#align=left&amp;display=inline&amp;height=316&amp;originHeight=773&amp;originWidth=1291&amp;size=0&amp;status=done&amp;style=none&amp;width=528","id":"image108"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/779a99facbe63e9b066244dfa5ea317e.png#align=left&amp;display=inline&amp;height=316&amp;originHeight=773&amp;originWidth=1291&amp;size=0&amp;status=done&amp;style=none&amp;width=528","id":"image109"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/9cd4ecaa381d618815d4f86cd1059765.png#align=left&amp;display=inline&amp;height=277&amp;originHeight=468&amp;originWidth=939&amp;size=0&amp;status=done&amp;style=none&amp;width=556","id":"image110"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/9cd4ecaa381d618815d4f86cd1059765.png#align=left&amp;display=inline&amp;height=277&amp;originHeight=468&amp;originWidth=939&amp;size=0&amp;status=done&amp;style=none&amp;width=556","id":"image111"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/4d65b2f241804de4be578550fdf2c3b7.png#align=left&amp;display=inline&amp;height=290&amp;originHeight=344&amp;originWidth=630&amp;size=0&amp;status=done&amp;style=none&amp;width=531","id":"image112"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/4d65b2f241804de4be578550fdf2c3b7.png#align=left&amp;display=inline&amp;height=290&amp;originHeight=344&amp;originWidth=630&amp;size=0&amp;status=done&amp;style=none&amp;width=531","id":"image113"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/0c6ee8513c1a0ce1ff7522fade744949.png#align=left&amp;display=inline&amp;height=229&amp;originHeight=322&amp;originWidth=591&amp;size=0&amp;status=done&amp;style=none&amp;width=421","id":"image114"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/0c6ee8513c1a0ce1ff7522fade744949.png#align=left&amp;display=inline&amp;height=229&amp;originHeight=322&amp;originWidth=591&amp;size=0&amp;status=done&amp;style=none&amp;width=421","id":"image115"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/402edb81bf89b295df32588c87ca47fa.png#align=left&amp;display=inline&amp;height=294&amp;originHeight=656&amp;originWidth=1218&amp;size=0&amp;status=done&amp;style=none&amp;width=545","id":"image116"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/402edb81bf89b295df32588c87ca47fa.png#align=left&amp;display=inline&amp;height=294&amp;originHeight=656&amp;originWidth=1218&amp;size=0&amp;status=done&amp;style=none&amp;width=545","id":"image117"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/8e087068831f42e2a61d0fc113ec3fdb.png#align=left&amp;display=inline&amp;height=311&amp;originHeight=656&amp;originWidth=1222&amp;size=0&amp;status=done&amp;style=none&amp;width=579","id":"image118"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/8e087068831f42e2a61d0fc113ec3fdb.png#align=left&amp;display=inline&amp;height=311&amp;originHeight=656&amp;originWidth=1222&amp;size=0&amp;status=done&amp;style=none&amp;width=579","id":"image119"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/d623442d2a577f5e442c0c6e371b11de.png#align=left&amp;display=inline&amp;height=326&amp;originHeight=656&amp;originWidth=1214&amp;size=0&amp;status=done&amp;style=none&amp;width=603","id":"image120"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/d623442d2a577f5e442c0c6e371b11de.png#align=left&amp;display=inline&amp;height=326&amp;originHeight=656&amp;originWidth=1214&amp;size=0&amp;status=done&amp;style=none&amp;width=603","id":"image121"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/74e91696596193a9034576d6a25231c1.png#align=left&amp;display=inline&amp;height=300&amp;originHeight=780&amp;originWidth=1442&amp;size=0&amp;status=done&amp;style=none&amp;width=555","id":"image122"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/74e91696596193a9034576d6a25231c1.png#align=left&amp;display=inline&amp;height=300&amp;originHeight=780&amp;originWidth=1442&amp;size=0&amp;status=done&amp;style=none&amp;width=555","id":"image123"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/9878e8e9c0f75acec6eea85a63424ef9.png#align=left&amp;display=inline&amp;height=347&amp;originHeight=761&amp;originWidth=1333&amp;size=0&amp;status=done&amp;style=none&amp;width=607","id":"image124"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/9878e8e9c0f75acec6eea85a63424ef9.png#align=left&amp;display=inline&amp;height=347&amp;originHeight=761&amp;originWidth=1333&amp;size=0&amp;status=done&amp;style=none&amp;width=607","id":"image125"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/15551e728a8f580da9acd15b0439522d.png#align=left&amp;display=inline&amp;height=286&amp;originHeight=565&amp;originWidth=1208&amp;size=0&amp;status=done&amp;style=none&amp;width=612","id":"image126"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/15551e728a8f580da9acd15b0439522d.png#align=left&amp;display=inline&amp;height=286&amp;originHeight=565&amp;originWidth=1208&amp;size=0&amp;status=done&amp;style=none&amp;width=612","id":"image127"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/354e3cc5f8e2c381ca6a1cff228ed49c.png#align=left&amp;display=inline&amp;height=315&amp;originHeight=742&amp;originWidth=1413&amp;size=0&amp;status=done&amp;style=none&amp;width=600","id":"image128"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/354e3cc5f8e2c381ca6a1cff228ed49c.png#align=left&amp;display=inline&amp;height=315&amp;originHeight=742&amp;originWidth=1413&amp;size=0&amp;status=done&amp;style=none&amp;width=600","id":"image129"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/4644bcdbc2cd86a45239f5cde43844d0.png#align=left&amp;display=inline&amp;height=249&amp;originHeight=594&amp;originWidth=1194&amp;size=0&amp;status=done&amp;style=none&amp;width=500","id":"image130"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/4644bcdbc2cd86a45239f5cde43844d0.png#align=left&amp;display=inline&amp;height=249&amp;originHeight=594&amp;originWidth=1194&amp;size=0&amp;status=done&amp;style=none&amp;width=500","id":"image131"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/9d4e3026425cf7f4047e45f6bcf268b5.png#align=left&amp;display=inline&amp;height=295&amp;originHeight=785&amp;originWidth=1343&amp;size=0&amp;status=done&amp;style=none&amp;width=505","id":"image132"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/9d4e3026425cf7f4047e45f6bcf268b5.png#align=left&amp;display=inline&amp;height=295&amp;originHeight=785&amp;originWidth=1343&amp;size=0&amp;status=done&amp;style=none&amp;width=505","id":"image133"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/86647b5f69fa795d59fa15fd03228c43.png#align=left&amp;display=inline&amp;height=338&amp;originHeight=722&amp;originWidth=1200&amp;size=0&amp;status=done&amp;style=none&amp;width=562","id":"image134"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/86647b5f69fa795d59fa15fd03228c43.png#align=left&amp;display=inline&amp;height=338&amp;originHeight=722&amp;originWidth=1200&amp;size=0&amp;status=done&amp;style=none&amp;width=562","id":"image135"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/71771c61ce1ec32cc41f3adb84b136eb.png#align=left&amp;display=inline&amp;height=292&amp;originHeight=646&amp;originWidth=906&amp;size=0&amp;status=done&amp;style=none&amp;width=410","id":"image136"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/71771c61ce1ec32cc41f3adb84b136eb.png#align=left&amp;display=inline&amp;height=292&amp;originHeight=646&amp;originWidth=906&amp;size=0&amp;status=done&amp;style=none&amp;width=410","id":"image137"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/0fb54b807ee88785b2645e0cd8525277.png#align=left&amp;display=inline&amp;height=514&amp;originHeight=1060&amp;originWidth=1433&amp;size=0&amp;status=done&amp;style=none&amp;width=695","id":"image138"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/0fb54b807ee88785b2645e0cd8525277.png#align=left&amp;display=inline&amp;height=514&amp;originHeight=1060&amp;originWidth=1433&amp;size=0&amp;status=done&amp;style=none&amp;width=695","id":"image139"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f9007b01e52c253d2f2c34227f5442d4.png#align=left&amp;display=inline&amp;height=293&amp;originHeight=869&amp;originWidth=1901&amp;size=0&amp;status=done&amp;style=none&amp;width=640","id":"image140"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f9007b01e52c253d2f2c34227f5442d4.png#align=left&amp;display=inline&amp;height=293&amp;originHeight=869&amp;originWidth=1901&amp;size=0&amp;status=done&amp;style=none&amp;width=640","id":"image141"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/e6a66411ffe8876e8ed23794b0e2f285.png#align=left&amp;display=inline&amp;height=303&amp;originHeight=844&amp;originWidth=1876&amp;size=0&amp;status=done&amp;style=none&amp;width=674","id":"image142"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/e6a66411ffe8876e8ed23794b0e2f285.png#align=left&amp;display=inline&amp;height=303&amp;originHeight=844&amp;originWidth=1876&amp;size=0&amp;status=done&amp;style=none&amp;width=674","id":"image143"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/1bddcb112dbc08e28bb003ca3c1ff2e1.png#align=left&amp;display=inline&amp;height=333&amp;originHeight=1012&amp;originWidth=1914&amp;size=0&amp;status=done&amp;style=none&amp;width=630","id":"image144"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/1bddcb112dbc08e28bb003ca3c1ff2e1.png#align=left&amp;display=inline&amp;height=333&amp;originHeight=1012&amp;originWidth=1914&amp;size=0&amp;status=done&amp;style=none&amp;width=630","id":"image145"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/14a121df0d19b0cf60189b0abe2b2976.png#align=left&amp;display=inline&amp;height=331&amp;originHeight=457&amp;originWidth=517&amp;size=0&amp;status=done&amp;style=none&amp;width=375","id":"image146"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/14a121df0d19b0cf60189b0abe2b2976.png#align=left&amp;display=inline&amp;height=331&amp;originHeight=457&amp;originWidth=517&amp;size=0&amp;status=done&amp;style=none&amp;width=375","id":"image147"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/98d09ccd29f7ba8260d752a913bbf88d.png#align=left&amp;display=inline&amp;height=155&amp;originHeight=155&amp;originWidth=1059&amp;size=0&amp;status=done&amp;style=none&amp;width=1059","id":"image148"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/98d09ccd29f7ba8260d752a913bbf88d.png#align=left&amp;display=inline&amp;height=155&amp;originHeight=155&amp;originWidth=1059&amp;size=0&amp;status=done&amp;style=none&amp;width=1059","id":"image149"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/2f0c6888e0000dd91d4765ce910150bc.png#align=left&amp;display=inline&amp;height=678&amp;originHeight=678&amp;originWidth=1378&amp;size=0&amp;status=done&amp;style=none&amp;width=1378","id":"image150"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/2f0c6888e0000dd91d4765ce910150bc.png#align=left&amp;display=inline&amp;height=678&amp;originHeight=678&amp;originWidth=1378&amp;size=0&amp;status=done&amp;style=none&amp;width=1378","id":"image151"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/458508b1dfca655655c6062fcb47e531.png#align=left&amp;display=inline&amp;height=267&amp;originHeight=543&amp;originWidth=1233&amp;size=0&amp;status=done&amp;style=none&amp;width=607","id":"image152"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/458508b1dfca655655c6062fcb47e531.png#align=left&amp;display=inline&amp;height=267&amp;originHeight=543&amp;originWidth=1233&amp;size=0&amp;status=done&amp;style=none&amp;width=607","id":"image153"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/48b56f553c2fc3ee91a41dff515b44c9.png#align=left&amp;display=inline&amp;height=212&amp;originHeight=435&amp;originWidth=840&amp;size=0&amp;status=done&amp;style=none&amp;width=409","id":"image154"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/48b56f553c2fc3ee91a41dff515b44c9.png#align=left&amp;display=inline&amp;height=212&amp;originHeight=435&amp;originWidth=840&amp;size=0&amp;status=done&amp;style=none&amp;width=409","id":"image155"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/e60fc572a52688bf564ea39120b30beb.png#align=left&amp;display=inline&amp;height=431&amp;originHeight=695&amp;originWidth=971&amp;size=0&amp;status=done&amp;style=none&amp;width=602","id":"image156"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/e60fc572a52688bf564ea39120b30beb.png#align=left&amp;display=inline&amp;height=431&amp;originHeight=695&amp;originWidth=971&amp;size=0&amp;status=done&amp;style=none&amp;width=602","id":"image157"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/9ea7e150fdca7dff8ce0d99e50c8f771.png#align=left&amp;display=inline&amp;height=278&amp;originHeight=667&amp;originWidth=1233&amp;size=0&amp;status=done&amp;style=none&amp;width=514","id":"image158"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/9ea7e150fdca7dff8ce0d99e50c8f771.png#align=left&amp;display=inline&amp;height=278&amp;originHeight=667&amp;originWidth=1233&amp;size=0&amp;status=done&amp;style=none&amp;width=514","id":"image159"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/a8861d87a2205c72f5a51a51f61c7025.png#align=left&amp;display=inline&amp;height=335&amp;originHeight=656&amp;originWidth=1202&amp;size=0&amp;status=done&amp;style=none&amp;width=613","id":"image160"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/a8861d87a2205c72f5a51a51f61c7025.png#align=left&amp;display=inline&amp;height=335&amp;originHeight=656&amp;originWidth=1202&amp;size=0&amp;status=done&amp;style=none&amp;width=613","id":"image161"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/8d12b585398167f508c8a80ccbce54a7.png#align=left&amp;display=inline&amp;height=373&amp;originHeight=606&amp;originWidth=1080&amp;size=0&amp;status=done&amp;style=none&amp;width=664","id":"image162"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/8d12b585398167f508c8a80ccbce54a7.png#align=left&amp;display=inline&amp;height=373&amp;originHeight=606&amp;originWidth=1080&amp;size=0&amp;status=done&amp;style=none&amp;width=664","id":"image163"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/a57db800f04d27f9679109dfde0ff55b.png#align=left&amp;display=inline&amp;height=338&amp;originHeight=779&amp;originWidth=1361&amp;size=0&amp;status=done&amp;style=none&amp;width=590","id":"image164"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/a57db800f04d27f9679109dfde0ff55b.png#align=left&amp;display=inline&amp;height=338&amp;originHeight=779&amp;originWidth=1361&amp;size=0&amp;status=done&amp;style=none&amp;width=590","id":"image165"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/d18a1fe061027cf55b8f4a010af2ecd3.png#align=left&amp;display=inline&amp;height=521&amp;originHeight=521&amp;originWidth=1355&amp;size=0&amp;status=done&amp;style=none&amp;width=1355","id":"image166"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/d18a1fe061027cf55b8f4a010af2ecd3.png#align=left&amp;display=inline&amp;height=521&amp;originHeight=521&amp;originWidth=1355&amp;size=0&amp;status=done&amp;style=none&amp;width=1355","id":"image167"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/a71d93cbc09f87348bdd330f6ae6c3f1.png#align=left&amp;display=inline&amp;height=337&amp;originHeight=337&amp;originWidth=1644&amp;size=0&amp;status=done&amp;style=none&amp;width=1644","id":"image168"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/a71d93cbc09f87348bdd330f6ae6c3f1.png#align=left&amp;display=inline&amp;height=337&amp;originHeight=337&amp;originWidth=1644&amp;size=0&amp;status=done&amp;style=none&amp;width=1644","id":"image169"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/df0a4687c977037d86e61f669791bc44.png#align=left&amp;display=inline&amp;height=500&amp;originHeight=500&amp;originWidth=1561&amp;size=0&amp;status=done&amp;style=none&amp;width=1561","id":"image170"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/df0a4687c977037d86e61f669791bc44.png#align=left&amp;display=inline&amp;height=500&amp;originHeight=500&amp;originWidth=1561&amp;size=0&amp;status=done&amp;style=none&amp;width=1561","id":"image171"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/fad2cfad4a6e4964c16ce37d4b8cb3c8.png#align=left&amp;display=inline&amp;height=605&amp;originHeight=937&amp;originWidth=1393&amp;size=0&amp;status=done&amp;style=none&amp;width=899","id":"image172"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/fad2cfad4a6e4964c16ce37d4b8cb3c8.png#align=left&amp;display=inline&amp;height=605&amp;originHeight=937&amp;originWidth=1393&amp;size=0&amp;status=done&amp;style=none&amp;width=899","id":"image173"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/61952dd85a1b05998fd57d061a56e785.png#align=left&amp;display=inline&amp;height=515&amp;originHeight=759&amp;originWidth=1393&amp;size=0&amp;status=done&amp;style=none&amp;width=945","id":"image174"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/61952dd85a1b05998fd57d061a56e785.png#align=left&amp;display=inline&amp;height=515&amp;originHeight=759&amp;originWidth=1393&amp;size=0&amp;status=done&amp;style=none&amp;width=945","id":"image175"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f3a5cbcffd5200f004a12057aae6cbb6.png#align=left&amp;display=inline&amp;height=313&amp;originHeight=313&amp;originWidth=596&amp;size=0&amp;status=done&amp;style=none&amp;width=596","id":"image176"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f3a5cbcffd5200f004a12057aae6cbb6.png#align=left&amp;display=inline&amp;height=313&amp;originHeight=313&amp;originWidth=596&amp;size=0&amp;status=done&amp;style=none&amp;width=596","id":"image177"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/1edd859521e4167aaa28b3a31a12c5e3.png#align=left&amp;display=inline&amp;height=206&amp;originHeight=288&amp;originWidth=1093&amp;size=0&amp;status=done&amp;style=none&amp;width=782","id":"image178"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/1edd859521e4167aaa28b3a31a12c5e3.png#align=left&amp;display=inline&amp;height=206&amp;originHeight=288&amp;originWidth=1093&amp;size=0&amp;status=done&amp;style=none&amp;width=782","id":"image179"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/9f43219d3c9ca87c67b5c2e0156711af.png#align=left&amp;display=inline&amp;height=286&amp;originHeight=358&amp;originWidth=1076&amp;size=0&amp;status=done&amp;style=none&amp;width=859","id":"image180"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/9f43219d3c9ca87c67b5c2e0156711af.png#align=left&amp;display=inline&amp;height=286&amp;originHeight=358&amp;originWidth=1076&amp;size=0&amp;status=done&amp;style=none&amp;width=859","id":"image181"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/89b3926f8a3d9d99476de7260a698fcd.png#align=left&amp;display=inline&amp;height=301&amp;originHeight=415&amp;originWidth=1174&amp;size=0&amp;status=done&amp;style=none&amp;width=851","id":"image182"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/89b3926f8a3d9d99476de7260a698fcd.png#align=left&amp;display=inline&amp;height=301&amp;originHeight=415&amp;originWidth=1174&amp;size=0&amp;status=done&amp;style=none&amp;width=851","id":"image183"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/a1b925469d6fc280030893f9957223a5.png#align=left&amp;display=inline&amp;height=332&amp;originHeight=388&amp;originWidth=1153&amp;size=0&amp;status=done&amp;style=none&amp;width=988","id":"image184"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/a1b925469d6fc280030893f9957223a5.png#align=left&amp;display=inline&amp;height=332&amp;originHeight=388&amp;originWidth=1153&amp;size=0&amp;status=done&amp;style=none&amp;width=988","id":"image185"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/72bbefd1710f118f67708dc6ee2b77aa.png#align=left&amp;display=inline&amp;height=315&amp;originHeight=467&amp;originWidth=1492&amp;size=0&amp;status=done&amp;style=none&amp;width=1006","id":"image186"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/72bbefd1710f118f67708dc6ee2b77aa.png#align=left&amp;display=inline&amp;height=315&amp;originHeight=467&amp;originWidth=1492&amp;size=0&amp;status=done&amp;style=none&amp;width=1006","id":"image187"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/05df1cc9e8f670f3c437905b4c5ca54c.png#align=left&amp;display=inline&amp;height=444&amp;originHeight=697&amp;originWidth=868&amp;size=0&amp;status=done&amp;style=none&amp;width=553","id":"image188"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/05df1cc9e8f670f3c437905b4c5ca54c.png#align=left&amp;display=inline&amp;height=444&amp;originHeight=697&amp;originWidth=868&amp;size=0&amp;status=done&amp;style=none&amp;width=553","id":"image189"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/6042a511a4ec9abf0929acd1a232864f.png#align=left&amp;display=inline&amp;height=438&amp;originHeight=775&amp;originWidth=1212&amp;size=0&amp;status=done&amp;style=none&amp;width=685","id":"image190"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/6042a511a4ec9abf0929acd1a232864f.png#align=left&amp;display=inline&amp;height=438&amp;originHeight=775&amp;originWidth=1212&amp;size=0&amp;status=done&amp;style=none&amp;width=685","id":"image191"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/ddb6044c05dabbfed0fcc6bce9bb87b9.png#align=left&amp;display=inline&amp;height=272&amp;originHeight=272&amp;originWidth=1071&amp;size=0&amp;status=done&amp;style=none&amp;width=1071","id":"image192"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/ddb6044c05dabbfed0fcc6bce9bb87b9.png#align=left&amp;display=inline&amp;height=272&amp;originHeight=272&amp;originWidth=1071&amp;size=0&amp;status=done&amp;style=none&amp;width=1071","id":"image193"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/98a2770f38d48486ac62b293228c7017.png#align=left&amp;display=inline&amp;height=338&amp;originHeight=338&amp;originWidth=936&amp;size=0&amp;status=done&amp;style=none&amp;width=936","id":"image194"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/98a2770f38d48486ac62b293228c7017.png#align=left&amp;display=inline&amp;height=338&amp;originHeight=338&amp;originWidth=936&amp;size=0&amp;status=done&amp;style=none&amp;width=936","id":"image195"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/11476f18ee71523d05c705c752dfbfc3.png#align=left&amp;display=inline&amp;height=602&amp;originHeight=602&amp;originWidth=1007&amp;size=0&amp;status=done&amp;style=none&amp;width=1007","id":"image196"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/11476f18ee71523d05c705c752dfbfc3.png#align=left&amp;display=inline&amp;height=602&amp;originHeight=602&amp;originWidth=1007&amp;size=0&amp;status=done&amp;style=none&amp;width=1007","id":"image197"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f91c9c903cebda0f1ad0b6fc630b260d.png#align=left&amp;display=inline&amp;height=601&amp;originHeight=601&amp;originWidth=1174&amp;size=0&amp;status=done&amp;style=none&amp;width=1174","id":"image198"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f91c9c903cebda0f1ad0b6fc630b260d.png#align=left&amp;display=inline&amp;height=601&amp;originHeight=601&amp;originWidth=1174&amp;size=0&amp;status=done&amp;style=none&amp;width=1174","id":"image199"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/12ff92349732b93d695a6f32a70b8e64.png#align=left&amp;display=inline&amp;height=322&amp;originHeight=711&amp;originWidth=1333&amp;size=0&amp;status=done&amp;style=none&amp;width=604","id":"image200"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/12ff92349732b93d695a6f32a70b8e64.png#align=left&amp;display=inline&amp;height=322&amp;originHeight=711&amp;originWidth=1333&amp;size=0&amp;status=done&amp;style=none&amp;width=604","id":"image201"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/e62695f40d7ff40468ed6b898aa0226b.png#align=left&amp;display=inline&amp;height=426&amp;originHeight=789&amp;originWidth=1613&amp;size=0&amp;status=done&amp;style=none&amp;width=870","id":"image202"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/e62695f40d7ff40468ed6b898aa0226b.png#align=left&amp;display=inline&amp;height=426&amp;originHeight=789&amp;originWidth=1613&amp;size=0&amp;status=done&amp;style=none&amp;width=870","id":"image203"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/e1b6c621976b4ee13e0b4b8fd47da7a1.png#align=left&amp;display=inline&amp;height=727&amp;originHeight=727&amp;originWidth=1415&amp;size=0&amp;status=done&amp;style=none&amp;width=1415","id":"image204"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/e1b6c621976b4ee13e0b4b8fd47da7a1.png#align=left&amp;display=inline&amp;height=727&amp;originHeight=727&amp;originWidth=1415&amp;size=0&amp;status=done&amp;style=none&amp;width=1415","id":"image205"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/9e7dbf5844942984b020ba5231a5c4b6.png#align=left&amp;display=inline&amp;height=436&amp;originHeight=436&amp;originWidth=767&amp;size=0&amp;status=done&amp;style=none&amp;width=767","id":"image206"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/9e7dbf5844942984b020ba5231a5c4b6.png#align=left&amp;display=inline&amp;height=436&amp;originHeight=436&amp;originWidth=767&amp;size=0&amp;status=done&amp;style=none&amp;width=767","id":"image207"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/e6a99512372eef387115f29b31b1ce17.png#align=left&amp;display=inline&amp;height=384&amp;originHeight=690&amp;originWidth=1132&amp;size=0&amp;status=done&amp;style=none&amp;width=630","id":"image208"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/e6a99512372eef387115f29b31b1ce17.png#align=left&amp;display=inline&amp;height=384&amp;originHeight=690&amp;originWidth=1132&amp;size=0&amp;status=done&amp;style=none&amp;width=630","id":"image209"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/3f35238bf68bf3153ddefec56887f407.png#align=left&amp;display=inline&amp;height=443&amp;originHeight=677&amp;originWidth=1139&amp;size=0&amp;status=done&amp;style=none&amp;width=745","id":"image210"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/3f35238bf68bf3153ddefec56887f407.png#align=left&amp;display=inline&amp;height=443&amp;originHeight=677&amp;originWidth=1139&amp;size=0&amp;status=done&amp;style=none&amp;width=745","id":"image211"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/99fd5bdfa0335828754428b39a295fa9.png#align=left&amp;display=inline&amp;height=357&amp;originHeight=630&amp;originWidth=1003&amp;size=0&amp;status=done&amp;style=none&amp;width=569","id":"image212"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/99fd5bdfa0335828754428b39a295fa9.png#align=left&amp;display=inline&amp;height=357&amp;originHeight=630&amp;originWidth=1003&amp;size=0&amp;status=done&amp;style=none&amp;width=569","id":"image213"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/1f54e1d505839d30407c45474970cd8f.png#align=left&amp;display=inline&amp;height=539&amp;originHeight=539&amp;originWidth=1186&amp;size=0&amp;status=done&amp;style=none&amp;width=1186","id":"image214"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/1f54e1d505839d30407c45474970cd8f.png#align=left&amp;display=inline&amp;height=539&amp;originHeight=539&amp;originWidth=1186&amp;size=0&amp;status=done&amp;style=none&amp;width=1186","id":"image215"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/d29b67b0f0537446343e83d9c0678c9d.png#align=left&amp;display=inline&amp;height=621&amp;originHeight=621&amp;originWidth=701&amp;size=0&amp;status=done&amp;style=none&amp;width=701","id":"image216"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/d29b67b0f0537446343e83d9c0678c9d.png#align=left&amp;display=inline&amp;height=621&amp;originHeight=621&amp;originWidth=701&amp;size=0&amp;status=done&amp;style=none&amp;width=701","id":"image217"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/124b68d7153d04b088b4174987f3f72b.png#align=left&amp;display=inline&amp;height=342&amp;originHeight=484&amp;originWidth=1019&amp;size=0&amp;status=done&amp;style=none&amp;width=721","id":"image218"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/124b68d7153d04b088b4174987f3f72b.png#align=left&amp;display=inline&amp;height=342&amp;originHeight=484&amp;originWidth=1019&amp;size=0&amp;status=done&amp;style=none&amp;width=721","id":"image219"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/d58d7c710c9e8c1dd6a00c342fa0efdf.png#align=left&amp;display=inline&amp;height=140&amp;originHeight=281&amp;originWidth=948&amp;size=0&amp;status=done&amp;style=none&amp;width=472","id":"image220"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/d58d7c710c9e8c1dd6a00c342fa0efdf.png#align=left&amp;display=inline&amp;height=140&amp;originHeight=281&amp;originWidth=948&amp;size=0&amp;status=done&amp;style=none&amp;width=472","id":"image221"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/8281ddf278f1a97f41efe0fc59c38472.png#align=left&amp;display=inline&amp;height=275&amp;originHeight=412&amp;originWidth=950&amp;size=0&amp;status=done&amp;style=none&amp;width=633","id":"image222"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/8281ddf278f1a97f41efe0fc59c38472.png#align=left&amp;display=inline&amp;height=275&amp;originHeight=412&amp;originWidth=950&amp;size=0&amp;status=done&amp;style=none&amp;width=633","id":"image223"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f48bbf2cf59fdf950412184dc93f1f25.png#align=left&amp;display=inline&amp;height=377&amp;originHeight=719&amp;originWidth=1378&amp;size=0&amp;status=done&amp;style=none&amp;width=723","id":"image224"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f48bbf2cf59fdf950412184dc93f1f25.png#align=left&amp;display=inline&amp;height=377&amp;originHeight=719&amp;originWidth=1378&amp;size=0&amp;status=done&amp;style=none&amp;width=723","id":"image225"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f3696bad50b050ef307aadf8f994f7e4.png#align=left&amp;display=inline&amp;height=568&amp;originHeight=568&amp;originWidth=892&amp;size=0&amp;status=done&amp;style=none&amp;width=892","id":"image226"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f3696bad50b050ef307aadf8f994f7e4.png#align=left&amp;display=inline&amp;height=568&amp;originHeight=568&amp;originWidth=892&amp;size=0&amp;status=done&amp;style=none&amp;width=892","id":"image227"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/549f520c57c23fbddad9e2f7c5d78297.png#align=left&amp;display=inline&amp;height=608&amp;originHeight=608&amp;originWidth=595&amp;size=0&amp;status=done&amp;style=none&amp;width=595","id":"image228"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/549f520c57c23fbddad9e2f7c5d78297.png#align=left&amp;display=inline&amp;height=608&amp;originHeight=608&amp;originWidth=595&amp;size=0&amp;status=done&amp;style=none&amp;width=595","id":"image229"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/03cc09838575eb9f51e07b2dcf8f8bec.png#align=left&amp;display=inline&amp;height=404&amp;originHeight=404&amp;originWidth=1078&amp;size=0&amp;status=done&amp;style=none&amp;width=1078","id":"image230"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/03cc09838575eb9f51e07b2dcf8f8bec.png#align=left&amp;display=inline&amp;height=404&amp;originHeight=404&amp;originWidth=1078&amp;size=0&amp;status=done&amp;style=none&amp;width=1078","id":"image231"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/c89390a431ef371a50539c50d3a8e5be.png#align=left&amp;display=inline&amp;height=265&amp;originHeight=265&amp;originWidth=612&amp;size=0&amp;status=done&amp;style=none&amp;width=612","id":"image232"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/c89390a431ef371a50539c50d3a8e5be.png#align=left&amp;display=inline&amp;height=265&amp;originHeight=265&amp;originWidth=612&amp;size=0&amp;status=done&amp;style=none&amp;width=612","id":"image233"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/2b03d2abe023d6ec60ac3e5ff73cec5f.png#align=left&amp;display=inline&amp;height=825&amp;originHeight=825&amp;originWidth=1717&amp;size=0&amp;status=done&amp;style=none&amp;width=1717","id":"image234"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/2b03d2abe023d6ec60ac3e5ff73cec5f.png#align=left&amp;display=inline&amp;height=825&amp;originHeight=825&amp;originWidth=1717&amp;size=0&amp;status=done&amp;style=none&amp;width=1717","id":"image235"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/97ef4930fcc3f4e435056ec484d8986d.png#align=left&amp;display=inline&amp;height=730&amp;originHeight=730&amp;originWidth=864&amp;size=0&amp;status=done&amp;style=none&amp;width=864","id":"image236"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/97ef4930fcc3f4e435056ec484d8986d.png#align=left&amp;display=inline&amp;height=730&amp;originHeight=730&amp;originWidth=864&amp;size=0&amp;status=done&amp;style=none&amp;width=864","id":"image237"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/3b0515d08c506bb144fb446a0aeb80b2.png#align=left&amp;display=inline&amp;height=714&amp;originHeight=714&amp;originWidth=693&amp;size=0&amp;status=done&amp;style=none&amp;width=693","id":"image238"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/3b0515d08c506bb144fb446a0aeb80b2.png#align=left&amp;display=inline&amp;height=714&amp;originHeight=714&amp;originWidth=693&amp;size=0&amp;status=done&amp;style=none&amp;width=693","id":"image239"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/242a1822c248d4759cdac856ea060447.png#align=left&amp;display=inline&amp;height=550&amp;originHeight=550&amp;originWidth=1001&amp;size=0&amp;status=done&amp;style=none&amp;width=1001","id":"image240"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/242a1822c248d4759cdac856ea060447.png#align=left&amp;display=inline&amp;height=550&amp;originHeight=550&amp;originWidth=1001&amp;size=0&amp;status=done&amp;style=none&amp;width=1001","id":"image241"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/fab6e7987228d423193f4080c1512947.png#align=left&amp;display=inline&amp;height=581&amp;name=image.png&amp;originHeight=581&amp;originWidth=1344&amp;size=900777&amp;status=done&amp;style=none&amp;width=1344","id":"image242"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/fab6e7987228d423193f4080c1512947.png#align=left&amp;display=inline&amp;height=581&amp;name=image.png&amp;originHeight=581&amp;originWidth=1344&amp;size=900777&amp;status=done&amp;style=none&amp;width=1344","id":"image243"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/72ca217d61741117a5171593ae13b884.png#align=left&amp;display=inline&amp;height=300&amp;originHeight=300&amp;originWidth=857&amp;size=0&amp;status=done&amp;style=none&amp;width=857","id":"image244"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/72ca217d61741117a5171593ae13b884.png#align=left&amp;display=inline&amp;height=300&amp;originHeight=300&amp;originWidth=857&amp;size=0&amp;status=done&amp;style=none&amp;width=857","id":"image245"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/178cbab1296af0b33157bdb6ab7f7df2.png#align=left&amp;display=inline&amp;height=215&amp;originHeight=215&amp;originWidth=1382&amp;size=0&amp;status=done&amp;style=none&amp;width=1382","id":"image246"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/178cbab1296af0b33157bdb6ab7f7df2.png#align=left&amp;display=inline&amp;height=215&amp;originHeight=215&amp;originWidth=1382&amp;size=0&amp;status=done&amp;style=none&amp;width=1382","id":"image247"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f64d08fb4b5e5cd168282c50320bcfbe.png#align=left&amp;display=inline&amp;height=508&amp;originHeight=508&amp;originWidth=998&amp;size=0&amp;status=done&amp;style=none&amp;width=998","id":"image248"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f64d08fb4b5e5cd168282c50320bcfbe.png#align=left&amp;display=inline&amp;height=508&amp;originHeight=508&amp;originWidth=998&amp;size=0&amp;status=done&amp;style=none&amp;width=998","id":"image249"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f8dbfdf6671b9312823ba9346cb340e6.png#align=left&amp;display=inline&amp;height=473&amp;originHeight=473&amp;originWidth=992&amp;size=0&amp;status=done&amp;style=none&amp;width=992","id":"image250"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f8dbfdf6671b9312823ba9346cb340e6.png#align=left&amp;display=inline&amp;height=473&amp;originHeight=473&amp;originWidth=992&amp;size=0&amp;status=done&amp;style=none&amp;width=992","id":"image251"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/e15be981bfa4210a318b2c2357a5bdfe.png#align=left&amp;display=inline&amp;height=842&amp;originHeight=842&amp;originWidth=1880&amp;size=0&amp;status=done&amp;style=none&amp;width=1880","id":"image252"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/e15be981bfa4210a318b2c2357a5bdfe.png#align=left&amp;display=inline&amp;height=842&amp;originHeight=842&amp;originWidth=1880&amp;size=0&amp;status=done&amp;style=none&amp;width=1880","id":"image253"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/c85efb227379715df641b3a3189125ee.png#align=left&amp;display=inline&amp;height=869&amp;originHeight=869&amp;originWidth=1870&amp;size=0&amp;status=done&amp;style=none&amp;width=1870","id":"image254"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/c85efb227379715df641b3a3189125ee.png#align=left&amp;display=inline&amp;height=869&amp;originHeight=869&amp;originWidth=1870&amp;size=0&amp;status=done&amp;style=none&amp;width=1870","id":"image255"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/e2f5c793e84a0ee08b9931c09b13531d.png#align=left&amp;display=inline&amp;height=850&amp;originHeight=850&amp;originWidth=1893&amp;size=0&amp;status=done&amp;style=none&amp;width=1893","id":"image256"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/e2f5c793e84a0ee08b9931c09b13531d.png#align=left&amp;display=inline&amp;height=850&amp;originHeight=850&amp;originWidth=1893&amp;size=0&amp;status=done&amp;style=none&amp;width=1893","id":"image257"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/8a88bb51475f273b6c895d6ec576dbc4.png#align=left&amp;display=inline&amp;height=848&amp;originHeight=848&amp;originWidth=1909&amp;size=0&amp;status=done&amp;style=none&amp;width=1909","id":"image258"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/8a88bb51475f273b6c895d6ec576dbc4.png#align=left&amp;display=inline&amp;height=848&amp;originHeight=848&amp;originWidth=1909&amp;size=0&amp;status=done&amp;style=none&amp;width=1909","id":"image259"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f96f7b49dc84c92799e7fa0596710db4.png#align=left&amp;display=inline&amp;height=838&amp;originHeight=838&amp;originWidth=1851&amp;size=0&amp;status=done&amp;style=none&amp;width=1851","id":"image260"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f96f7b49dc84c92799e7fa0596710db4.png#align=left&amp;display=inline&amp;height=838&amp;originHeight=838&amp;originWidth=1851&amp;size=0&amp;status=done&amp;style=none&amp;width=1851","id":"image261"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/88fcd9e9ff25e4a8f0bdc873d73075e7.png#align=left&amp;display=inline&amp;height=569&amp;originHeight=569&amp;originWidth=1216&amp;size=0&amp;status=done&amp;style=none&amp;width=1216","id":"image262"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/88fcd9e9ff25e4a8f0bdc873d73075e7.png#align=left&amp;display=inline&amp;height=569&amp;originHeight=569&amp;originWidth=1216&amp;size=0&amp;status=done&amp;style=none&amp;width=1216","id":"image263"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f194172465fa125ea1e2ce2f7a4ba355.png#align=left&amp;display=inline&amp;height=598&amp;originHeight=598&amp;originWidth=1149&amp;size=0&amp;status=done&amp;style=none&amp;width=1149","id":"image264"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/f194172465fa125ea1e2ce2f7a4ba355.png#align=left&amp;display=inline&amp;height=598&amp;originHeight=598&amp;originWidth=1149&amp;size=0&amp;status=done&amp;style=none&amp;width=1149","id":"image265"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/06966ab87176f04c0a513d47fa9589c7.png#align=left&amp;display=inline&amp;height=886&amp;originHeight=886&amp;originWidth=1801&amp;size=0&amp;status=done&amp;style=none&amp;width=1801","id":"image266"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/06966ab87176f04c0a513d47fa9589c7.png#align=left&amp;display=inline&amp;height=886&amp;originHeight=886&amp;originWidth=1801&amp;size=0&amp;status=done&amp;style=none&amp;width=1801","id":"image267"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/c007d81f6cc6e0697fad1a56df3eab50.png#align=left&amp;display=inline&amp;height=696&amp;originHeight=696&amp;originWidth=1147&amp;size=0&amp;status=done&amp;style=none&amp;width=1147","id":"image268"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/c007d81f6cc6e0697fad1a56df3eab50.png#align=left&amp;display=inline&amp;height=696&amp;originHeight=696&amp;originWidth=1147&amp;size=0&amp;status=done&amp;style=none&amp;width=1147","id":"image269"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/37b720b4196e7dcfb8bbc40ddbdfe06f.png#align=left&amp;display=inline&amp;height=566&amp;originHeight=566&amp;originWidth=1189&amp;size=0&amp;status=done&amp;style=none&amp;width=1189","id":"image270"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/37b720b4196e7dcfb8bbc40ddbdfe06f.png#align=left&amp;display=inline&amp;height=566&amp;originHeight=566&amp;originWidth=1189&amp;size=0&amp;status=done&amp;style=none&amp;width=1189","id":"image271"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/7b5a34be5fea061cc36c7faf4b768408.png#align=left&amp;display=inline&amp;height=498&amp;originHeight=498&amp;originWidth=991&amp;size=0&amp;status=done&amp;style=none&amp;width=991","id":"image272"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/7b5a34be5fea061cc36c7faf4b768408.png#align=left&amp;display=inline&amp;height=498&amp;originHeight=498&amp;originWidth=991&amp;size=0&amp;status=done&amp;style=none&amp;width=991","id":"image273"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/3088a5f6706cc99480426f8082094ec0.png#align=left&amp;display=inline&amp;height=668&amp;originHeight=668&amp;originWidth=1212&amp;size=0&amp;status=done&amp;style=none&amp;width=1212","id":"image274"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/3088a5f6706cc99480426f8082094ec0.png#align=left&amp;display=inline&amp;height=668&amp;originHeight=668&amp;originWidth=1212&amp;size=0&amp;status=done&amp;style=none&amp;width=1212","id":"image275"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/056b4a8dfe21326a24d899d51fe0095b.png#align=left&amp;display=inline&amp;height=716&amp;originHeight=716&amp;originWidth=1306&amp;size=0&amp;status=done&amp;style=none&amp;width=1306","id":"image276"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/056b4a8dfe21326a24d899d51fe0095b.png#align=left&amp;display=inline&amp;height=716&amp;originHeight=716&amp;originWidth=1306&amp;size=0&amp;status=done&amp;style=none&amp;width=1306","id":"image277"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/d469f4cd6d1d1c968142fe1d0fecaf49.png#align=left&amp;display=inline&amp;height=625&amp;originHeight=625&amp;originWidth=1868&amp;size=0&amp;status=done&amp;style=none&amp;width=1868","id":"image278"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/d469f4cd6d1d1c968142fe1d0fecaf49.png#align=left&amp;display=inline&amp;height=625&amp;originHeight=625&amp;originWidth=1868&amp;size=0&amp;status=done&amp;style=none&amp;width=1868","id":"image279"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/c7d47b5ddd5a9f0d95b0a6bd2af9636c.png#align=left&amp;display=inline&amp;height=622&amp;originHeight=622&amp;originWidth=1906&amp;size=0&amp;status=done&amp;style=none&amp;width=1906","id":"image280"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/c7d47b5ddd5a9f0d95b0a6bd2af9636c.png#align=left&amp;display=inline&amp;height=622&amp;originHeight=622&amp;originWidth=1906&amp;size=0&amp;status=done&amp;style=none&amp;width=1906","id":"image281"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/860b0716f3b347d081b34c0d61791da4.png#align=left&amp;display=inline&amp;height=687&amp;originHeight=687&amp;originWidth=1909&amp;size=0&amp;status=done&amp;style=none&amp;width=1909","id":"image282"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/860b0716f3b347d081b34c0d61791da4.png#align=left&amp;display=inline&amp;height=687&amp;originHeight=687&amp;originWidth=1909&amp;size=0&amp;status=done&amp;style=none&amp;width=1909","id":"image283"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/4d300bda6714e32c1fed19fe271f8e30.png#align=left&amp;display=inline&amp;height=516&amp;originHeight=516&amp;originWidth=1900&amp;size=0&amp;status=done&amp;style=none&amp;width=1900","id":"image284"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/4d300bda6714e32c1fed19fe271f8e30.png#align=left&amp;display=inline&amp;height=516&amp;originHeight=516&amp;originWidth=1900&amp;size=0&amp;status=done&amp;style=none&amp;width=1900","id":"image285"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/dee56b9db94673b9799d0482602bda68.png#align=left&amp;display=inline&amp;height=895&amp;originHeight=895&amp;originWidth=1890&amp;size=0&amp;status=done&amp;style=none&amp;width=1890","id":"image286"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/dee56b9db94673b9799d0482602bda68.png#align=left&amp;display=inline&amp;height=895&amp;originHeight=895&amp;originWidth=1890&amp;size=0&amp;status=done&amp;style=none&amp;width=1890","id":"image287"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/c81050989fbef5456d48a06cc88efff1.png#align=left&amp;display=inline&amp;height=676&amp;originHeight=676&amp;originWidth=1806&amp;size=0&amp;status=done&amp;style=none&amp;width=1806","id":"image288"},{"imagesurl":"https:\/\/img-blog.csdnimg.cn\/img_convert\/c81050989fbef5456d48a06cc88efff1.png#align=left&amp;display=inline&amp;height=676&amp;originHeight=676&amp;originWidth=1806&amp;size=0&amp;status=done&amp;style=none&amp;width=1806","id":"image289"}],"videoAdId":"","listAd":"0","listAdId":"","listAdEvery":6,"total_comments":0,"category_name":"\u672a\u5206\u7c7b","post_date":"2023-08-28","like_count":"0","praiseWord":"\u9f13\u52b1","copyright_state":"","excitationAd":"0","rewardedVideoAdId":"","detailAdId":"","detailAd":"0","enterpriseMinapp":"0","audios":[],"postImageUrl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2023\/05\/20230519082947553.jpg","avatarurls":[],"related_posts":null,"pageviews":279,"next_post_id":3099,"next_post_title":"\u8bb0\u4e00\u6b21 JVM CPU \u4f7f\u7528\u7387\u98d9\u9ad8\u95ee\u9898\u7684\u6392\u67e5\u8fc7\u7a0b","previous_post_id":3048,"previous_post_title":"RSA\u52a0\u5bc6\u89e3\u5bc6","_links":{"self":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts\/2915","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/comments?post=2915"}],"version-history":[{"count":0,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts\/2915\/revisions"}],"wp:attachment":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/media?parent=2915"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/categories?post=2915"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/tags?post=2915"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}