{"id":1521,"date":"2016-03-30T10:50:58","date_gmt":"2016-03-30T02:50:58","guid":{"rendered":"https:\/\/ai.zhousir.top\/?p=1521"},"modified":"2026-08-18T13:20:31","modified_gmt":"2026-08-18T05:20:31","slug":"java%e5%b7%a5%e7%a8%8b%e5%b8%88%e6%88%90%e7%a5%9e%e4%b9%8b%e8%b7%af","status":"publish","type":"post","link":"https:\/\/ai.zhousir.top\/?p=1521","title":{"rendered":"Java\u5de5\u7a0b\u5e08\u6210\u795e\u4e4b\u8def"},"content":{"rendered":"<section id=\"wenyan\" style=\"font-family: system-ui, 'Apple Color Emoji', 'Segoe UI', 'Segoe UI Symbol', 'Noto Sans', Roboto, sans-serif; line-height: 1.75; font-size: 16px; color: #000000; caret-color: #000000;\" data-provider=\"WenYan\">\n<p style=\"margin: 1em 0px;\">\u8fd9\u662f\u4e00\u4efd<strong style=\"color: #4870ac;\">Java \u5de5\u7a0b\u5e08\u6210\u795e\u4e4b\u8def<\/strong>\uff1a\u6309\u57fa\u7840\u3001\u8fdb\u9636\u3001\u9ad8\u7ea7\u3001\u6269\u5c55\u548c\u63a8\u8350\u4e66\u7c4d\u6392\u4e0b\u6765\uff0c\u6bcf\u6761\u90fd\u5e26\u7740\u6e90\u7801\u5165\u53e3\u3001\u5de5\u5177\u548c\u53c2\u8003\u94fe\u63a5\uff0c\u4e0d\u662f\u4e00\u5f20 5KB \u7684\u901f\u6210\u6e05\u5355\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u57fa\u7840\u7bc7\u4ece <strong style=\"color: #4870ac;\">JVM<\/strong> \u5185\u5b58\u6a21\u578b\u3001jps\/jstack\/jmap\uff0c\u5199\u5230\u96c6\u5408\u3001IO\/NIO\u3001\u53cd\u5c04\u3001\u5e8f\u5217\u5316\u548c\u5e76\u53d1\uff08\u542b volatile \u4e0e\u7ebf\u7a0b\u5b89\u5168\u793a\u4f8b\uff09\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u8fdb\u9636\u7bc7\u8986\u76d6\u5b57\u8282\u7801\u4e0e javap \u7ec3\u4e60\u3001\u8bbe\u8ba1\u6a21\u5f0f\u3001\u7f51\u7edc\u4e0e HTTP \u670d\u52a1\u5668\u3001Spring\/iBatis \u548c\u5e94\u7528\u670d\u52a1\u5668\uff1b\u9ad8\u7ea7\u7bc7\u6709\u7f16\u8bd1\u539f\u7406 DSL\u3001\u5b58\u50a8\u3001\u5927\u6570\u636e\u7ec4\u4ef6\u548c\u5b89\u5168\u653b\u51fb\u9762\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u6269\u5c55\u7bc7\u8865\u4e91\u8ba1\u7b97\u3001\u865a\u62df\u5316\u3001\u76d1\u63a7\u3001Git\/Maven\/Gradle\u3001\u7f16\u7801\u4e0e\u65f6\u95f4\u672c\u8d28\uff0c\u4ee5\u53ca JavaScript\/HTML5\u3002\u6587\u4e2d\u4ee3\u7801\u5757\u4e0e\u5168\u90e8\u94fe\u63a5\u539f\u6837\u4fdd\u7559\u3002<\/p>\n<p><!--more--><\/p>\n<table style=\"display: table; text-align: left; overflow: auto; border-collapse: collapse; margin: 1.4em auto; max-width: 100%; table-layout: fixed; overflow-wrap: break-word; word-break: break-all;\" width=\"800\">\n<thead>\n<tr>\n<th style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top; text-align: center; font-weight: bold; color: #4870ac; background: #f7f7f7;\">\u7bc7\u7ae0<\/th>\n<th style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top; text-align: center; font-weight: bold; color: #4870ac; background: #f7f7f7;\">\u8986\u76d6<\/th>\n<th style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top; text-align: center; font-weight: bold; color: #4870ac; background: #f7f7f7;\">\u600e\u4e48\u7ec3<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u57fa\u7840\u7bc7<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">JVM \/ Java \u57fa\u7840 \/ \u5e76\u53d1<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u8bfb JDK \u6e90\u7801\uff0c\u5199 OOM\uff0c\u8dd1 jstack\/jmap<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u8fdb\u9636\u7bc7<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u5b57\u8282\u7801 \/ \u8bbe\u8ba1\u6a21\u5f0f \/ \u7f51\u7edc \/ \u6846\u67b6<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u624b\u5199 javap\u3001AOP\u3001HTTP \u670d\u52a1\u5668<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u9ad8\u7ea7\u7bc7<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u7f16\u8bd1\u539f\u7406 \/ \u5b58\u50a8 \/ \u5927\u6570\u636e \/ \u5b89\u5168<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">DSL \u7b5b\u9009\u3001\u90e8\u7f72 ZK\/Hadoop\u3001HTTPS \u8bc1\u4e66<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u6269\u5c55\u7bc7<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u4e91 \/ \u865a\u62df\u5316 \/ \u76d1\u63a7 \/ \u5c0f\u8bed\u79cd \/ \u524d\u7aef<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">Git\/Maven\/Gradle + \u7f16\u7801\u4e0e\u65f6\u533a\u5b9e\u9a8c<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u63a8\u8350\u4e66\u7c4d<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">JVM\u3001\u67b6\u6784\u3001\u7b97\u6cd5\u3001\u641c\u7d22\u3001JS<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u5bf9\u7167\u8def\u5f84\u9009\u4e66\uff0c\u800c\u4e0d\u662f\u4e00\u6b21\u8bfb\u5b8c<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u4e00\u3001\u57fa\u7840\u7bc7<\/h2>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.1 JVM<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.1.1. Java\u5185\u5b58\u6a21\u578b\uff0cJava\u5185\u5b58\u7ba1\u7406\uff0cJava\u5806\u548c\u6808\uff0c\u5783\u573e\u56de\u6536<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/www.jcp.org\/en\/jsr\/detail?id=133\">http:\/\/www.jcp.org\/en\/jsr\/detail?id=133<\/a><\/p>\n<p><a href=\"http:\/\/ifeve.com\/jmm-faq\/\">http:\/\/ifeve.com\/jmm-faq\/<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.1.2. \u4e86\u89e3JVM\u5404\u79cd\u53c2\u6570\u53ca\u8c03\u4f18<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.1.3. \u5b66\u4e60\u4f7f\u7528Java\u5de5\u5177<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/www.hollischuang.com\/archives\/105\">jps<\/a>, <a href=\"http:\/\/www.hollischuang.com\/archives\/110\">jstack<\/a>, <a href=\"http:\/\/www.hollischuang.com\/archives\/303\">jmap<\/a>, jconsole, jinfo, jhat, javap, \u2026<\/p>\n<p><a href=\"http:\/\/kenai.com\/projects\/btrace\">http:\/\/kenai.com\/projects\/btrace<\/a><\/p>\n<p><a href=\"http:\/\/www.crashub.org\/\">http:\/\/www.crashub.org\/<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/taobao\/TProfiler\">https:\/\/github.com\/taobao\/TProfiler<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/CSUG\/HouseMD\">https:\/\/github.com\/CSUG\/HouseMD<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/CSUG\/HouseMD\">http:\/\/wiki.cyclopsgroup.org\/jmxterm<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/jlusdy\/TBJMap\">https:\/\/github.com\/jlusdy\/TBJMap<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.1.4. \u5b66\u4e60Java\u8bca\u65ad\u5de5\u5177<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/www.eclipse.org\/mat\/\">http:\/\/www.eclipse.org\/mat\/<\/a><\/p>\n<p><a href=\"http:\/\/visualvm.java.net\/oqlhelp.html\">http:\/\/visualvm.java.net\/oqlhelp.html<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.1.5. \u81ea\u5df1\u7f16\u5199\u5404\u79cdoutofmemory\uff0cstackoverflow\u7a0b\u5e8f<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\nHeapOutOfMemory<\/p>\n<p>Young OutOfMemory<\/p>\n<p>MethodArea OutOfMemory<\/p>\n<p>ConstantPool OutOfMemory<\/p>\n<p>DirectMemory OutOfMemory<\/p>\n<p>Stack OutOfMemory Stack OverFlow\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.1.6. \u4f7f\u7528\u5de5\u5177\u5c1d\u8bd5\u89e3\u51b3\u4ee5\u4e0b\u95ee\u9898\uff0c\u5e76\u5199\u4e0b\u603b\u7ed3<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n\u5f53\u4e00\u4e2aJava\u7a0b\u5e8f\u54cd\u5e94\u5f88\u6162\u65f6\u5982\u4f55\u67e5\u627e\u95ee\u9898 \u5f53\u4e00\u4e2aJava\u7a0b\u5e8f\u9891\u7e41FullGC\u65f6\u5982\u4f55\u89e3\u51b3\u95ee\u9898\uff0c\u5982\u4f55\u67e5\u770b\u5783\u573e\u56de\u6536\u65e5\u5fd7 \u5f53\u4e00\u4e2aJava\u5e94\u7528\u53d1\u751fOutOfMemory\u65f6\u8be5\u5982\u4f55\u89e3\u51b3\uff0c\u5e74\u8f7b\u4ee3\u3001\u5e74\u8001\u4ee3\u3001\u6c38\u4e45\u4ee3\u89e3\u51b3\u529e\u6cd5\u4e0d\u540c\uff0c\u5bfc\u81f4\u539f\u56e0\u4e5f\u4e0d\u540c\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.1.7. \u53c2\u8003\u8d44\u6599<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/docs.oracle.com\/javase\/specs\/jvms\/se7\/html\/\">http:\/\/docs.oracle.com\/javase\/specs\/jvms\/se7\/html\/<\/a><\/p>\n<p><a href=\"http:\/\/www.cs.umd.edu\/~pugh\/java\/memoryModel\/\">http:\/\/www.cs.umd.edu\/~pugh\/java\/memoryModel\/<\/a><\/p>\n<p><a href=\"http:\/\/gee.cs.oswego.edu\/dl\/jmm\/cookbook.html\">http:\/\/gee.cs.oswego.edu\/dl\/jmm\/cookbook.html<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2. Java\u57fa\u7840\u77e5\u8bc6<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.1. \u9605\u8bfb\u6e90\u4ee3\u7801<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.lang.String<\/code> <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.lang.Integer`` java.lang.Long<\/code> <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.lang.Enum<\/code><code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.math.BigDecimal<\/code> <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.lang.ThreadLocal<\/code> <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.lang.ClassLoader &amp; java.net.URLClassLoader<\/code> <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.util.ArrayList &amp; java.util.LinkedList`` java.util.HashMap &amp; java.util.LinkedHashMap &amp; java.util.TreeMap<\/code> <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.util.HashSet &amp; java.util.LinkedHashSet &amp; java.util.TreeSet<\/code>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.2. \u719f\u6089Java\u4e2d\u5404\u79cd\u53d8\u91cf\u7c7b\u578b<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.3. \u719f\u6089Java String\u7684\u4f7f\u7528\uff0c\u719f\u6089String\u7684\u5404\u79cd\u51fd\u6570<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.4. \u719f\u6089Java\u4e2d\u5404\u79cd\u5173\u952e\u5b57<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.5. \u5b66\u4f1a\u4f7f\u7528List\uff0cMap\uff0cStack\uff0cQueue\uff0cSet<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n\u4e0a\u8ff0\u6570\u636e\u7ed3\u6784\u7684\u904d\u5386 \u4e0a\u8ff0\u6570\u636e\u7ed3\u6784\u7684\u4f7f\u7528\u573a\u666f Java\u5b9e\u73b0\u5bf9<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">Array<\/code>\/<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">List<\/code>\u6392\u5e8f<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.uti.Arrays.sort()<\/code> <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.util.Collections.sort()<\/code> Java\u5b9e\u73b0\u5bf9List\u53bb\u91cd Java\u5b9e\u73b0\u5bf9List\u53bb\u91cd\uff0c\u5e76\u4e14\u9700\u8981\u4fdd\u7559\u6570\u636e\u539f\u59cb\u7684\u51fa\u73b0\u987a\u5e8f Java\u5b9e\u73b0\u6700\u8fd1\u6700\u5c11\u4f7f\u7528cache\uff0c\u7528<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">LinkedHashMap<\/code>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.6. Java IO&amp;Java NIO\uff0c\u5e76\u5b66\u4f1a\u4f7f\u7528<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.io.*<\/code> <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.nio.*<\/code> nio\u548creactor\u8bbe\u8ba1\u6a21\u5f0f \u6587\u4ef6\u7f16\u7801\uff0c\u5b57\u7b26\u96c6\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.7. Java\u53cd\u5c04\u4e0ejavassist<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n\u53cd\u5c04\u4e0e\u5de5\u5382\u6a21\u5f0f <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.lang.reflect.*<\/code>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.8. Java\u5e8f\u5217\u5316<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.io. Serializable<\/code> \u4ec0\u4e48\u662f\u5e8f\u5217\u5316\uff0c\u4e3a\u4ec0\u4e48\u5e8f\u5217\u5316 \u5e8f\u5217\u5316\u4e0e\u5355\u4f8b\u6a21\u5f0f google\u5e8f\u5217\u5316protobuf\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.9. \u865a\u5f15\u7528\uff0c\u5f31\u5f15\u7528\uff0c\u8f6f\u5f15\u7528<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.lang.ref.*<\/code> \u5b9e\u9a8c\u8fd9\u4e9b\u5f15\u7528\u7684\u56de\u6536\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.10. \u719f\u6089Java\u7cfb\u7edf\u5c5e\u6027<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.util.Properties<\/code>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.11. \u719f\u6089Annotation\u7528\u6cd5<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.lang.annotation.*<\/code>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.12. JMS<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">javax.jms.*<\/code>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.13. JMX<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.lang.management.*<\/code> <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">javax.management.*<\/code>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.14. \u6cdb\u578b\u548c\u7ee7\u627f\uff0c\u6cdb\u578b\u548c\u64e6\u9664<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.15. \u81ea\u52a8\u62c6\u7bb1\u88c5\u7bb1\u4e0e\u5b57\u8282\u7801<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.16. \u5b9e\u73b0Callback<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.17. java.lang.Void\u7c7b\u4f7f\u7528<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.18. Java Agent\uff0cpremain\u51fd\u6570<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.lang.instrument<\/code>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.19. \u5355\u5143\u6d4b\u8bd5<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\nJunit\uff0c<a href=\"http:\/\/junit.org\/\">http:\/\/junit.org\/<\/a><\/p>\n<p>Jmockit\uff0c<a href=\"https:\/\/code.google.com\/p\/jmockit\/\">https:\/\/code.google.com\/p\/jmockit\/<\/a><\/p>\n<p>djUnit\uff0c<a href=\"http:\/\/works.dgic.co.jp\/djunit\/\">http:\/\/works.dgic.co.jp\/djunit\/<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.20. Java\u5b9e\u73b0\u901a\u8fc7\u6b63\u5219\u8868\u8fbe\u5f0f\u63d0\u53d6\u4e00\u6bb5\u6587\u672c\u4e2d\u7684\u7535\u5b50\u90ae\u4ef6\uff0c\u5e76\u5c06@\u66ff\u6362\u4e3a#\u8f93\u51fa<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.lang.util.regex.*<\/code>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.21. \u5b66\u4e60\u4f7f\u7528\u5e38\u7528\u7684Java\u5de5\u5177\u5e93<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">commons.lang<\/code>, <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">commons.*...<\/code> <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">guava-libraries<\/code> <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">netty<\/code>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.22. \u4ec0\u4e48\u662fAPI&amp;SPI<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/en.wikipedia.org\/wiki\/Application_programming_interface\">http:\/\/en.wikipedia.org\/wiki\/Application_programming_interface<\/a><\/p>\n<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/Service_provider_interface\">http:\/\/en.wikipedia.org\/wiki\/Service_provider_interface<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2.23. \u53c2\u8003\u8d44\u6599<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\nJDK src.zip \u6e90\u4ee3\u7801<\/p>\n<p><a href=\"http:\/\/openjdk.java.net\/\">http:\/\/openjdk.java.net\/<\/a><\/p>\n<p><a href=\"http:\/\/commons.apache.org\/\">http:\/\/commons.apache.org\/<\/a><\/p>\n<p><a href=\"https:\/\/code.google.com\/p\/guava-libraries\/\">https:\/\/code.google.com\/p\/guava-libraries\/<\/a><\/p>\n<p><a href=\"http:\/\/netty.io\/\">http:\/\/netty.io\/<\/a><\/p>\n<p><a href=\"http:\/\/stackoverflow.com\/questions\/2954372\/difference-between-spi-and-api\">http:\/\/stackoverflow.com\/questions\/2954372\/difference-between-spi-and-api<\/a><\/p>\n<p><a href=\"http:\/\/stackoverflow.com\/questions\/11404230\/how-to-implement-the-api-spi-pattern-in-java\">http:\/\/stackoverflow.com\/questions\/11404230\/how-to-implement-the-api-spi-pattern-in-java<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.3. Java\u5e76\u53d1\u7f16\u7a0b<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.3.1. \u9605\u8bfb\u6e90\u4ee3\u7801\uff0c\u5e76\u5b66\u4f1a\u4f7f\u7528<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.lang.Thread<\/code> <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.lang.Runnable<\/code> <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.util.concurrent.Callable<\/code><code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.util.concurrent.locks.ReentrantLock<\/code><code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.util.concurrent.locks.ReentrantReadWriteLock<\/code><code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.util.concurrent.atomic.Atomic*<\/code> <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.util.concurrent.Semaphore<\/code><code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.util.concurrent.CountDownLatch<\/code> <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.util.concurrent.CyclicBarrier<\/code><code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.util.concurrent.ConcurrentHashMap<\/code> <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">java.util.concurrent.Executors<\/code>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.3.2. \u5b66\u4e60\u4f7f\u7528\u7ebf\u7a0b\u6c60\uff0c\u81ea\u5df1\u8bbe\u8ba1\u7ebf\u7a0b\u6c60\u9700\u8981\u6ce8\u610f\u4ec0\u4e48<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.3.3. \u9501<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n\u4ec0\u4e48\u662f\u9501\uff0c\u9501\u7684\u79cd\u7c7b\u6709\u54ea\u4e9b\uff0c\u6bcf\u79cd\u9501\u6709\u4ec0\u4e48\u7279\u70b9\uff0c\u9002\u7528\u573a\u666f\u662f\u4ec0\u4e48 \u5728\u5e76\u53d1\u7f16\u7a0b\u4e2d\u9501\u7684\u610f\u4e49\u662f\u4ec0\u4e48\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.3.4. synchronized\u7684\u4f5c\u7528\u662f\u4ec0\u4e48\uff0csynchronized\u548clock<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.3.5. sleep\u548cwait<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.3.6. wait\u548cnotify<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.3.7. \u5199\u4e00\u4e2a\u6b7b\u9501\u7684\u7a0b\u5e8f<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.3.8. \u4ec0\u4e48\u662f\u5b88\u62a4\u7ebf\u7a0b\uff0c\u5b88\u62a4\u7ebf\u7a0b\u548c\u975e\u5b88\u62a4\u7ebf\u7a0b\u7684\u533a\u522b\u4ee5\u53ca\u7528\u6cd5<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.3.9. volatile\u5173\u952e\u5b57\u7684\u7406\u89e3<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\nC++ volatile\u5173\u952e\u5b57\u548cJava volatile\u5173\u952e\u5b57 happens-before\u8bed\u4e49 \u7f16\u8bd1\u5668\u6307\u4ee4\u91cd\u6392\u548cCPU\u6307\u4ee4\u91cd\u6392<\/p>\n<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/Memory_ordering\">http:\/\/en.wikipedia.org\/wiki\/Memory_ordering<\/a><\/p>\n<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/Volatile_variable\">http:\/\/en.wikipedia.org\/wiki\/Volatile_variable<\/a><\/p>\n<p><a href=\"http:\/\/preshing.com\/20130702\/the-happens-before-relation\/\">http:\/\/preshing.com\/20130702\/the-happens-before-relation\/<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.3.10. \u4ee5\u4e0b\u4ee3\u7801\u662f\u4e0d\u662f\u7ebf\u7a0b\u5b89\u5168\uff1f\u4e3a\u4ec0\u4e48\uff1f\u5982\u679c\u4e3acount\u52a0\u4e0avolatile\u4fee\u9970\u662f\u5426\u80fd\u591f\u505a\u5230\u7ebf\u7a0b\u5b89\u5168\uff1f\u4f60\u89c9\u5f97\u8be5\u600e\u4e48\u505a\u662f\u7ebf\u7a0b\u5b89\u5168\u7684\uff1f<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"kwd\"><span class=\"kwd\">public<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">class<\/span><\/span> <span class=\"typ\"><span class=\"typ\">Sample<\/span><\/span> <span class=\"pun\"><span class=\"pun\">{<\/span><\/span>\n  <span class=\"kwd\"><span class=\"kwd\">private<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">static<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">int<\/span><\/span><span class=\"pln\"><span class=\"pln\"> count <\/span><\/span><span class=\"pun\"><span class=\"pun\">=<\/span><\/span> <span class=\"lit\"><span class=\"lit\">0<\/span><\/span><span class=\"pun\"><span class=\"pun\">;<\/span><\/span>\n  <span class=\"kwd\"><span class=\"kwd\">public<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">static<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">void<\/span><\/span><span class=\"pln\"><span class=\"pln\"> increment<\/span><\/span><span class=\"pun\"><span class=\"pun\">()<\/span><\/span> <span class=\"pun\"><span class=\"pun\">{<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n    count<\/span><\/span><span class=\"pun\"><span class=\"pun\">++;<\/span><\/span>\n  <span class=\"pun\"><span class=\"pun\">}<\/span><\/span>\n<span class=\"pun\"><span class=\"pun\">}<\/span><\/span><\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.3.11. \u89e3\u91ca\u4e00\u4e0b\u4e0b\u9762\u4e24\u6bb5\u4ee3\u7801\u7684\u5dee\u522b<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"com\"><span class=\"com\">\/\/ \u4ee3\u78011<\/span><\/span>\n<span class=\"kwd\"><span class=\"kwd\">public<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">class<\/span><\/span> <span class=\"typ\"><span class=\"typ\">Sample<\/span><\/span> <span class=\"pun\"><span class=\"pun\">{<\/span><\/span>\n  <span class=\"kwd\"><span class=\"kwd\">private<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">static<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">int<\/span><\/span><span class=\"pln\"><span class=\"pln\"> count <\/span><\/span><span class=\"pun\"><span class=\"pun\">=<\/span><\/span> <span class=\"lit\"><span class=\"lit\">0<\/span><\/span><span class=\"pun\"><span class=\"pun\">;<\/span><\/span>\n  <span class=\"kwd\"><span class=\"kwd\">synchronized<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">public<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">static<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">void<\/span><\/span><span class=\"pln\"><span class=\"pln\"> increment<\/span><\/span><span class=\"pun\"><span class=\"pun\">()<\/span><\/span> <span class=\"pun\"><span class=\"pun\">{<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n    count<\/span><\/span><span class=\"pun\"><span class=\"pun\">++;<\/span><\/span>\n  <span class=\"pun\"><span class=\"pun\">}<\/span><\/span>\n<span class=\"pun\"><span class=\"pun\">}<\/span><\/span>\n\n<span class=\"com\"><span class=\"com\">\/\/ \u4ee3\u78012<\/span><\/span>\n<span class=\"kwd\"><span class=\"kwd\">public<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">class<\/span><\/span> <span class=\"typ\"><span class=\"typ\">Sample<\/span><\/span> <span class=\"pun\"><span class=\"pun\">{<\/span><\/span>\n  <span class=\"kwd\"><span class=\"kwd\">private<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">static<\/span><\/span> <span class=\"typ\"><span class=\"typ\">AtomicInteger<\/span><\/span><span class=\"pln\"><span class=\"pln\"> count <\/span><\/span><span class=\"pun\"><span class=\"pun\">=<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">new<\/span><\/span> <span class=\"typ\"><span class=\"typ\">AtomicInteger<\/span><\/span><span class=\"pun\"><span class=\"pun\">(<\/span><\/span><span class=\"lit\"><span class=\"lit\">0<\/span><\/span><span class=\"pun\"><span class=\"pun\">);<\/span><\/span>\n  <span class=\"kwd\"><span class=\"kwd\">public<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">static<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">void<\/span><\/span><span class=\"pln\"><span class=\"pln\"> increment<\/span><\/span><span class=\"pun\"><span class=\"pun\">()<\/span><\/span> <span class=\"pun\"><span class=\"pun\">{<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n    count<\/span><\/span><span class=\"pun\"><span class=\"pun\">.<\/span><\/span><span class=\"pln\"><span class=\"pln\">getAndIncrement<\/span><\/span><span class=\"pun\"><span class=\"pun\">();<\/span><\/span>\n  <span class=\"pun\"><span class=\"pun\">}<\/span><\/span>\n<span class=\"pun\"><span class=\"pun\">}<\/span><\/span><\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.3.12. \u53c2\u8003\u8d44\u6599<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/book.douban.com\/subject\/10484692\/\">http:\/\/book.douban.com\/subject\/10484692\/<\/a><\/p>\n<p><a href=\"http:\/\/www.intel.com\/content\/www\/us\/en\/processors\/architectures-software-developer-manuals.html\">http:\/\/www.intel.com\/content\/www\/us\/en\/processors\/architectures-software-developer-manuals.html<\/a>\n<\/p><\/blockquote>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u4e8c\u3001 \u8fdb\u9636\u7bc7<\/h2>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.1. Java\u5e95\u5c42\u77e5\u8bc6<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.1.1. \u5b66\u4e60\u4e86\u89e3\u5b57\u8282\u7801\u3001class\u6587\u4ef6\u683c\u5f0f<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/en.wikipedia.org\/wiki\/Java_class_file\">http:\/\/en.wikipedia.org\/wiki\/Java_class_file<\/a><\/p>\n<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/Java_bytecode\">http:\/\/en.wikipedia.org\/wiki\/Java_bytecode<\/a><\/p>\n<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/Java_bytecode_instruction_listings\">http:\/\/en.wikipedia.org\/wiki\/Java_bytecode_instruction_listings<\/a><\/p>\n<p><a href=\"http:\/\/www.csg.ci.i.u-tokyo.ac.jp\/~chiba\/javassist\/\">http:\/\/www.csg.ci.i.u-tokyo.ac.jp\/~chiba\/javassist\/<\/a><\/p>\n<p><a href=\"http:\/\/asm.ow2.org\/\">http:\/\/asm.ow2.org\/<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.1.2. \u5199\u4e00\u4e2a\u7a0b\u5e8f\u8981\u6c42\u5b9e\u73b0javap\u7684\u529f\u80fd\uff08\u624b\u5de5\u5b8c\u6210\uff0c\u4e0d\u501f\u52a9ASM\u7b49\u5de5\u5177\uff09<\/h3>\n<p style=\"margin: 1em 0px;\">\u5982Java\u6e90\u4ee3\u7801\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">  <span class=\"kwd\"><span class=\"kwd\">public<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">static<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">void<\/span><\/span><span class=\"pln\"><span class=\"pln\"> main<\/span><\/span><span class=\"pun\"><span class=\"pun\">(<\/span><\/span><span class=\"typ\"><span class=\"typ\">String<\/span><\/span><span class=\"pun\"><span class=\"pun\">[]<\/span><\/span><span class=\"pln\"><span class=\"pln\"> args<\/span><\/span><span class=\"pun\"><span class=\"pun\">)<\/span><\/span> <span class=\"pun\"><span class=\"pun\">{<\/span><\/span>\n    <span class=\"kwd\"><span class=\"kwd\">int<\/span><\/span><span class=\"pln\"><span class=\"pln\"> i <\/span><\/span><span class=\"pun\"><span class=\"pun\">=<\/span><\/span> <span class=\"lit\"><span class=\"lit\">0<\/span><\/span><span class=\"pun\"><span class=\"pun\">;<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n    i <\/span><\/span><span class=\"pun\"><span class=\"pun\">+=<\/span><\/span> <span class=\"lit\"><span class=\"lit\">1<\/span><\/span><span class=\"pun\"><span class=\"pun\">;<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n    i <\/span><\/span><span class=\"pun\"><span class=\"pun\">*=<\/span><\/span> <span class=\"lit\"><span class=\"lit\">1<\/span><\/span><span class=\"pun\"><span class=\"pun\">;<\/span><\/span>\n    <span class=\"typ\"><span class=\"typ\">System<\/span><\/span><span class=\"pun\"><span class=\"pun\">.<\/span><\/span><span class=\"kwd\"><span class=\"kwd\">out<\/span><\/span><span class=\"pun\"><span class=\"pun\">.<\/span><\/span><span class=\"pln\"><span class=\"pln\">println<\/span><\/span><span class=\"pun\"><span class=\"pun\">(<\/span><\/span><span class=\"pln\"><span class=\"pln\">i<\/span><\/span><span class=\"pun\"><span class=\"pun\">);<\/span><\/span>\n  <span class=\"pun\"><span class=\"pun\">}<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u7f16\u8bd1\u540e\u8bfb\u53d6class\u6587\u4ef6\u8f93\u51fa\u4ee5\u4e0b\u4ee3\u7801\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"kwd\"><span class=\"kwd\">public<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">static<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">void<\/span><\/span><span class=\"pln\"><span class=\"pln\"> main<\/span><\/span><span class=\"pun\"><span class=\"pun\">(<\/span><\/span><span class=\"pln\"><span class=\"pln\">java<\/span><\/span><span class=\"pun\"><span class=\"pun\">.<\/span><\/span><span class=\"pln\"><span class=\"pln\">lang<\/span><\/span><span class=\"pun\"><span class=\"pun\">.<\/span><\/span><span class=\"typ\"><span class=\"typ\">String<\/span><\/span><span class=\"pun\"><span class=\"pun\">[]);<\/span><\/span>\n  <span class=\"typ\"><span class=\"typ\">Code<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span>\n   <span class=\"typ\"><span class=\"typ\">Stack<\/span><\/span><span class=\"pun\"><span class=\"pun\">=<\/span><\/span><span class=\"lit\"><span class=\"lit\">2<\/span><\/span><span class=\"pun\"><span class=\"pun\">,<\/span><\/span> <span class=\"typ\"><span class=\"typ\">Locals<\/span><\/span><span class=\"pun\"><span class=\"pun\">=<\/span><\/span><span class=\"lit\"><span class=\"lit\">2<\/span><\/span><span class=\"pun\"><span class=\"pun\">,<\/span><\/span> <span class=\"typ\"><span class=\"typ\">Args_size<\/span><\/span><span class=\"pun\"><span class=\"pun\">=<\/span><\/span><span class=\"lit\"><span class=\"lit\">1<\/span><\/span>\n   <span class=\"lit\"><span class=\"lit\">0<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span><span class=\"pln\"><span class=\"pln\">   iconst_0\n   <\/span><\/span><span class=\"lit\"><span class=\"lit\">1<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span><span class=\"pln\"><span class=\"pln\">   istore_1\n   <\/span><\/span><span class=\"lit\"><span class=\"lit\">2<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span><span class=\"pln\"><span class=\"pln\">   iinc    <\/span><\/span><span class=\"lit\"><span class=\"lit\">1<\/span><\/span><span class=\"pun\"><span class=\"pun\">,<\/span><\/span> <span class=\"lit\"><span class=\"lit\">1<\/span><\/span>\n   <span class=\"lit\"><span class=\"lit\">5<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span><span class=\"pln\"><span class=\"pln\">   iload_1\n   <\/span><\/span><span class=\"lit\"><span class=\"lit\">6<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span><span class=\"pln\"><span class=\"pln\">   iconst_1\n   <\/span><\/span><span class=\"lit\"><span class=\"lit\">7<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span><span class=\"pln\"><span class=\"pln\">   imul\n   <\/span><\/span><span class=\"lit\"><span class=\"lit\">8<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span><span class=\"pln\"><span class=\"pln\">   istore_1\n   <\/span><\/span><span class=\"lit\"><span class=\"lit\">9<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span><span class=\"pln\"><span class=\"pln\">   getstatic       <\/span><\/span><span class=\"com\"><span class=\"com\">#2; \/\/Field java\/lang\/System.out:Ljava\/io\/PrintStream;<\/span><\/span>\n   <span class=\"lit\"><span class=\"lit\">12<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span><span class=\"pln\"><span class=\"pln\">  iload_1\n   <\/span><\/span><span class=\"lit\"><span class=\"lit\">13<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span><span class=\"pln\"><span class=\"pln\">  invokevirtual   <\/span><\/span><span class=\"com\"><span class=\"com\">#3; \/\/Method java\/io\/PrintStream.println:(I)V<\/span><\/span>\n   <span class=\"lit\"><span class=\"lit\">16<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span>  <span class=\"kwd\"><span class=\"kwd\">return<\/span><\/span>\n  <span class=\"typ\"><span class=\"typ\">LineNumberTable<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span><span class=\"pln\"><span class=\"pln\"> \n   line <\/span><\/span><span class=\"lit\"><span class=\"lit\">4<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span> <span class=\"lit\"><span class=\"lit\">0<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n   line <\/span><\/span><span class=\"lit\"><span class=\"lit\">5<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span> <span class=\"lit\"><span class=\"lit\">2<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n   line <\/span><\/span><span class=\"lit\"><span class=\"lit\">6<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span> <span class=\"lit\"><span class=\"lit\">5<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n   line <\/span><\/span><span class=\"lit\"><span class=\"lit\">7<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span> <span class=\"lit\"><span class=\"lit\">9<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n   line <\/span><\/span><span class=\"lit\"><span class=\"lit\">8<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span> <span class=\"lit\"><span class=\"lit\">16<\/span><\/span><\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.1.3. CPU\u7f13\u5b58\uff0cL1\uff0cL2\uff0cL3\u548c\u4f2a\u5171\u4eab<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/duartes.org\/gustavo\/blog\/post\/intel-cpu-caches\/\">http:\/\/duartes.org\/gustavo\/blog\/post\/intel-cpu-caches\/<\/a><\/p>\n<p><a href=\"http:\/\/mechanical-sympathy.blogspot.com\/2011\/07\/false-sharing.html\">http:\/\/mechanical-sympathy.blogspot.com\/2011\/07\/false-sharing.html<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.1.4. \u4ec0\u4e48\u662f\u5c3e\u9012\u5f52<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.1.5. \u719f\u6089\u4f4d\u8fd0\u7b97<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n\u7528\u4f4d\u8fd0\u7b97\u5b9e\u73b0\u52a0\u3001\u51cf\u3001\u4e58\u3001\u9664\u3001\u53d6\u4f59\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.1.6. \u53c2\u8003\u8d44\u6599<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/book.douban.com\/subject\/1138768\/\">http:\/\/book.douban.com\/subject\/1138768\/<\/a><\/p>\n<p><a href=\"http:\/\/book.douban.com\/subject\/6522893\/\">http:\/\/book.douban.com\/subject\/6522893\/<\/a><\/p>\n<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/Java_class_file\">http:\/\/en.wikipedia.org\/wiki\/Java_class_file<\/a><\/p>\n<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/Java_bytecode\">http:\/\/en.wikipedia.org\/wiki\/Java_bytecode<\/a><\/p>\n<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/Java_bytecode_instruction_listings\">http:\/\/en.wikipedia.org\/wiki\/Java_bytecode_instruction_listings<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.2. \u8bbe\u8ba1\u6a21\u5f0f<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.2.1. \u5b9e\u73b0AOP<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\nCGLIB\u548cInvocationHandler\u7684\u533a\u522b <a href=\"http:\/\/cglib.sourceforge.net\/\">http:\/\/cglib.sourceforge.net\/<\/a><\/p>\n<p>\u52a8\u6001\u4ee3\u7406\u6a21\u5f0f Javassist\u5b9e\u73b0AOP <a href=\"http:\/\/www.csg.ci.i.u-tokyo.ac.jp\/~chiba\/javassist\/\">http:\/\/www.csg.ci.i.u-tokyo.ac.jp\/~chiba\/javassist\/<\/a><\/p>\n<p>ASM\u5b9e\u73b0AOP <a href=\"http:\/\/asm.ow2.org\/\">http:\/\/asm.ow2.org\/<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.2.2. \u4f7f\u7528\u6a21\u677f\u65b9\u6cd5\u8bbe\u8ba1\u6a21\u5f0f\u548c\u7b56\u7565\u8bbe\u8ba1\u6a21\u5f0f\u5b9e\u73b0IOC<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.2.3. \u4e0d\u7528synchronized\u548clock\uff0c\u5b9e\u73b0\u7ebf\u7a0b\u5b89\u5168\u7684\u5355\u4f8b\u6a21\u5f0f<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.2.4. nio\u548creactor\u8bbe\u8ba1\u6a21\u5f0f<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.2.5. \u53c2\u8003\u8d44\u6599<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/asm.ow2.org\/\">http:\/\/asm.ow2.org\/<\/a><\/p>\n<p><a href=\"http:\/\/cglib.sourceforge.net\/\">http:\/\/cglib.sourceforge.net\/<\/a><\/p>\n<p><a href=\"http:\/\/www.javassist.org\/\">http:\/\/www.javassist.org\/<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.3. \u7f51\u7edc\u7f16\u7a0b\u77e5\u8bc6<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.3.1. Java RMI\uff0cSocket\uff0cHttpClient<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.3.2. \u7528Java\u5199\u4e00\u4e2a\u7b80\u5355\u7684\u9759\u6001\u6587\u4ef6\u7684HTTP\u670d\u52a1\u5668<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n\u5b9e\u73b0\u5ba2\u6237\u7aef\u7f13\u5b58\u529f\u80fd\uff0c\u652f\u6301\u8fd4\u56de304 \u5b9e\u73b0\u53ef\u5e76\u53d1\u4e0b\u8f7d\u4e00\u4e2a\u6587\u4ef6 \u4f7f\u7528\u7ebf\u7a0b\u6c60\u5904\u7406\u5ba2\u6237\u7aef\u8bf7\u6c42 \u4f7f\u7528nio\u5904\u7406\u5ba2\u6237\u7aef\u8bf7\u6c42 \u652f\u6301\u7b80\u5355\u7684rewrite\u89c4\u5219 \u4e0a\u8ff0\u529f\u80fd\u5728\u5b9e\u73b0\u7684\u65f6\u5019\u9700\u8981\u6ee1\u8db3\u201c\u5f00\u95ed\u539f\u5219\u201d\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.3.3. \u4e86\u89e3nginx\u548capache\u670d\u52a1\u5668\u7684\u7279\u6027\u5e76\u642d\u5efa\u4e00\u4e2a\u5bf9\u5e94\u7684\u670d\u52a1\u5668<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/nginx.org\/\">http:\/\/nginx.org\/<\/a><\/p>\n<p><a href=\"http:\/\/httpd.apache.org\/\">http:\/\/httpd.apache.org\/<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.3.4. \u7528Java\u5b9e\u73b0FTP\u3001SMTP\u534f\u8bae<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.3.5. \u4ec0\u4e48\u662fCDN\uff1f\u5982\u679c\u5b9e\u73b0\uff1fDNS\u8d77\u5230\u4ec0\u4e48\u4f5c\u7528\uff1f<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n\u642d\u5efa\u4e00\u4e2aDNS\u670d\u52a1\u5668 \u642d\u5efa\u4e00\u4e2a Squid \u6216 Apache Traffic Server \u670d\u52a1\u5668 <a href=\"http:\/\/www.squid-cache.org\/\">http:\/\/www.squid-cache.org\/<\/a> <a href=\"http:\/\/trafficserver.apache.org\/\">http:\/\/trafficserver.apache.org\/<\/a><a href=\"http:\/\/en.wikipedia.org\/wiki\/Domain_Name_System\">http:\/\/en.wikipedia.org\/wiki\/Domain_Name_System<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.3.6. \u53c2\u8003\u8d44\u6599<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/www.ietf.org\/rfc\/rfc2616.txt\">http:\/\/www.ietf.org\/rfc\/rfc2616.txt<\/a><\/p>\n<p><a href=\"http:\/\/tools.ietf.org\/rfc\/rfc5321.txt\">http:\/\/tools.ietf.org\/rfc\/rfc5321.txt<\/a><\/p>\n<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/Open\/closed_principle\">http:\/\/en.wikipedia.org\/wiki\/Open\/closed_principle<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.4. \u6846\u67b6\u77e5\u8bc6<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\nspring\uff0cspring mvc\uff0c\u9605\u8bfb\u4e3b\u8981\u6e90\u7801 ibatis\uff0c\u9605\u8bfb\u4e3b\u8981\u6e90\u7801 \u7528spring\u548cibatis\u642d\u5efajava server\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.5. \u5e94\u7528\u670d\u52a1\u5668\u77e5\u8bc6<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n\u719f\u6089\u4f7f\u7528jboss\uff0c<a href=\"https:\/\/www.jboss.org\/overview\/\">https:\/\/www.jboss.org\/overview\/ <\/a>\u719f\u6089\u4f7f\u7528tomcat\uff0c<a href=\"http:\/\/tomcat.apache.org\/\">http:\/\/tomcat.apache.org\/ <\/a>\u719f\u6089\u4f7f\u7528jetty\uff0c<a href=\"http:\/\/www.eclipse.org\/jetty\/\">http:\/\/www.eclipse.org\/jetty\/<\/a>\n<\/p><\/blockquote>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u4e09\u3001 \u9ad8\u7ea7\u7bc7<\/h2>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.1. \u7f16\u8bd1\u539f\u7406\u77e5\u8bc6<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.1.1. \u7528Java\u5b9e\u73b0\u4ee5\u4e0b\u8868\u8fbe\u5f0f\u89e3\u6790\u5e76\u8fd4\u56de\u7ed3\u679c\uff08\u8bed\u6cd5\u548cOracle\u4e2d\u7684select sysdate-1 from dual\u7c7b\u4f3c\uff09<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"pln\"><span class=\"pln\"> sysdate\n sysdate <\/span><\/span><span class=\"pun\"><span class=\"pun\">-<\/span><\/span> <span class=\"lit\"><span class=\"lit\">1<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n sysdate <\/span><\/span><span class=\"pun\"><span class=\"pun\">-<\/span><\/span> <span class=\"lit\"><span class=\"lit\">1<\/span><\/span><span class=\"pun\"><span class=\"pun\">\/<\/span><\/span><span class=\"lit\"><span class=\"lit\">24<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n sysdate <\/span><\/span><span class=\"pun\"><span class=\"pun\">-<\/span><\/span> <span class=\"lit\"><span class=\"lit\">1<\/span><\/span><span class=\"pun\"><span class=\"pun\">\/(<\/span><\/span><span class=\"lit\"><span class=\"lit\">12<\/span><\/span><span class=\"pun\"><span class=\"pun\">*<\/span><\/span><span class=\"lit\"><span class=\"lit\">2<\/span><\/span><span class=\"pun\"><span class=\"pun\">)<\/span><\/span><\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.1.2. \u5b9e\u73b0\u5bf9\u4e00\u4e2aList\u901a\u8fc7DSL\u7b5b\u9009<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">  <span class=\"typ\"><span class=\"typ\">QList<\/span><\/span><span class=\"pun\"><span class=\"pun\">&lt;<\/span><\/span><span class=\"typ\"><span class=\"typ\">Map<\/span><\/span><span class=\"pun\"><span class=\"pun\">&lt;<\/span><\/span><span class=\"typ\"><span class=\"typ\">String<\/span><\/span><span class=\"pun\"><span class=\"pun\">,<\/span><\/span> <span class=\"typ\"><span class=\"typ\">Object<\/span><\/span><span class=\"pun\"><span class=\"pun\">&gt;&gt;<\/span><\/span><span class=\"pln\"><span class=\"pln\"> mapList <\/span><\/span><span class=\"pun\"><span class=\"pun\">=<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">new<\/span><\/span> <span class=\"typ\"><span class=\"typ\">QList<\/span><\/span><span class=\"pun\"><span class=\"pun\">&lt;<\/span><\/span><span class=\"typ\"><span class=\"typ\">Map<\/span><\/span><span class=\"pun\"><span class=\"pun\">&lt;<\/span><\/span><span class=\"typ\"><span class=\"typ\">String<\/span><\/span><span class=\"pun\"><span class=\"pun\">,<\/span><\/span> <span class=\"typ\"><span class=\"typ\">Object<\/span><\/span><span class=\"pun\"><span class=\"pun\">&gt;&gt;;<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n  mapList<\/span><\/span><span class=\"pun\"><span class=\"pun\">.<\/span><\/span><span class=\"pln\"><span class=\"pln\">add<\/span><\/span><span class=\"pun\"><span class=\"pun\">({<\/span><\/span><span class=\"str\"><span class=\"str\">\"name\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span> <span class=\"str\"><span class=\"str\">\"hatter test\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">});<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n  mapList<\/span><\/span><span class=\"pun\"><span class=\"pun\">.<\/span><\/span><span class=\"pln\"><span class=\"pln\">add<\/span><\/span><span class=\"pun\"><span class=\"pun\">({<\/span><\/span><span class=\"str\"><span class=\"str\">\"id\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span> <span class=\"pun\"><span class=\"pun\">-<\/span><\/span><span class=\"lit\"><span class=\"lit\">1<\/span><\/span><span class=\"pun\"><span class=\"pun\">,<\/span><\/span><span class=\"str\"><span class=\"str\">\"name\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span> <span class=\"str\"><span class=\"str\">\"hatter test\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">});<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n  mapList<\/span><\/span><span class=\"pun\"><span class=\"pun\">.<\/span><\/span><span class=\"pln\"><span class=\"pln\">add<\/span><\/span><span class=\"pun\"><span class=\"pun\">({<\/span><\/span><span class=\"str\"><span class=\"str\">\"id\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span> <span class=\"lit\"><span class=\"lit\">0<\/span><\/span><span class=\"pun\"><span class=\"pun\">,<\/span><\/span> <span class=\"str\"><span class=\"str\">\"name\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span> <span class=\"str\"><span class=\"str\">\"hatter test\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">});<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n  mapList<\/span><\/span><span class=\"pun\"><span class=\"pun\">.<\/span><\/span><span class=\"pln\"><span class=\"pln\">add<\/span><\/span><span class=\"pun\"><span class=\"pun\">({<\/span><\/span><span class=\"str\"><span class=\"str\">\"id\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span> <span class=\"lit\"><span class=\"lit\">1<\/span><\/span><span class=\"pun\"><span class=\"pun\">,<\/span><\/span> <span class=\"str\"><span class=\"str\">\"name\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span> <span class=\"str\"><span class=\"str\">\"test test\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">});<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n  mapList<\/span><\/span><span class=\"pun\"><span class=\"pun\">.<\/span><\/span><span class=\"pln\"><span class=\"pln\">add<\/span><\/span><span class=\"pun\"><span class=\"pun\">({<\/span><\/span><span class=\"str\"><span class=\"str\">\"id\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span> <span class=\"lit\"><span class=\"lit\">2<\/span><\/span><span class=\"pun\"><span class=\"pun\">,<\/span><\/span> <span class=\"str\"><span class=\"str\">\"name\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span> <span class=\"str\"><span class=\"str\">\"hatter test\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">});<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n  mapList<\/span><\/span><span class=\"pun\"><span class=\"pun\">.<\/span><\/span><span class=\"pln\"><span class=\"pln\">add<\/span><\/span><span class=\"pun\"><span class=\"pun\">({<\/span><\/span><span class=\"str\"><span class=\"str\">\"id\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span> <span class=\"lit\"><span class=\"lit\">3<\/span><\/span><span class=\"pun\"><span class=\"pun\">,<\/span><\/span> <span class=\"str\"><span class=\"str\">\"name\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span> <span class=\"str\"><span class=\"str\">\"test hatter\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">});<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n  mapList<\/span><\/span><span class=\"pun\"><span class=\"pun\">.<\/span><\/span><span class=\"pln\"><span class=\"pln\">query<\/span><\/span><span class=\"pun\"><span class=\"pun\">(<\/span><\/span><span class=\"str\"><span class=\"str\">\"id is not null and id &gt; 0 and name like '%hatter%'\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">);<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u8981\u6c42\u8fd4\u56de\u5217\u8868\u4e2d\u5339\u914d\u7684\u5bf9\u8c61\uff0c\u5373\u6700\u540e\u4e24\u4e2a\u5bf9\u8c61\uff1b<\/p>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.1.3. \u7528Java\u5b9e\u73b0\u4ee5\u4e0b\u7a0b\u5e8f\uff08\u8bed\u6cd5\u548c\u53d8\u91cf\u4f5c\u7528\u57df\u5904\u7406\u90fd\u548cJavaScript\u7c7b\u4f3c\uff09\uff1a<\/h3>\n<p style=\"margin: 1em 0px;\">\u4ee3\u7801\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"kwd\"><span class=\"kwd\">var<\/span><\/span><span class=\"pln\"><span class=\"pln\"> a <\/span><\/span><span class=\"pun\"><span class=\"pun\">=<\/span><\/span> <span class=\"lit\"><span class=\"lit\">1<\/span><\/span><span class=\"pun\"><span class=\"pun\">;<\/span><\/span>\n<span class=\"kwd\"><span class=\"kwd\">var<\/span><\/span><span class=\"pln\"><span class=\"pln\"> b <\/span><\/span><span class=\"pun\"><span class=\"pun\">=<\/span><\/span> <span class=\"lit\"><span class=\"lit\">2<\/span><\/span><span class=\"pun\"><span class=\"pun\">;<\/span><\/span>\n<span class=\"kwd\"><span class=\"kwd\">var<\/span><\/span><span class=\"pln\"><span class=\"pln\"> c <\/span><\/span><span class=\"pun\"><span class=\"pun\">=<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">function<\/span><\/span><span class=\"pun\"><span class=\"pun\">()<\/span><\/span> <span class=\"pun\"><span class=\"pun\">{<\/span><\/span>\n  <span class=\"kwd\"><span class=\"kwd\">var<\/span><\/span><span class=\"pln\"><span class=\"pln\"> a <\/span><\/span><span class=\"pun\"><span class=\"pun\">=<\/span><\/span> <span class=\"lit\"><span class=\"lit\">3<\/span><\/span><span class=\"pun\"><span class=\"pun\">;<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n  println<\/span><\/span><span class=\"pun\"><span class=\"pun\">(<\/span><\/span><span class=\"pln\"><span class=\"pln\">a<\/span><\/span><span class=\"pun\"><span class=\"pun\">);<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n  println<\/span><\/span><span class=\"pun\"><span class=\"pun\">(<\/span><\/span><span class=\"pln\"><span class=\"pln\">b<\/span><\/span><span class=\"pun\"><span class=\"pun\">);<\/span><\/span>\n<span class=\"pun\"><span class=\"pun\">};<\/span><\/span><span class=\"pln\"><span class=\"pln\">\nc<\/span><\/span><span class=\"pun\"><span class=\"pun\">();<\/span><\/span><span class=\"pln\"><span class=\"pln\">\nprintln<\/span><\/span><span class=\"pun\"><span class=\"pun\">(<\/span><\/span><span class=\"pln\"><span class=\"pln\">a<\/span><\/span><span class=\"pun\"><span class=\"pun\">);<\/span><\/span><span class=\"pln\"><span class=\"pln\">\nprintln<\/span><\/span><span class=\"pun\"><span class=\"pun\">(<\/span><\/span><span class=\"pln\"><span class=\"pln\">b<\/span><\/span><span class=\"pun\"><span class=\"pun\">);<\/span><\/span><\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u8f93\u51fa\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"lit\"><span class=\"lit\">3<\/span><\/span>\n<span class=\"lit\"><span class=\"lit\">2<\/span><\/span>\n<span class=\"lit\"><span class=\"lit\">1<\/span><\/span>\n<span class=\"lit\"><span class=\"lit\">2<\/span><\/span><\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.1.4. \u53c2\u8003\u8d44\u6599<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\nhttp:\/\/en.wikipedia.org\/wiki\/Abstract_syntax_tree https:\/\/javacc.java.net\/ http:\/\/www.antlr.org\/\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.2. \u64cd\u4f5c\u7cfb\u7edf\u77e5\u8bc6<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\nUbuntu Centos \u4f7f\u7528linux\uff0c\u719f\u6089shell\u811a\u672c\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.3. \u6570\u636e\u5b58\u50a8\u77e5\u8bc6<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.3.1. \u5173\u7cfb\u578b\u6570\u636e\u5e93<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\nMySQL \u5982\u4f55\u770b\u6267\u884c\u8ba1\u5212 \u5982\u4f55\u642d\u5efaMySQL\u4e3b\u5907 binlog\u662f\u4ec0\u4e48 Derby\uff0cH2\uff0cPostgreSQL SQLite\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.3.2. NoSQL<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\nCache Redis Memcached Leveldb Bigtable HBase Cassandra Mongodb \u56fe\u6570\u636e\u5e93 neo4j\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.3.3. \u53c2\u8003\u8d44\u6599<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/db-engines.com\/en\/ranking\">http:\/\/db-engines.com\/en\/ranking<\/a><\/p>\n<p><a href=\"http:\/\/redis.io\/\">http:\/\/redis.io\/<\/a><\/p>\n<p><a href=\"https:\/\/code.google.com\/p\/leveldb\/\">https:\/\/code.google.com\/p\/leveldb\/<\/a><\/p>\n<p><a href=\"http:\/\/hbase.apache.org\/\">http:\/\/hbase.apache.org\/<\/a><\/p>\n<p><a href=\"http:\/\/cassandra.apache.org\/\">http:\/\/cassandra.apache.org\/<\/a><\/p>\n<p><a href=\"http:\/\/www.mongodb.org\/\">http:\/\/www.mongodb.org\/<\/a><\/p>\n<p><a href=\"http:\/\/www.mongodb.org\/\">http:\/\/www.neo4j.org\/<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.4. \u5927\u6570\u636e\u77e5\u8bc6<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.4.1. Zookeeper\uff0c\u5728linux\u4e0a\u90e8\u7f72zk<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.4.2. Solr\uff0cLucene\uff0cElasticSearch<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n\u5728linux\u4e0a\u90e8\u7f72solr\uff0csolrcloud\uff0c\uff0c\u65b0\u589e\u3001\u5220\u9664\u3001\u67e5\u8be2\u7d22\u5f15\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.4.3. Storm\uff0c\u6d41\u5f0f\u8ba1\u7b97\uff0c\u4e86\u89e3Spark\uff0cS4<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n\u5728linux\u4e0a\u90e8\u7f72storm\uff0c\u7528zookeeper\u505a\u534f\u8c03\uff0c\u8fd0\u884cstorm hello world\uff0clocal\u548cremote\u6a21\u5f0f\u8fd0\u884c\u8c03\u8bd5storm topology\u3002\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.4.4. Hadoop\uff0c\u79bb\u7ebf\u8ba1\u7b97<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\nHdfs\uff1a\u90e8\u7f72NameNode\uff0cSecondaryNameNode\uff0cDataNode\uff0c\u4e0a\u4f20\u6587\u4ef6\u3001\u6253\u5f00\u6587\u4ef6\u3001\u66f4\u6539\u6587\u4ef6\u3001\u5220\u9664\u6587\u4ef6<\/p>\n<p>MapReduce\uff1a\u90e8\u7f72JobTracker\uff0cTaskTracker\uff0c\u7f16\u5199mr job<\/p>\n<p>Hive\uff1a\u90e8\u7f72hive\uff0c\u4e66\u5199hive sql\uff0c\u5f97\u5230\u7ed3\u679c<\/p>\n<p>Presto\uff1a\u7c7bhive\uff0c\u4e0d\u8fc7\u6bd4hive\u5feb\uff0c\u975e\u5e38\u503c\u5f97\u5b66\u4e60\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.4.5. \u5206\u5e03\u5f0f\u65e5\u5fd7\u6536\u96c6flume\uff0ckafka\uff0clogstash<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.4.6. \u6570\u636e\u6316\u6398\uff0cmahout<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.4.7. \u53c2\u8003\u8d44\u6599<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/zookeeper.apache.org\/\">http:\/\/zookeeper.apache.org\/<\/a><\/p>\n<p><a href=\"https:\/\/lucene.apache.org\/solr\/\">https:\/\/lucene.apache.org\/solr\/<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/nathanmarz\/storm\/wiki\">https:\/\/github.com\/nathanmarz\/storm\/wiki<\/a><\/p>\n<p><a href=\"http:\/\/hadoop.apache.org\/\">http:\/\/hadoop.apache.org\/<\/a><\/p>\n<p><a href=\"http:\/\/prestodb.io\/\">http:\/\/prestodb.io\/<\/a><\/p>\n<p><a href=\"http:\/\/flume.apache.org\/\">http:\/\/flume.apache.org\/<\/a><\/p>\n<p><a href=\"http:\/\/logstash.net\/\">http:\/\/logstash.net\/<\/a><\/p>\n<p><a href=\"http:\/\/kafka.apache.org\/\">http:\/\/kafka.apache.org\/<\/a><\/p>\n<p><a href=\"http:\/\/mahout.apache.org\/\">http:\/\/mahout.apache.org\/<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.5. \u7f51\u7edc\u5b89\u5168\u77e5\u8bc6<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.5.1. \u4ec0\u4e48\u662fDES\u3001AES<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.5.2. \u4ec0\u4e48\u662fRSA\u3001DSA<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.5.3. \u4ec0\u4e48\u662fMD5\uff0cSHA1<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.5.4. \u4ec0\u4e48\u662fSSL\u3001TLS\uff0c\u4e3a\u4ec0\u4e48HTTPS\u76f8\u5bf9\u6bd4\u8f83\u5b89\u5168<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.5.5. \u4ec0\u4e48\u662f\u4e2d\u95f4\u4eba\u653b\u51fb\u3001\u5982\u679c\u907f\u514d\u4e2d\u95f4\u4eba\u653b\u51fb<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.5.6. \u4ec0\u4e48\u662fDOS\u3001DDOS\u3001CC\u653b\u51fb<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.5.7. \u4ec0\u4e48\u662fCSRF\u653b\u51fb<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.5.8. \u4ec0\u4e48\u662fCSS\u653b\u51fb<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.5.9. \u4ec0\u4e48\u662fSQL\u6ce8\u5165\u653b\u51fb<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.5.10. \u4ec0\u4e48\u662fHash\u78b0\u649e\u62d2\u7edd\u670d\u52a1\u653b\u51fb<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.5.11. \u4e86\u89e3\u5e76\u5b66\u4e60\u4e0b\u9762\u51e0\u79cd\u589e\u5f3a\u5b89\u5168\u7684\u6280\u672f<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\nhttp:\/\/www.openauthentication.org\/<\/p>\n<p>HOTP http:\/\/www.ietf.org\/rfc\/rfc4226.txt<\/p>\n<p>TOTP http:\/\/tools.ietf.org\/rfc\/rfc6238.txt<\/p>\n<p>OCRA http:\/\/tools.ietf.org\/rfc\/rfc6287.txt<\/p>\n<p>http:\/\/en.wikipedia.org\/wiki\/Salt_(cryptography)\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.5.12. \u7528openssl\u7b7e\u4e00\u4e2a\u8bc1\u4e66\u90e8\u7f72\u5230apache\u6216nginx<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.5.13. \u53c2\u8003\u8d44\u6599<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/en.wikipedia.org\/wiki\/Cryptographic_hash_function\">http:\/\/en.wikipedia.org\/wiki\/Cryptographic_hash_function<\/a><\/p>\n<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/Block_cipher\">http:\/\/en.wikipedia.org\/wiki\/Block_cipher<\/a><\/p>\n<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/Public-key_cryptography\">http:\/\/en.wikipedia.org\/wiki\/Public-key_cryptography<\/a><\/p>\n<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/Transport_Layer_Security\">http:\/\/en.wikipedia.org\/wiki\/Transport_Layer_Security<\/a><\/p>\n<p><a href=\"http:\/\/www.openssl.org\/\">http:\/\/www.openssl.org\/<\/a><\/p>\n<p><a href=\"https:\/\/code.google.com\/p\/google-authenticator\/\">https:\/\/code.google.com\/p\/google-authenticator\/<\/a>\n<\/p><\/blockquote>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u56db\u3001 \u6269\u5c55\u7bc7<\/h2>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.1. \u76f8\u5173\u77e5\u8bc6<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.1.1. \u4e91\u8ba1\u7b97\uff0c\u5206\u5e03\u5f0f\uff0c\u9ad8\u53ef\u7528\uff0c\u53ef\u6269\u5c55<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.1.2. \u865a\u62df\u5316<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"https:\/\/linuxcontainers.org\/\">https:\/\/linuxcontainers.org\/<\/a><\/p>\n<p><a href=\"http:\/\/www.linux-kvm.org\/page\/Main_Page\">http:\/\/www.linux-kvm.org\/page\/Main_Page<\/a><\/p>\n<p><a href=\"http:\/\/www.xenproject.org\/\">http:\/\/www.xenproject.org\/<\/a><\/p>\n<p><a href=\"https:\/\/www.docker.io\/\">https:\/\/www.docker.io\/<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.1.3. \u76d1\u63a7<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/www.nagios.org\/\">http:\/\/www.nagios.org\/<\/a><\/p>\n<p><a href=\"http:\/\/ganglia.info\/\">http:\/\/ganglia.info\/<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.1.4. \u8d1f\u8f7d\u5747\u8861<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/www.linuxvirtualserver.org\/\">http:\/\/www.linuxvirtualserver.org\/<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.1.5. \u5b66\u4e60\u4f7f\u7528git<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"https:\/\/github.com\/\">https:\/\/github.com\/<\/a><\/p>\n<p><a href=\"https:\/\/git.oschina.net\/\">https:\/\/git.oschina.net\/<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.1.6. \u5b66\u4e60\u4f7f\u7528maven<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/maven.apache.org\/\">http:\/\/maven.apache.org\/<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.1.7. \u5b66\u4e60\u4f7f\u7528gradle<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/www.gradle.org\/\">http:\/\/www.gradle.org\/<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.1.8. \u5b66\u4e60\u4e00\u4e2a\u5c0f\u8bed\u79cd\u8bed\u8a00<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\nGroovy Scala LISP, Common LISP, Schema, Clojure R Julia Lua Ruby\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.1.9. \u5c1d\u8bd5\u4e86\u89e3\u7f16\u7801\u7684\u672c\u8d28<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n\u4e86\u89e3\u4ee5\u4e0b\u6982\u5ff5 ASCII, ISO-8859-1 GB2312, GBK, GB18030 Unicode, UTF-8 \u4e0d\u4f7f\u7528 String.getBytes() \u7b49\u5176\u4ed6\u5de5\u5177\u7c7b\/\u51fd\u6570\u5b8c\u6210\u4e0b\u9762\u529f\u80fd\n<\/p><\/blockquote>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"kwd\"><span class=\"kwd\">public<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">static<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">void<\/span><\/span><span class=\"pln\"><span class=\"pln\"> main<\/span><\/span><span class=\"pun\"><span class=\"pun\">(<\/span><\/span><span class=\"typ\"><span class=\"typ\">String<\/span><\/span><span class=\"pun\"><span class=\"pun\">[]<\/span><\/span><span class=\"pln\"><span class=\"pln\"> args<\/span><\/span><span class=\"pun\"><span class=\"pun\">)<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">throws<\/span><\/span> <span class=\"typ\"><span class=\"typ\">IOException<\/span><\/span> <span class=\"pun\"><span class=\"pun\">{<\/span><\/span>\n    <span class=\"typ\"><span class=\"typ\">String<\/span><\/span><span class=\"pln\"><span class=\"pln\"> str <\/span><\/span><span class=\"pun\"><span class=\"pun\">=<\/span><\/span> <span class=\"str\"><span class=\"str\">\"Hello, \u6211\u4eec\u662f\u4e2d\u56fd\u4eba\u3002\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">;<\/span><\/span>\n    <span class=\"kwd\"><span class=\"kwd\">byte<\/span><\/span><span class=\"pun\"><span class=\"pun\">[]<\/span><\/span><span class=\"pln\"><span class=\"pln\"> utf8Bytes <\/span><\/span><span class=\"pun\"><span class=\"pun\">=<\/span><\/span><span class=\"pln\"><span class=\"pln\"> toUTF8Bytes<\/span><\/span><span class=\"pun\"><span class=\"pun\">(<\/span><\/span><span class=\"pln\"><span class=\"pln\">str<\/span><\/span><span class=\"pun\"><span class=\"pun\">);<\/span><\/span>\n    <span class=\"typ\"><span class=\"typ\">FileOutputStream<\/span><\/span><span class=\"pln\"><span class=\"pln\"> fos <\/span><\/span><span class=\"pun\"><span class=\"pun\">=<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">new<\/span><\/span> <span class=\"typ\"><span class=\"typ\">FileOutputStream<\/span><\/span><span class=\"pun\"><span class=\"pun\">(<\/span><\/span><span class=\"str\"><span class=\"str\">\"f.txt\"<\/span><\/span><span class=\"pun\"><span class=\"pun\">);<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n    fos<\/span><\/span><span class=\"pun\"><span class=\"pun\">.<\/span><\/span><span class=\"pln\"><span class=\"pln\">write<\/span><\/span><span class=\"pun\"><span class=\"pun\">(<\/span><\/span><span class=\"pln\"><span class=\"pln\">utf8Bytes<\/span><\/span><span class=\"pun\"><span class=\"pun\">);<\/span><\/span><span class=\"pln\"><span class=\"pln\">\n    fos<\/span><\/span><span class=\"pun\"><span class=\"pun\">.<\/span><\/span><span class=\"pln\"><span class=\"pln\">close<\/span><\/span><span class=\"pun\"><span class=\"pun\">();<\/span><\/span>\n<span class=\"pun\"><span class=\"pun\">}<\/span><\/span>\n<span class=\"kwd\"><span class=\"kwd\">public<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">static<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">byte<\/span><\/span><span class=\"pun\"><span class=\"pun\">[]<\/span><\/span><span class=\"pln\"><span class=\"pln\"> toUTF8Bytes<\/span><\/span><span class=\"pun\"><span class=\"pun\">(<\/span><\/span><span class=\"typ\"><span class=\"typ\">String<\/span><\/span><span class=\"pln\"><span class=\"pln\"> str<\/span><\/span><span class=\"pun\"><span class=\"pun\">)<\/span><\/span> <span class=\"pun\"><span class=\"pun\">{<\/span><\/span>\n    <span class=\"kwd\"><span class=\"kwd\">return<\/span><\/span> <span class=\"kwd\"><span class=\"kwd\">null<\/span><\/span><span class=\"pun\"><span class=\"pun\">;<\/span><\/span> <span class=\"com\"><span class=\"com\">\/\/ TODO<\/span><\/span>\n<span class=\"pun\"><span class=\"pun\">}<\/span><\/span><\/code><\/pre>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n\u60f3\u4e00\u4e0b\u4e0a\u9762\u7684\u7a0b\u5e8f\u80fd\u4e0d\u80fd\u5199\u4e00\u4e2a\u8f6cGBK\u7684\uff1f \u5199\u4e2a\u7a0b\u5e8f\u81ea\u52a8\u5224\u65ad\u4e00\u4e2a\u6587\u4ef6\u662f\u54ea\u79cd\u7f16\u7801\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.1.10. \u5c1d\u8bd5\u4e86\u89e3\u65f6\u95f4\u7684\u672c\u8d28<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n\u65f6\u533a &amp; \u51ac\u4ee4\u65f6\u3001\u590f\u4ee4\u65f6 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Time_zone\">http:\/\/en.wikipedia.org\/wiki\/Time_zone<\/a><a href=\"ftp:\/\/ftp.iana.org\/tz\/data\/asia\">ftp:\/\/ftp.iana.org\/tz\/data\/asia<\/a><a href=\"http:\/\/zh.wikipedia.org\/wiki\/%E4%B8%AD%E5%9C%8B%E6%99%82%E5%8D%80\">http:\/\/zh.wikipedia.org\/wiki\/%E4%B8%AD%E5%9C%8B%E6%99%82%E5%8D%80<\/a><\/p>\n<p>\u95f0\u5e74 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Leap_year\">http:\/\/en.wikipedia.org\/wiki\/Leap_year<\/a><\/p>\n<p>\u95f0\u79d2 <a href=\"ftp:\/\/ftp.iana.org\/tz\/data\/leapseconds\">ftp:\/\/ftp.iana.org\/tz\/data\/leapseconds<\/a><\/p>\n<p><code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">System.currentTimeMillis()<\/code> \u8fd4\u56de\u7684\u65f6\u95f4\u662f\u4ec0\u4e48\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.1.11. \u53c2\u8003\u8d44\u6599<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/git-scm.com\/\">http:\/\/git-scm.com\/<\/a><\/p>\n<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/UTF-8\">http:\/\/en.wikipedia.org\/wiki\/UTF-8<\/a><\/p>\n<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/UTF-8\">http:\/\/www.iana.org\/time-zones<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.2. \u6269\u5c55\u5b66\u4e60<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.2.1. JavaScript\u77e5\u8bc6<\/h3>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.2.1.1. \u4ec0\u4e48\u662fprototype<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n\u4fee\u6539\u4ee3\u7801\uff0c\u4f7f\u7a0b\u5e8f\u8f93\u51fa\u201c1 3 5\u201d\uff1a <a href=\"http:\/\/jsfiddle.net\/Ts7Fk\/\">http:\/\/jsfiddle.net\/Ts7Fk\/<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.2.1.2. \u4ec0\u4e48\u662f\u95ed\u5305<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n\u770b\u4e00\u4e0b\u8fd9\u6bb5\u4ee3\u7801\uff0c\u5e76\u89e3\u91ca\u4e00\u4e0b\u4e3a\u4ec0\u4e48\u6309Button1\u65f6\u6ca1\u6709alert\u51fa\u201cThis is button: 1\u201d\uff0c\u5982\u4f55\u4fee\u6539\uff1a <a href=\"http:\/\/jsfiddle.net\/FDPj3\/1\/\">http:\/\/jsfiddle.net\/FDPj3\/1\/<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.2.1.3. \u4e86\u89e3\u5e76\u5b66\u4e60\u4e00\u4e2aJS\u6846\u67b6<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\njQuery ExtJS ArgularJS\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.2.1.4. \u5199\u4e00\u4e2aGreasemonkey\u63d2\u4ef6<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\"><span class=\"pln\"><span class=\"pln\">http<\/span><\/span><span class=\"pun\"><span class=\"pun\">:<\/span><\/span><span class=\"com\"><span class=\"com\">\/\/en.wikipedia.org\/wiki\/Greasemonkey<\/span><\/span><\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.2.1.5. \u5b66\u4e60node.js<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/jsfiddle.net\/FDPj3\/1\/\">http:\/\/nodejs.org\/<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.2.2. \u5b66\u4e60html5<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\nArgularJS\uff0c<a href=\"https:\/\/docs.angularjs.org\/api\">https:\/\/docs.angularjs.org\/api<\/a>\n<\/p><\/blockquote>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.2.3. \u53c2\u8003\u8d44\u6599<\/h3>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/www.ecmascript.org\/\">http:\/\/www.ecmascript.org\/<\/a><\/p>\n<p><a href=\"http:\/\/jsfiddle.net\/\">http:\/\/jsfiddle.net\/<\/a><\/p>\n<p><a href=\"http:\/\/jsbin.com\/\">http:\/\/jsbin.com\/<\/a><\/p>\n<p><a href=\"http:\/\/runjs.cn\/\">http:\/\/runjs.cn\/<\/a><\/p>\n<p><a href=\"http:\/\/runjs.cn\/\">http:\/\/userscripts.org\/<\/a>\n<\/p><\/blockquote>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u4e94\u3001 \u63a8\u8350\u4e66\u7c4d<\/h2>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\"><p>\n<a href=\"http:\/\/redirect.simba.taobao.com\/rd?w=unionnojs&amp;f=http%3A%2F%2Fai.taobao.com%2Fauction%2Fedetail.htm%3Fe%3DZvRvWHu6SOnuDAZjWhpTWAqt5sjBXAKAeCkqdCFDLOxBWJVBnwmj7tnO073KpEUuesayvrQ7hvm50VDmyluWgoBcpW0hhVAnj0d7jq0J5nxS0CLDc%252BkBd%252FlYGH3A75GKYDUMsRn%252FRLRYEUmnvjajAg%253D%253D%26ptype%3D100010%26from%3Dbasic&amp;k=5ccfdb950740ca16&amp;c=un&amp;b=alimm_0&amp;p=mm_42606752_12122458_44532463\">\u300a\u6df1\u5165Java\u865a\u62df\u673a\u300b<\/a><\/p>\n<p><a href=\"http:\/\/redirect.simba.taobao.com\/rd?w=unionnojs&amp;f=http%3A%2F%2Fai.taobao.com%2Fauction%2Fedetail.htm%3Fe%3DruMSq37OOfbuDAZjWhpTWAqt5sjBXAKAeCkqdCFDLOxBWJVBnwmj7tnO073KpEUuesayvrQ7hvm50VDmyluWgoBcpW0hhVAnj0d7jq0J5nxS0CLDc%252BkBd%252FlYGH3A75GKYDUMsRn%252FRLTIpZdTC6RHCA%253D%253D%26ptype%3D100010%26from%3Dbasic&amp;k=5ccfdb950740ca16&amp;c=un&amp;b=alimm_0&amp;p=mm_42606752_12122458_44532463\">\u300a\u6df1\u5165\u7406\u89e3Java\u865a\u62df\u673a\u300b<\/a><\/p>\n<p><a href=\"http:\/\/redirect.simba.taobao.com\/rd?w=unionnojs&amp;f=http%3A%2F%2Fai.taobao.com%2Fauction%2Fedetail.htm%3Fe%3DXNiOKJpiO7TuDAZjWhpTWDaAZ8A7vIffKo6rHv51kdtBWJVBnwmj7tnO073KpEUuesayvrQ7hvm50VDmyluWgoBcpW0hhVAnj0d7jq0J5nxS0CLDc%252BkBd%252FlYGH3A75GKYDUMsRn%252FRLSqMCmgzjxR%252BQ%253D%253D%26ptype%3D100010%26from%3Dbasic&amp;k=5ccfdb950740ca16&amp;c=un&amp;b=alimm_0&amp;p=mm_42606752_12122458_44532463\">\u300aEffective Java\u300b<\/a><\/p>\n<p><a href=\"http:\/\/redirect.simba.taobao.com\/rd?w=unionnojs&amp;f=http%3A%2F%2Fai.taobao.com%2Fauction%2Fedetail.htm%3Fe%3DUTVfosmcpeW6k0Or%252B%252BH4tHI7U6uhyhd5ENbBVuy6U6CLltG5xFicOdXrTUTgh9sMDPIwxrc30rg%252Bti0P%252FwKUmz9rLA8dYnymkYuN890a%252Fa8F2i6YdfNn1lRmtaud%252B0v%252Bt5z%252BDtPo5eXZSYdm6WZA2w%253D%253D%26ptype%3D100010%26from%3Dbasic&amp;k=5ccfdb950740ca16&amp;c=un&amp;b=alimm_0&amp;p=mm_42606752_12122458_44532463\">\u300a\u4e03\u5468\u4e03\u8bed\u8a00\u300b<\/a><\/p>\n<p><a href=\"http:\/\/redirect.simba.taobao.com\/rd?w=unionnojs&amp;f=http%3A%2F%2Fai.taobao.com%2Fauction%2Fedetail.htm%3Fe%3D8E0ZFkGCa4nuDAZjWhpTWIH%252BZP%252FBKjMYaRpVLarZ1rdBWJVBnwmj7tnO073KpEUuesayvrQ7hvm50VDmyluWgoBcpW0hhVAnj0d7jq0J5nxS0CLDc%252BkBd%252FlYGH3A75GKYDUMsRn%252FRLTmCHcueORLqw%253D%253D%26ptype%3D100010%26from%3Dbasic&amp;k=5ccfdb950740ca16&amp;c=un&amp;b=alimm_0&amp;p=mm_42606752_12122458_44532463\">\u300a\u4e03\u5468\u4e03\u6570\u636e\u300b<\/a><\/p>\n<p><a href=\"http:\/\/redirect.simba.taobao.com\/rd?w=unionnojs&amp;f=http%3A%2F%2Fai.taobao.com%2Fauction%2Fedetail.htm%3Fe%3DX2wRRnOMgffuDAZjWhpTWCGSPR3bshuFJQ5oPTLBF1NBWJVBnwmj7tnO073KpEUuesayvrQ7hvm50VDmyluWgoBcpW0hhVAnj0d7jq0J5nxS0CLDc%252BkBd%252FlYGH3A75GKYDUMsRn%252FRLSHNzbOReZhTA%253D%253D%26ptype%3D100010%26from%3Dbasic&amp;k=5ccfdb950740ca16&amp;c=un&amp;b=alimm_0&amp;p=mm_42606752_12122458_44532463\">\u300aHadoop\u6280\u672f\u5185\u5e55\u300b<\/a><\/p>\n<p><a href=\"http:\/\/redirect.simba.taobao.com\/rd?w=unionnojs&amp;f=http%3A%2F%2Fai.taobao.com%2Fauction%2Fedetail.htm%3Fe%3Dl9hhJRCCD9nebLdhAWchHLbUU0JZj4TW1BHSvcRrnkWLltG5xFicOdXrTUTgh9sMDPIwxrc30rg%252Bti0P%252FwKUmz9rLA8dYnymkYuN890a%252Fa8F2i6YdfNn1lRmtaud%252B0v%252Bt5z%252BDtPo5eUhCRMIlenyaA%253D%253D%26ptype%3D100010%26from%3Dbasic&amp;k=5ccfdb950740ca16&amp;c=un&amp;b=alimm_0&amp;p=mm_42606752_12122458_44532463\">\u300aHbase In Action\u300b<\/a><\/p>\n<p><a href=\"http:\/\/redirect.simba.taobao.com\/rd?w=unionnojs&amp;f=http%3A%2F%2Fai.taobao.com%2Fauction%2Fedetail.htm%3Fe%3DBqy%252Fse2OntzghojqVNxKsfE0PFzNEA7q8HgNo8uZfyqLltG5xFicOdXrTUTgh9sMDPIwxrc30rg%252Bti0P%252FwKUmz9rLA8dYnymkYuN890a%252Fa8F2i6YdfNn1lRmtaud%252B0v%252Bt5z%252BDtPo5eXxMS9zg13LJg%253D%253D%26ptype%3D100010%26from%3Dbasic&amp;k=5ccfdb950740ca16&amp;c=un&amp;b=alimm_0&amp;p=mm_42606752_12122458_44532463\">\u300aMahout In Action\u300b<\/a><\/p>\n<p><a href=\"http:\/\/redirect.simba.taobao.com\/rd?w=unionnojs&amp;f=http%3A%2F%2Fai.taobao.com%2Fauction%2Fedetail.htm%3Fe%3Dw95piRGiFybuDAZjWhpTWGdkho7Gvmakc5n8OCikHcNBWJVBnwmj7tnO073KpEUuesayvrQ7hvm50VDmyluWgoBcpW0hhVAnj0d7jq0J5nxS0CLDc%252BkBd%252FlYGH3A75GKYDUMsRn%252FRLTsOzyxQ6nLQA%253D%253D%26ptype%3D100010%26from%3Dbasic&amp;k=5ccfdb950740ca16&amp;c=un&amp;b=alimm_0&amp;p=mm_42606752_12122458_44532463\">\u300a\u8fd9\u5c31\u662f\u641c\u7d22\u5f15\u64ce\u300b<\/a><\/p>\n<p><a href=\"http:\/\/redirect.simba.taobao.com\/rd?w=unionnojs&amp;f=http%3A%2F%2Fai.taobao.com%2Fauction%2Fedetail.htm%3Fe%3DiuMmiSYV%252BobghojqVNxKsZdy6yFShhOriLSVUC%252FYQraLltG5xFicOdXrTUTgh9sMDPIwxrc30rg%252Bti0P%252FwKUmz9rLA8dYnymkYuN890a%252Fa8F2i6YdfNn1lRmtaud%252B0v%252Bt5z%252BDtPo5eV7QtacfFHhKQ%253D%253D%26ptype%3D100010%26from%3Dbasic&amp;k=5ccfdb950740ca16&amp;c=un&amp;b=alimm_0&amp;p=mm_42606752_12122458_44532463\">\u300aSolr In Action\u300b<\/a><\/p>\n<p><a href=\"http:\/\/redirect.simba.taobao.com\/rd?w=unionnojs&amp;f=http%3A%2F%2Fai.taobao.com%2Fauction%2Fedetail.htm%3Fe%3DMkmsPHOlBQXuDAZjWhpTWEDeIpay%252FCpUxDf4a6L3B5VBWJVBnwmj7tnO073KpEUuesayvrQ7hvm50VDmyluWgoBcpW0hhVAnj0d7jq0J5nxS0CLDc%252BkBd%252FlYGH3A75GKYDUMsRn%252FRLStvh1VudKGNw%253D%253D%26ptype%3D100010%26from%3Dbasic&amp;k=5ccfdb950740ca16&amp;c=un&amp;b=alimm_0&amp;p=mm_42606752_12122458_44532463\">\u300a\u6df1\u5165\u5206\u6790Java Web\u6280\u672f\u5185\u5e55\u300b<\/a><\/p>\n<p><a href=\"http:\/\/redirect.simba.taobao.com\/rd?w=unionnojs&amp;f=http%3A%2F%2Fai.taobao.com%2Fauction%2Fedetail.htm%3Fe%3DQNSw6jWKnzLuDAZjWhpTWJFwhKp5ZMJT%252FFY2y45CqT5BWJVBnwmj7tnO073KpEUuesayvrQ7hvm50VDmyluWgoBcpW0hhVAnj0d7jq0J5nxS0CLDc%252BkBd%252FlYGH3A75GKYDUMsRn%252FRLQ7kLHNSG8FRg%253D%253D%26ptype%3D100010%26from%3Dbasic&amp;k=5ccfdb950740ca16&amp;c=un&amp;b=alimm_0&amp;p=mm_42606752_12122458_44532463\">\u300a\u5927\u578b\u7f51\u7ad9\u6280\u672f\u67b6\u6784\u300b<\/a><\/p>\n<p><a href=\"http:\/\/redirect.simba.taobao.com\/rd?w=unionnojs&amp;f=http%3A%2F%2Fai.taobao.com%2Fauction%2Fedetail.htm%3Fe%3DCZ6zy4IdlJDuDAZjWhpTWNAcKbFgIMNwzqUbDwbgWitBWJVBnwmj7tnO073KpEUuesayvrQ7hvm50VDmyluWgoBcpW0hhVAnj0d7jq0J5nxS0CLDc%252BkBd%252FlYGH3A75GKYDUMsRn%252FRLS9VMwrtHHGbA%253D%253D%26ptype%3D100010%26from%3Dbasic&amp;k=5ccfdb950740ca16&amp;c=un&amp;b=alimm_0&amp;p=mm_42606752_12122458_44532463\">\u300a\u9ad8\u6027\u80fdMySQL\u300b<\/a><\/p>\n<p><a href=\"http:\/\/redirect.simba.taobao.com\/rd?w=unionnojs&amp;f=http%3A%2F%2Fai.taobao.com%2Fauction%2Fedetail.htm%3Fe%3DXV4hpKdYaIjuDAZjWhpTWBZ3v%252F21wroSrQw8YMeO7klBWJVBnwmj7tnO073KpEUuesayvrQ7hvm50VDmyluWgoBcpW0hhVAnj0d7jq0J5nxS0CLDc%252BkBd%252FlYGH3A75GKYDUMsRn%252FRLRkzTznPcS%252Bmw%253D%253D%26ptype%3D100010%26from%3Dbasic&amp;k=5ccfdb950740ca16&amp;c=un&amp;b=alimm_0&amp;p=mm_42606752_12122458_44532463\">\u300a\u7b97\u6cd5\u5bfc\u8bba\u300b<\/a><\/p>\n<p>\u300a\u8ba1\u7b97\u673a\u7a0b\u5e8f\u8bbe\u8ba1\u827a\u672f\u300b<\/p>\n<p><a href=\"http:\/\/redirect.simba.taobao.com\/rd?w=unionnojs&amp;f=http%3A%2F%2Fai.taobao.com%2Fauction%2Fedetail.htm%3Fe%3D3QbaGr66%252BlruDAZjWhpTWMYVYqDsaRju%252BGm%252FBL973ipBWJVBnwmj7tnO073KpEUuesayvrQ7hvm50VDmyluWgoBcpW0hhVAnj0d7jq0J5nxS0CLDc%252BkBd%252FlYGH3A75GKYDUMsRn%252FRLSLnr%252BCukWK0w%253D%253D%26ptype%3D100010%26from%3Dbasic&amp;k=5ccfdb950740ca16&amp;c=un&amp;b=alimm_0&amp;p=mm_42606752_12122458_44532463\">\u300a\u4ee3\u7801\u5927\u5168\u300b<\/a><\/p>\n<p><a href=\"http:\/\/redirect.simba.taobao.com\/rd?w=unionnojs&amp;f=http%3A%2F%2Fai.taobao.com%2Fauction%2Fedetail.htm%3Fe%3DtKN1RkDQOXruDAZjWhpTWKUvOcPeTa0lQbkDIVMzTDZBWJVBnwmj7tnO073KpEUuesayvrQ7hvm50VDmyluWgoBcpW0hhVAnj0d7jq0J5nxS0CLDc%252BkBd%252FlYGH3A75GKYDUMsRn%252FRLSjIPjO6CMcTQ%253D%253D%26ptype%3D100010%26from%3Dbasic&amp;k=5ccfdb950740ca16&amp;c=un&amp;b=alimm_0&amp;p=mm_42606752_12122458_44532463\">\u300aJavaScript\u6743\u5a01\u6307\u5357\u300b<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>\u539f\u6587\u51fa\u5904\uff1a <a href=\"http:\/\/www.hollischuang.com\/archives\/489\" target=\"_blank\">hollischuang\uff08@Hollis_Chuang\uff09<\/a>\n<\/p><\/blockquote>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\">\n<p style=\"margin: 1em 0px;\"><strong style=\"color: #4870ac;\">\u4e00\u53e5\u8bdd\u603b\u7ed3\uff1a\u6210\u795e\u4e4b\u8def\u6ca1\u6709\u6377\u5f84\uff1a\u4ece JVM \u4e0e\u5e76\u53d1\u624e\u5230\u5206\u5e03\u5f0f\u3001\u5b89\u5168\u548c\u5de5\u7a0b\u5316\uff0c\u518d\u9760\u9879\u76ee\u3001\u6e90\u7801\u548c\u4e66\u5355\u628a\u77e5\u8bc6\u70b9\u8fde\u6210\u53ef\u6267\u884c\u7684\u4f53\u7cfb\u3002<\/strong><\/p>\n<\/blockquote>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>\u8fd9\u662f\u4e00\u4efdJava \u5de5\u7a0b\u5e08\u6210\u795e\u4e4b\u8def\uff1a\u6309\u57fa\u7840\u3001\u8fdb\u9636\u3001\u9ad8\u7ea7\u3001\u6269\u5c55\u548c\u63a8\u8350\u4e66\u7c4d\u6392\u4e0b\u6765\uff0c\u6bcf\u6761\u90fd\u5e26\u7740\u6e90\u7801\u5165\u53e3\u3001\u5de5\u5177\u548c\u53c2\u8003\u94fe\u63a5 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[171],"_links":{"self":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/1521"}],"collection":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1521"}],"version-history":[{"count":2,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/1521\/revisions"}],"predecessor-version":[{"id":1523,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/1521\/revisions\/1523"}],"wp:attachment":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1521"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1521"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1521"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}