{"id":106,"date":"2023-12-22T13:57:43","date_gmt":"2023-12-22T05:57:43","guid":{"rendered":"http:\/\/140.143.165.40\/?p=106"},"modified":"2023-12-22T14:19:42","modified_gmt":"2023-12-22T06:19:42","slug":"java%e9%ab%98%e7%ba%a7","status":"publish","type":"post","link":"http:\/\/www.sunqizheng1997.com\/index.php\/2023\/12\/22\/java%e9%ab%98%e7%ba%a7\/","title":{"rendered":"Java\u9ad8\u7ea7"},"content":{"rendered":"<h1>\u7b2c\u4e00\u90e8\u5206 \u9762\u5411\u5bf9\u8c61\u9ad8\u7ea7<\/h1>\n<h2>\u4e00\u3001\u9759\u6001<\/h2>\n<p>static\u8bfb\u4f5c\u9759\u6001\uff0c\u53ef\u4ee5\u7528\u6765\u4fee\u9970\u6210\u5458\u53d8\u91cf\uff0c\u4e5f\u80fd\u4fee\u9970\u6210\u5458\u65b9\u6cd5\u3002\u6211\u4eec\u5148\u6765\u5b66\u4e60static\u4fee\u9970\u6210\u5458\u53d8\u91cf<\/p>\n<h3>1.1 static\u4fee\u9970\u6210\u5458\u53d8\u91cf<\/h3>\n<p>Java\u4e2d\u7684\u6210\u5458\u53d8\u91cf\u6309\u7167\u6709\u65e0static\u4fee\u9970\u5206\u4e3a\u4e24\u79cd\uff1a<strong>\u7c7b\u53d8\u91cf\u3001\u5b9e\u4f8b\u53d8\u91cf<\/strong><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231117163719483.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231117163719483.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231117163719483\" \/><\/div><\/p>\n<p>\u9759\u6001\u53d8\u91cf\u662f\u5c5e\u4e8e\u7c7b\u7684\uff0c\u53ea\u9700\u8981\u901a\u8fc7\u7c7b\u540d\u5c31\u53ef\u4ee5\u8c03\u7528\uff1a<strong><code>\u7c7b\u540d.\u9759\u6001\u53d8\u91cf<\/code><\/strong><\/p>\n<p>\u5b9e\u4f8b\u53d8\u91cf\u662f\u5c5e\u4e8e\u5bf9\u8c61\u7684\uff0c\u9700\u8981\u901a\u8fc7\u5bf9\u8c61\u624d\u80fd\u8c03\u7528\uff1a<strong><code>\u5bf9\u8c61.\u5b9e\u4f8b\u53d8\u91cf<\/code><\/strong><\/p>\n<h3>1.2 static\u4fee\u9970\u6210\u5458\u53d8\u91cf\u7684\u5e94\u7528\u573a\u666f<\/h3>\n<p>\u5982\u679c\u67d0\u4e2a\u6570\u636e\u53ea\u9700\u8981\u4e00\u4efd\uff0c\u4e14\u5e0c\u671b\u80fd\u591f\u88ab\u5171\u4eab\uff08\u8bbf\u95ee\u3001\u4fee\u6539\uff09\uff0c\u5219\u8be5\u6570\u636e\u53ef\u4ee5\u5b9a\u4e49\u6210\u7c7b\u53d8\u91cf<\/p>\n<h3>1.3 static\u4fee\u9970\u6210\u5458\u65b9\u6cd5<\/h3>\n<p>\u6210\u5458\u65b9\u6cd5\u6839\u636e\u6709\u65e0static\u4e5f\u5206\u4e3a\u4e24\u7c7b\uff1a<strong>\u7c7b\u65b9\u6cd5\u3001\u5b9e\u4f8b\u65b9\u6cd5<\/strong><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231117164220650.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231117164220650.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231117164220650\" \/><\/div><\/p>\n<p>\u6709static\u4fee\u9970\u7684\u65b9\u6cd5\uff0c\u662f\u5c5e\u4e8e\u7c7b\u7684\uff0c\u79f0\u4e3a<strong>\u7c7b\u65b9\u6cd5<\/strong>\uff1b\u8c03\u7528\u65f6\u76f4\u63a5\u7528\u7c7b\u540d\u8c03\u7528\u5373\u53ef\u3002<\/p>\n<p>\u65e0static\u4fee\u9970\u7684\u65b9\u6cd5\uff0c\u662f\u5c5e\u4e8e\u5bf9\u8c61\u7684\uff0c\u79f0\u4e3a\u5b9e\u4f8b\u65b9\u6cd5\uff1b\u8c03\u7528\u65f6\uff0c\u9700\u8981\u4f7f\u7528\u5bf9\u8c61\u8c03\u7528\u3002<\/p>\n<p>\u539f\u7406\uff1a<\/p>\n<p>\u7c7b\u65b9\u6cd5\uff1astatic\u4fee\u9970\u7684\u65b9\u6cd5\uff0c\u53ef\u4ee5\u88ab\u7c7b\u540d\u8c03\u7528\uff0c\u662f\u56e0\u4e3a\u5b83\u662f\u968f\u7740\u7c7b\u7684\u52a0\u8f7d\u800c\u52a0\u8f7d\u7684\uff1b\u6240\u4ee5\u7c7b\u540d\u76f4\u63a5\u5c31\u53ef\u4ee5\u627e\u5230static\u4fee\u9970\u7684\u65b9\u6cd5<\/p>\n<p>\u5b9e\u4f8b\u65b9\u6cd5\uff1a\u975estatic\u4fee\u9970\u7684\u65b9\u6cd5\uff0c\u9700\u8981\u521b\u5efa\u5bf9\u8c61\u540e\u624d\u80fd\u8c03\u7528\uff0c\u662f\u56e0\u4e3a\u5b9e\u4f8b\u65b9\u6cd5\u4e2d\u53ef\u80fd\u4f1a\u8bbf\u95ee\u5b9e\u4f8b\u53d8\u91cf\uff0c\u800c\u5b9e\u4f8b\u53d8\u91cf\u9700\u8981\u521b\u5efa\u5bf9\u8c61\u540e\u624d\u5b58\u5728\u3002<\/p>\n<p>\u6240\u4ee5\u5b9e\u4f8b\u65b9\u6cd5\uff0c\u5fc5\u987b\u521b\u5efa\u5bf9\u8c61\u540e\u624d\u80fd\u8c03\u7528\u3002<\/p>\n<h3>1.4 \u5de5\u5177\u7c7b<\/h3>\n<p>\u5982\u679c\u4e00\u4e2a\u7c7b\u4e2d\u7684\u65b9\u6cd5\u5168\u90fd\u662f\u9759\u6001\u7684\uff0c\u90a3\u4e48\u8fd9\u4e2a\u7c7b\u4e2d\u7684\u65b9\u6cd5\u5c31\u5168\u90fd\u53ef\u4ee5\u88ab\u7c7b\u540d\u76f4\u63a5\u8c03\u7528\uff0c\u7531\u4e8e\u8c03\u7528\u8d77\u6765\u975e\u5e38\u65b9\u4fbf\uff0c\u5c31\u50cf\u4e00\u4e2a\u5de5\u5177\u4e00\u4e0b\uff0c\u6240\u4ee5\u628a\u8fd9\u6837\u7684\u7c7b\u5c31\u53eb\u505a\u5de5\u5177\u7c7b<\/p>\n<p>\u4e3e\u4f8b\uff1a<\/p>\n<pre><code class=\"language-java\">public class MyUtils{\n    public static String createCode(int n){\n        \/\/1.\u5b9a\u4e49\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c\u7528\u6765\u8bb0\u5f55\u4ea7\u751f\u7684\u9a8c\u8bc1\u7801\n        String code = &quot;&quot;;\n        \/\/2.\u9a8c\u8bc1\u7801\u662f\u7531\u6240\u6709\u7684\u5927\u5199\u5b57\u6bcd\u3001\u5c0f\u5199\u5b57\u6bcd\u6216\u8005\u6570\u5b57\u5b57\u7b26\u7ec4\u6210\n        \/\/\u8fd9\u91cc\u5148\u628a\u6240\u6709\u7684\u5b57\u7b26\u5199\u6210\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c\u4e00\u4f1a\u4ece\u5b57\u7b26\u4e32\u4e2d\u968f\u673a\u627e\u5b57\u7b26\n        String data = &quot;0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKMNOPQRSTUVWXYZ&quot;;\n\n        \/\/3.\u5faa\u73afn\u6b21\uff0c\u4ea7\u751fn\u4e2a\u7d22\u5f15,\u518d\u901a\u8fc7\u7d22\u5f15\u83b7\u53d6\u5b57\u7b26\n        Random r = new Random();\n        for(int i=0; i&lt;n; i++){\n            int index = r.nextInt(data.length());\n            char ch = data.charAt(index);\n            \/\/4.\u628a\u83b7\u53d6\u5230\u7684\u5b57\u7b26\uff0c\u62fc\u63a5\u5230code\u9a8c\u8bc1\u7801\u5b57\u7b26\u4e32\u4e0a\u3002\n            code+=ch;\n        }\n        \/\/\u6700\u540e\u8fd4\u56decode,code\u7684\u503c\u5c31\u662f\u9a8c\u8bc1\u7801\n        return code;\n    }\n}<\/code><\/pre>\n<p>\u63a5\u7740\u53ef\u4ee5\u5728\u4efb\u4f55\u4f4d\u7f6e\u8c03\u7528<code>MyUtils<\/code>\u7684<code>createCOde()\u65b9\u6cd5<\/code>\u4ea7\u751f\u4efb\u610f\u4e2a\u6570\u7684\u9a8c\u8bc1\u7801<\/p>\n<pre><code class=\"language-java\">\/\/\u6bd4\u5982\u8fd9\u662f\u4e00\u4e2a\u767b\u5f55\u754c\u9762\npublic class LoginDemo{\n    public static void main(String[] args){\n        System.out.println(MyUtils.createCode());\n    }\n}\n\n\/\/\u6bd4\u5982\u8fd9\u662f\u4e00\u4e2a\u6ce8\u518c\u754c\u9762\npublic class registerDemo{\n    public static void main(String[] args){\n        System.out.println(MyUtils.createCode());\n    }\n}<\/code><\/pre>\n<p>\u5de5\u5177\u7c7b\u91cc\u7684\u65b9\u6cd5\u5168\u90fd\u662f\u9759\u6001\u7684\uff0c\u63a8\u8350\u7528\u7c7b\u540d\u8c03\u7528\u4e3a\u4e86\u9632\u6b62\u4f7f\u7528\u8005\u7528\u5bf9\u8c61\u8c03\u7528\u3002\u6211\u4eec\u53ef\u4ee5\u628a\u5de5\u5177\u7c7b\u7684\u6784\u9020\u65b9\u6cd5\u79c1\u6709\u5316<\/p>\n<pre><code class=\"language-java\">public class MyUtils{\n    \/\/\u79c1\u6709\u5316\u6784\u9020\u65b9\u6cd5\uff1a\u8fd9\u6837\u522b\u4eba\u5c31\u4e0d\u80fd\u4f7f\u7528\u6784\u9020\u65b9\u6cd5new\u5bf9\u8c61\u4e86\n    private MyUtils(){\n    }\n    \/\/\u7c7b\u65b9\u6cd5\n    public static String createCode(int n){\n       ...\n    }\n}<\/code><\/pre>\n<h3>1.5 static\u6ce8\u610f\u4e8b\u9879<\/h3>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231117165531764.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231117165531764.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231117165531764\" \/><\/div><\/p>\n<h3>1.6 static\u5e94\u7528\uff08\u4ee3\u7801\u5757\uff09<\/h3>\n<p>\u4ee3\u7801\u5757\u6839\u636e\u6709\u65e0static\u4fee\u9970\u5206\u4e3a\u4e24\u79cd\uff1a\u9759\u6001\u4ee3\u7801\u5757\u3001\u5b9e\u4f8b\u4ee3\u7801\u5757<\/p>\n<h4>1.6.1 \u9759\u6001\u4ee3\u7801\u5757<\/h4>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231117165736093.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231117165736093.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231117165736093\" \/><\/div><\/p>\n<pre><code class=\"language-java\">public class Student {\n    static int number = 80;\n    static String schoolName = &quot;\u9ed1\u9a6c&quot;;\n    \/\/ \u9759\u6001\u4ee3\u7801\u5757\n    static {\n        System.out.println(&quot;\u9759\u6001\u4ee3\u7801\u5757\u6267\u884c\u4e86~~&quot;);\n        schoolName = &quot;\u9ed1\u9a6c&quot;;\n    }\n}<\/code><\/pre>\n<p>\u9759\u6001\u4ee3\u7801\u5757\u4e0d\u9700\u8981\u521b\u5efa\u5bf9\u8c61\u5c31\u80fd\u591f\u6267\u884c<\/p>\n<pre><code class=\"language-java\">public class Test {\n    public static void main(String[] args) {\n        \/\/ \u76ee\u6807\uff1a\u8ba4\u8bc6\u4e24\u79cd\u4ee3\u7801\u5757\uff0c\u4e86\u89e3\u4ed6\u4eec\u7684\u7279\u70b9\u548c\u57fa\u672c\u4f5c\u7528\u3002\n        System.out.println(Student.number);\n        System.out.println(Student.number);\n        System.out.println(Student.number);\n        System.out.println(Student.schoolName); \/\/ \u9ed1\u9a6c\n    }\n}<\/code><\/pre>\n<p>\u9759\u6001\u4ee3\u7801\u5757\uff0c\u968f\u7740\u7c7b\u7684\u52a0\u8f7d\u800c\u6267\u884c\uff0c\u800c\u4e14\u53ea\u6267\u884c\u4e00\u6b21<\/p>\n<h4>1.6.2 \u5b9e\u4f8b\u4ee3\u7801\u5757<\/h4>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231117165908025.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231117165908025.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231117165908025\" \/><\/div><\/p>\n<p>\u5b9e\u4f8b\u4ee3\u7801\u5757\u7684\u4f5c\u7528\u548c\u6784\u9020\u5668\u7684\u4f5c\u7528\u662f\u4e00\u6837\u7684\uff0c\u7528\u6765\u7ed9\u5bf9\u8c61\u521d\u59cb\u5316\u503c\uff1b\u800c\u4e14\u6bcf\u6b21\u521b\u5efa\u5bf9\u8c61\u4e4b\u524d\u90fd\u4f1a\u5148\u6267\u884c\u5b9e\u4f8b\u4ee3\u7801\u5757<\/p>\n<p>\u5b9e\u4f8b\u4ee3\u7801\u5757\u6bcf\u6b21\u521b\u5efa\u5bf9\u8c61\u4e4b\u524d\u90fd\u4f1a\u6267\u884c\u4e00\u6b21<\/p>\n<h3>1.7 static\u5e94\u7528\uff08\u5355\u4f8b\u8bbe\u8ba1\u6a21\u5f0f\uff09<\/h3>\n<h2>\u4e8c\u3001\u7ee7\u627f<\/h2>\n<h3>2.1 \u6982\u8ff0<\/h3>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231117170201620.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231117170201620.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231117170201620\" \/><\/div><\/p>\n<h3>2.2 \u7ee7\u627f\u7684\u597d\u5904<\/h3>\n<p>\u53ef\u4ee5\u628a\u91cd\u590d\u7684\u4ee3\u7801\u63d0\u53d6\u51fa\u6765\uff0c\u4f5c\u4e3a\u7236\u7c7b\uff0c\u7136\u540e\u8ba9\u5176\u4ed6\u7c7b\u7ee7\u627f\u7236\u7c7b\u5c31\u53ef\u4ee5\u4e86\uff0c\u8fd9\u6837\u53ef\u4ee5\u63d0\u9ad8\u4ee3\u7801\u7684\u590d\u7528\u6027<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120091840674.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120091840674.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231120091840674\" \/><\/div><\/p>\n<p>\u5148\u5199\u4e00\u4e2a\u7236\u7c7b People\uff0c\u7528\u6765\u8bbe\u8ba1Teacher\u548cConsultant\u516c\u6709\u7684\u6210\u5458<\/p>\n<pre><code class=\"language-java\">public class People{\n    private String name;\n    public String getName(){\n        return name;\n    }\n    public void setName(String name){\n        this.name=name;\n    }\n\n}<\/code><\/pre>\n<p>\u518d\u5199\u4e24\u4e2a\u5b50\u7c7bTeacher\u7ee7\u627fPeople\u7c7b\uff0c\u540c\u65f6\u5728\u5b50\u7c7b\u4e2d\u52a0\u4e0a\u81ea\u5df1\u7279\u6709\u7684\u6210\u5458<\/p>\n<pre><code class=\"language-java\">public class Teacher extends People{\n    private String skill; \/\/\u6280\u80fd\n    public String getSkill(){\n        return skill;\n    }\n    public void setSkill(String skill){\n        this.skill=skill;\n    }\n    public void printInfo(){\n        System.out.println(getName()+&quot;\u5177\u5907\u7684\u6280\u80fd\uff1a&quot;+skill);\n    }\n}<\/code><\/pre>\n<p>consultant\u7c7b<\/p>\n<pre><code class=\"language-java\">public class Consultant extends People{\n    private int number;\n\n    public int getNumber(){\n        return number;\n    }\n    public void setNumber(int number){\n        this.number = number;\n    }\n}<\/code><\/pre>\n<p>\u6700\u540e\u518d\u5199\u4e00\u4e2a\u6d4b\u8bd5\u7c7b\uff0c\u518d\u6d4b\u8bd5\u7c7b\u4e2d\u521b\u5efaTeacher\u3001Consultant\u5bf9\u8c61\uff0c\u5e76\u8c03\u7528\u65b9\u6cd5<\/p>\n<pre><code class=\"language-java\">public class Test {\n    public static void main(String[] args) {\n        \/\/ \u76ee\u6807\uff1a\u641e\u6e05\u695a\u7ee7\u627f\u7684\u597d\u5904\u3002\n        Teacher t = new Teacher();\n        t.setName(&quot;\u64ad\u4ed4&quot;);\n        t.setSkill(&quot;Java\u3001Spring&quot;);\n        System.out.println(t.getName());\n        System.out.println(t.getSkill());\n        t.printInfo();\n    }\n}<\/code><\/pre>\n<h3>2.3 \u6743\u9650\u7684\u4fee\u9970\u7b26<\/h3>\n<p>\u6743\u9650\u4fee\u9970\u7b26\u662f\u7528\u6765\u9650\u5236\u7c7b\u7684\u6210\u5458\uff08\u6210\u5458\u53d8\u91cf\u3001\u6210\u5458\u65b9\u6cd5\u3001\u6784\u9020\u5668...\uff09\u80fd\u591f\u88ab\u8bbf\u95ee\u7684\u8303\u56f4<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120093221526.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120093221526.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231120093221526\" \/><\/div><\/p>\n<p>\u4e3e\u4f8b\uff1a<\/p>\n<pre><code class=\"language-java\">public class Fu {\n    \/\/ 1\u3001\u79c1\u6709:\u53ea\u80fd\u5728\u672c\u7c7b\u4e2d\u8bbf\u95ee\n    private void privateMethod(){\n        System.out.println(&quot;==private==&quot;);\n    }\n\n    \/\/ 2\u3001\u7f3a\u7701\uff1a\u672c\u7c7b\uff0c\u540c\u4e00\u4e2a\u5305\u4e0b\u7684\u7c7b\n    void method(){\n        System.out.println(&quot;==\u7f3a\u7701==&quot;);\n    }\n\n    \/\/ 3\u3001protected: \u672c\u7c7b\uff0c\u540c\u4e00\u4e2a\u5305\u4e0b\u7684\u7c7b\uff0c\u4efb\u610f\u5305\u4e0b\u7684\u5b50\u7c7b\n    protected void protectedMethod(){\n        System.out.println(&quot;==protected==&quot;);\n    }\n\n    \/\/ 4\u3001public\uff1a \u672c\u7c7b\uff0c\u540c\u4e00\u4e2a\u5305\u4e0b\u7684\u7c7b\uff0c\u4efb\u610f\u5305\u4e0b\u7684\u5b50\u7c7b\uff0c\u4efb\u610f\u5305\u4e0b\u7684\u4efb\u610f\u7c7b\n    public void publicMethod(){\n        System.out.println(&quot;==public==&quot;);\n    }\n\n    public void test(){\n        \/\/\u5728\u672c\u7c7b\u4e2d\uff0c\u6240\u6709\u6743\u9650\u90fd\u53ef\u4ee5\u88ab\u8bbf\u95ee\u5230\n        privateMethod(); \/\/\u6b63\u786e\n        method(); \/\/\u6b63\u786e\n        protectedMethod(); \/\/\u6b63\u786e\n        publicMethod(); \/\/\u6b63\u786e\n    }\n\n}<\/code><\/pre>\n<p>\u5728\u548cFu\u7c7b\u540c\u4e00\u4e2a\u5305\u4e0b\uff0c\u521b\u5efa\u4e00\u4e2a\u6d4b\u8bd5\u7c7bDemo\uff0c\u6f14\u793a\u540c\u4e00\u4e2a\u5305\u4e0b\u53ef\u4ee5\u8bbf\u95ee\u5230\u54ea\u4e9b\u6743\u9650\u4fee\u9970\u7684\u65b9\u6cd5<\/p>\n<pre><code class=\"language-java\">public class Demo {\n    public static void main(String[] args) {\n        Fu f = new Fu();\n        \/\/ f.privateMethod();   \/\/\u79c1\u6709\u65b9\u6cd5\u65e0\u6cd5\u4f7f\u7528\n        f.method();\n        f.protectedMethod();\n        f.publicMethod();\n    }\n}<\/code><\/pre>\n<p>\u5728\u53e6\u4e00\u4e2a\u5305\u4e0b\u521b\u5efa\u4e00\u4e2aFu\u7c7b\u7684\u5b50\u7c7b\uff0c\u6f14\u793a\u4e0d\u540c\u5305\u4e0b\u7684\u5b50\u7c7b\u4e2d\u53ef\u4ee5\u8bbf\u95ee\u54ea\u4e9b\u6743\u9650\u4fee\u9970\u7684\u65b9\u6cd5<\/p>\n<pre><code class=\"language-java\">public class Zi extends Fu {\n    \/\/\u5728\u4e0d\u540c\u5305\u4e0b\u7684\u5b50\u7c7b\u4e2d\uff0c\u53ea\u80fd\u8bbf\u95ee\u5230public\u3001protected\u4fee\u9970\u7684\u65b9\u6cd5\n    public void test(){\n        \/\/ privateMethod(); \/\/ \u62a5\u9519\n        \/\/ method(); \/\/ \u62a5\u9519\n        protectedMethod();  \/\/\u6b63\u786e\n        publicMethod(); \/\/\u6b63\u786e\n    }\n}<\/code><\/pre>\n<p>\u5728\u548cFu\u7c7b\u4e0d\u540c\u7684\u5305\u4e0b\uff0c\u521b\u5efa\u4e00\u4e2a\u6d4b\u8bd5\u7c7bDemo2\uff0c\u6f14\u793a\u4e00\u4e0b\u4e0d\u540c\u5305\u7684\u65e0\u5173\u7c7b\uff0c\u80fd\u8bbf\u95ee\u5230\u54ea\u4e9b\u6743\u9650\u4fee\u9970\u7684\u65b9\u6cd5<\/p>\n<pre><code class=\"language-java\">public class Demo2 {\n    public static void main(String[] args) {\n        Fu f = new Fu();\n        \/\/ f.privateMethod(); \/\/ \u62a5\u9519\n        \/\/ f.method();        \/\/\u62a5\u9519\n        \/\/ f.protecedMethod();\/\/\u62a5\u9519\n        f.publicMethod();   \/\/\u6b63\u786e\n        Zi zi = new Zi();\n        \/\/ zi.protectedMethod();\n    }\n}<\/code><\/pre>\n<h3>2.4 \u5355\u7ee7\u627f\u3001Object<\/h3>\n<p>Java\u8bed\u8a00\u53ea\u652f\u6301\u5355\u7ee7\u627f\uff0c\u4e0d\u652f\u6301\u591a\u7ee7\u627f\uff0c\u4f46\u662f\u53ef\u4ee5\u591a\u5c42\u7ee7\u627f<\/p>\n<pre><code class=\"language-java\">public class Test {\n    public static void main(String[] args) {\n        \/\/ \u76ee\u6807\uff1a\u638c\u63e1\u7ee7\u627f\u7684\u4e24\u4e2a\u6ce8\u610f\u4e8b\u9879\u4e8b\u9879\u3002\n        \/\/ 1\u3001Java\u662f\u5355\u7ee7\u627f\u7684\uff1a\u4e00\u4e2a\u7c7b\u53ea\u80fd\u7ee7\u627f\u4e00\u4e2a\u76f4\u63a5\u7236\u7c7b\uff1b\n        \/\/ 2\u3001Object\u7c7b\u662fJava\u4e2d\u6240\u6709\u7c7b\u7684\u7956\u5b97\u3002\n        A a = new A();\n        B b = new B();\n        ArrayList list = new ArrayList();\n        list.add(&quot;java&quot;);\n        System.out.println(list.toString());\n    }\n}\nclass A {} \/\/extends Object{}\nclass B extends A{}\n\/\/ class C extends B , A{} \/\/ \u62a5\u9519\nclass D extends B{}<\/code><\/pre>\n<h3>2.5 \u65b9\u6cd5\u91cd\u5199<\/h3>\n<p>\u5f53\u5b50\u7c7b\u89c9\u5f97\u7236\u7c7b\u65b9\u6cd5\u4e0d\u597d\u7528\uff0c\u6216\u8005\u65e0\u6cd5\u6ee1\u8db3\u7236\u7c7b\u9700\u6c42\u65f6\uff0c\u5b50\u7c7b\u53ef\u4ee5\u91cd\u5199\u4e00\u4e2a\u65b9\u6cd5\u540d\u79f0\u3001\u53c2\u6570\u5217\u8868\u4e00\u6837\u7684\u65b9\u6cd5\uff0c\u53bb\u8986\u76d6\u7236\u7c7b\u7684\u8fd9\u4e2a\u65b9\u6cd5\uff0c\u8fd9\u5c31\u662f\u65b9\u6cd5\u91cd\u5199\uff0c\u91cd\u5199\u540e\uff0c\u65b9\u6cd5\u7684\u8bbf\u95ee\u9075\u5faa\u5c31\u8fd1\u539f\u5219<\/p>\n<p>\u6ce8\u610f\uff1a<\/p>\n<p>1\uff09\u91cd\u5199\u7684\u65b9\u6cd5\u4e0a\u9762\uff0c\u53ef\u4ee5\u52a0\u4e00\u4e2a\u6ce8\u89e3@Override,\u7528\u4e8e\u6807\u6ce8\u8fd9\u4e2a\u65b9\u6cd5\u662f\u590d\u5199\u7684\u7236\u7c7b\u65b9\u6cd5<\/p>\n<p>2\uff09\u5b50\u7c7b\u590d\u5199\u7236\u7c7b\u65b9\u6cd5\u65f6\uff0c\u8bbf\u95ee\u6743\u9650\u5fc5\u987b\u5927\u4e8e\u6216\u8005\u7b49\u4e8e\u7236\u7c7b\u65b9\u6cd5\u7684\u6743\u9650\uff1apublic &gt; protected &gt; \u7f3a\u7701<\/p>\n<p>3\uff09\u91cd\u5199\u7684\u65b9\u6cd5\u8fd4\u56de\u503c\u7c7b\u578b\uff0c\u5fc5\u987b\u4e0e\u88ab\u91cd\u5199\u7684\u65b9\u6cd5\u8fd4\u56de\u503c\u7c7b\u578b\u4e00\u6837\uff0c\u6216\u8005\u8303\u56f4\u66f4\u5c0f<\/p>\n<p>4\uff09\u79c1\u6709\u65b9\u6cd5\u3001\u9759\u6001\u65b9\u6cd5\u4e0d\u80fd\u88ab\u91cd\u5199\uff0c\u5982\u679c\u91cd\u5199\u4f1a\u62a5\u9519\u3002<\/p>\n<p>\u603b\u7ed3\uff1a<strong>\u58f0\u660e\u4e0d\u53d8\uff0c\u91cd\u65b0\u5b9e\u73b0<\/strong><\/p>\n<p>\u4e3e\u4f8b\uff1a\u5b50\u7c7b\u91cd\u5199Object\u7684toString()\u65b9\u6cd5\uff0c\u4ee5\u4fbf\u8fd4\u56de\u5bf9\u8c61\u7684\u5185\u5bb9<\/p>\n<p>\u6709\u4e00\u4e2aStudent\u7c7b\uff0c\u8fd9\u4e2a\u7c7b\u4f1a\u9ed8\u8ba4\u7ee7\u627fObject\u7c7b<\/p>\n<pre><code class=\"language-java\"> public class Student extends Object{\n    private String name;\n    private int age;\n    public Student() {\n    } \n    public Student(String name, int age) {\n        this.name = name;\n        this.age = age;\n    }\n    public String getName() {\n        return name;\n    }\n    public void setName(String name) {\n        this.name = name;\n    }\n    public int getAge() {\n        return age;\n    }\n    public void setAge(int age) {\n        this.age = age;\n    }\n}<\/code><\/pre>\n<p>\u5176\u5b9eObject\u7c7b\u4e2d\u6709\u4e00\u4e2atoString()\u65b9\u6cd5\uff0c\u76f4\u63a5\u901a\u8fc7Student\u5bf9\u8c61\u8c03\u7528Object\u7684toString()\u65b9\u6cd5\uff0c\u4f1a\u5f97\u5230\u5bf9\u8c61\u7684\u5730\u5740\u503c<\/p>\n<pre><code class=\"language-java\">public class Test {\n    public static void main(String[] args) {\n        Student s = new Student(&quot;\u64ad\u599e&quot;, 19);\n        \/\/ System.out.println(s.toString());\n        System.out.println(s);\n    }\n}<\/code><\/pre>\n<p>\u4e0d\u60f3\u8c03\u7528\u7236\u7c7bObject\u7684toString()\u65b9\u6cd5\uff0c\u90a3\u5c31\u53ef\u4ee5\u5728Student\u7c7b\u4e2d\u91cd\u65b0\u5199\u4e00\u4e2atoSting()\u65b9\u6cd5\uff0c\u7528\u4e8e\u8fd4\u56de\u5bf9\u8c61\u7684\u5c5e\u6027\u503c<\/p>\n<pre><code class=\"language-java\">package com.itheima.d12_extends_override;\n\npublic class Student extends Object{\n    private String name;\n    private int age;\n\n    public Student() {\n    }\n\n    public Student(String name, int age) {\n        this.name = name;\n        this.age = age;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public int getAge() {\n        return age;\n    }\n\n    public void setAge(int age) {\n        this.age = age;\n    }\n\n    @Override\n    public String toString() {\n        return &quot;Student{&quot; +\n                &quot;name=&#039;&quot; + name + &#039;\\&#039;&#039; +\n                &quot;, age=&quot; + age +\n                &#039;}&#039;;\n    }\n\n}<\/code><\/pre>\n<h3>2.6 \u5b50\u7c7b\u4e2d\u8bbf\u95ee\u6210\u5458\u7684\u7279\u70b9<\/h3>\n<p>\u5728\u5b50\u7c7b\u4e2d\u8bbf\u95ee\u5176\u4ed6\u6210\u5458\uff08\u6210\u5458\u53d8\u91cf\u3001\u6210\u5458\u65b9\u6cd5\uff09\uff0c\u662f\u4f9d\u636e\u5c31\u8fd1\u539f\u5219\u7684<\/p>\n<p>\u4e3e\u4f8b\uff1a<\/p>\n<pre><code class=\"language-java\">public class F {\n    String name = &quot;\u7236\u7c7b\u540d\u5b57&quot;;\n    public void print1(){\n        System.out.println(&quot;==\u7236\u7c7b\u7684print1\u65b9\u6cd5\u6267\u884c==&quot;);\n    }\n}<\/code><\/pre>\n<p>\u518d\u5b9a\u4e49\u4e00\u4e2a\u5b50\u7c7b\uff0c\u6709\u4e00\u4e2a\u540c\u540d\u7684name\u6210\u5458\u53d8\u91cf\uff0c\u6709\u4e00\u4e2a\u540c\u540d\u7684print1\u6210\u5458\u65b9\u6cd5<\/p>\n<pre><code class=\"language-java\">public class Z extends F {\n    String name = &quot;\u5b50\u7c7b\u540d\u79f0&quot;;\n    public void showName(){\n        String name = &quot;\u5c40\u90e8\u540d\u79f0&quot;;\n        System.out.println(name); \/\/ \u5c40\u90e8\u540d\u79f0\n    }\n\n    @Override\n    public void print1(){\n        System.out.println(&quot;==\u5b50\u7c7b\u7684print1\u65b9\u6cd5\u6267\u884c\u4e86=&quot;);\n    }\n\n    public void showMethod(){\n        print1(); \/\/ \u5b50\u7c7b\u7684\n    }\n\n}<\/code><\/pre>\n<p>\u63a5\u4e0b\u6765\u5199\u4e00\u4e2a\u6d4b\u8bd5\u7c7b\uff0c\u89c2\u5bdf\u8fd0\u884c\u7ed3\u679c\uff0c\u6211\u4eec\u53d1\u73b0\u90fd\u662f\u8c03\u7528\u7684\u5b50\u7c7b\u53d8\u91cf\u3001\u5b50\u7c7b\u65b9\u6cd5<\/p>\n<pre><code class=\"language-java\">public class Test {\n    public static void main(String[] args) {\n        \/\/ \u76ee\u6807\uff1a\u638c\u63e1\u5b50\u7c7b\u4e2d\u8bbf\u95ee\u5176\u4ed6\u6210\u5458\u7684\u7279\u70b9\uff1a\u5c31\u8fd1\u539f\u5219\u3002\n        Z z = new Z();\n        z.showName();\n        z.showMethod();\n    }\n}<\/code><\/pre>\n<p>\u5982\u679c\u5b50\u7c7b\u548c\u7236\u7c7b\u51fa\u73b0\u540c\u540d\u53d8\u91cf\u6216\u8005\u65b9\u6cd5\uff0c\u4f18\u5148\u4f7f\u7528\u5b50\u7c7b\u7684\uff1b\u6b64\u65f6\u5982\u679c\u4e00\u5b9a\u8981\u5728\u5b50\u7c7b\u4e2d\u4f7f\u7528\u7236\u7c7b\u7684\u6210\u5458\uff0c\u53ef\u4ee5\u52a0this\u6216\u8005super\u8fdb\u884c\u533a\u5206<\/p>\n<pre><code class=\"language-java\">public class Z extends F {\n    String name = &quot;\u5b50\u7c7b\u540d\u79f0&quot;;\n    public void showName(){\n        String name = &quot;\u5c40\u90e8\u540d\u79f0&quot;;\n        System.out.println(name); \/\/ \u5c40\u90e8\u540d\u79f0\n        System.out.println(this.name); \/\/ \u5b50\u7c7b\u6210\u5458\u53d8\u91cf\n        System.out.println(super.name); \/\/ \u7236\u7c7b\u7684\u6210\u5458\u53d8\u91cf\n    }\n    @Override\n    public void print1(){\n        System.out.println(&quot;==\u5b50\u7c7b\u7684print1\u65b9\u6cd5\u6267\u884c\u4e86=&quot;);\n    }\n    public void showMethod(){\n        print1(); \/\/ \u5b50\u7c7b\u7684\n        super.print1(); \/\/ \u7236\u7c7b\u7684\n    }\n}<\/code><\/pre>\n<h3>2.7 \u5b50\u7c7b\u4e2d\u8bbf\u95ee\u6784\u9020\u5668\u7684\u7279\u70b9<\/h3>\n<p>\u5b50\u7c7b\u5168\u90e8\u6784\u9020\u5668\uff0c\u90fd\u4f1a\u5148\u8c03\u7528\u7236\u7c7b\u6784\u9020\u5668\uff0c\u518d\u6267\u884c\u81ea\u5df1<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120110544458.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120110544458.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231120110544458\" \/><\/div><\/p>\n<p>\u5982\u679c\u4e0d\u60f3\u4f7f\u7528\u9ed8\u8ba4\u7684<code>super()<\/code>\u65b9\u5f0f\u8c03\u7528\u7236\u7c7b\u6784\u9020\u5668\uff0c\u8fd8\u53ef\u4ee5\u624b\u52a8\u4f7f\u7528<code>super(\u53c2\u6570)<\/code>\u8c03\u7528\u7236\u7c7b\u6709\u53c2\u6570\u6784\u9020\u5668<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120110625153.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120110625153.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231120110625153\" \/><\/div><\/p>\n<p>\u6709\u65f6\u5019\u6211\u4eec\u4e5f\u9700\u8981\u8bbf\u95ee\u81ea\u5df1\u7c7b\u7684\u6784\u9020\u5668\u3002\u8bed\u6cd5\u5982\u4e0b<\/p>\n<pre><code class=\"language-java\">this(): \u8c03\u7528\u672c\u7c7b\u7684\u7a7a\u53c2\u6570\u6784\u9020\u5668\nthis(\u53c2\u6570): \u8c03\u7528\u672c\u7c7b\u6709\u53c2\u6570\u7684\u6784\u9020\u5668<\/code><\/pre>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120110655892.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120110655892.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231120110655892\" \/><\/div><\/p>\n<pre><code class=\"language-java\">\u8bbf\u95ee\u672c\u7c7b\u6210\u5458\uff1a\n    this.\u6210\u5458\u53d8\u91cf   \/\/\u8bbf\u95ee\u672c\u7c7b\u6210\u5458\u53d8\u91cf\n    this.\u6210\u5458\u65b9\u6cd5   \/\/\u8c03\u7528\u672c\u7c7b\u6210\u5458\u65b9\u6cd5\n    this()         \/\/\u8c03\u7528\u672c\u7c7b\u7a7a\u53c2\u6570\u6784\u9020\u5668\n    this(\u53c2\u6570)      \/\/\u8c03\u7528\u672c\u7c7b\u6709\u53c2\u6570\u6784\u9020\u5668\n\n\u8bbf\u95ee\u7236\u7c7b\u6210\u5458\uff1a\n    super.\u6210\u5458\u53d8\u91cf  \/\/\u8bbf\u95ee\u7236\u7c7b\u6210\u5458\u53d8\u91cf\n    super.\u6210\u5458\u65b9\u6cd5  \/\/\u8c03\u7528\u7236\u7c7b\u6210\u5458\u65b9\u6cd5\n    super()        \/\/\u8c03\u7528\u7236\u7c7b\u7a7a\u53c2\u6570\u6784\u9020\u5668\n    super(\u53c2\u6570)     \/\/\u8c03\u7528\u7236\u7c7b\u6709\u53c2\u6570\u6784\u9020\u5668\n\n\u6ce8\u610f\uff1athis\u548csuper\u8bbf\u95ee\u6784\u9020\u65b9\u6cd5\uff0c\u53ea\u80fd\u7528\u5230\u6784\u9020\u65b9\u6cd5\u7684\u7b2c\u4e00\u53e5\uff0c\u5426\u5219\u4f1a\u62a5\u9519\u3002<\/code><\/pre>\n<h2>\u4e09\u3001\u591a\u6001<\/h2>\n<h3>3.1 \u6982\u8ff0<\/h3>\n<p>\u591a\u6001\u662f\u5728\u7ee7\u627f\u3001\u5b9e\u73b0\u60c5\u51b5\u4e0b\u7684\u4e00\u79cd\u73b0\u8c61\uff0c\u8868\u73b0\u4e3a\uff1a\u5bf9\u8c61\u591a\u6001\u3001\u884c\u4e3a\u591a\u6001<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120152201091.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120152201091.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231120152201091\" \/><\/div><\/p>\n<h3>3.2 \u591a\u6001\u7684\u597d\u5904<\/h3>\n<p>\u5728\u591a\u6001\u5f62\u5f0f\u4e0b\uff0c\u53f3\u8fb9\u7684\u4ee3\u7801\u662f\u89e3\u8026\u5408\u7684\uff0c\u66f4\u4fbf\u4e8e\u6269\u5c55\u548c\u7ef4\u62a4<\/p>\n<p>\u5b9a\u4e49\u65b9\u6cd5\u65f6\uff0c\u4f7f\u7528\u7236\u7c7b\u7c7b\u578b\u4f5c\u4e3a\u5f62\u53c2\uff0c\u53ef\u4ee5\u63a5\u6536\u4e00\u5207\u5b50\u7c7b\u5bf9\u8c61\uff0c\u6269\u5c55\u884c\u66f4\u5f3a\uff0c\u66f4\u4fbf\u5229<\/p>\n<h3>3.3 \u7c7b\u578b\u8f6c\u6362<\/h3>\n<p>\u5728\u591a\u6001\u5f62\u5f0f\u4e0b\uff0c\u4e0d\u80fd\u8c03\u7528\u5b50\u7c7b\u7279\u6709\u7684\u65b9\u6cd5\uff0c\u6bd4\u5982\u5728Teacher\u7c7b\u4e2d\u591a\u4e86\u4e00\u4e2ateach\u65b9\u6cd5\uff0c\u5728Student\u7c7b\u4e2d\u591a\u4e86\u4e00\u4e2astudy\u65b9\u6cd5\uff0c\u8fd9\u4e24\u4e2a\u65b9\u6cd5\u5728\u591a\u6001\u5f62\u5f0f\u4e0b\u662f\u4e0d\u80fd\u76f4\u63a5\u8c03\u7528\u7684<\/p>\n<p>\u591a\u6001\u5f62\u5f0f\u4e0b\u4e0d\u80fd\u76f4\u63a5\u8c03\u7528\u5b50\u7c7b\u7279\u6709\u65b9\u6cd5\uff0c\u4f46\u662f\u8f6c\u578b\u540e\u662f\u53ef\u4ee5\u8c03\u7528\u7684\u3002\u8fd9\u91cc\u6240\u8bf4\u7684\u8f6c\u578b\u5c31\u662f\u628a\u7236\u7c7b\u53d8\u91cf\u8f6c\u6362\u4e3a\u5b50\u7c7b\u7c7b\u578b<\/p>\n<pre><code class=\"language-java\">\/\/\u5982\u679cp\u63a5\u6536\u7684\u662f\u5b50\u7c7b\u5bf9\u8c61\nif(\u7236\u7c7b\u53d8\u91cf instanceof \u5b50\u7c7b){\n    \/\/\u5219\u53ef\u4ee5\u5c06p\u8f6c\u6362\u4e3a\u5b50\u7c7b\u7c7b\u578b\n    \u5b50\u7c7b \u53d8\u91cf\u540d = (\u5b50\u7c7b)\u7236\u7c7b\u53d8\u91cf;\n}<\/code><\/pre>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120155442438.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120155442438.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231120155442438\" \/><\/div><\/p>\n<p>\u5982\u679c\u7c7b\u578b\u8f6c\u6362\u9519\u4e86\uff0c\u5c31\u4f1a\u51fa\u73b0\u7c7b\u578b\u8f6c\u6362\u5f02\u5e38ClassCastException\uff0c\u6bd4\u5982\u628aTeacher\u7c7b\u578b\u8f6c\u6362\u6210\u4e86Student\u7c7b\u578b<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120155451256.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120155451256.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231120155451256\" \/><\/div><\/p>\n<p>\u539f\u672c\u662f\u4ec0\u4e48\u7c7b\u578b\uff0c\u624d\u80fd\u8fd8\u539f\u6210\u4ec0\u4e48\u7c7b\u578b<\/p>\n<h2>\u56db\u3001final\u5173\u952e\u5b57<\/h2>\n<h3>4.1 \u7279\u70b9<\/h3>\n<p>final\u5173\u952e\u5b57\u662f\u6700\u7ec8\u7684\u610f\u601d\uff0c\u53ef\u4ee5\u4fee\u9970\u7c7b\u3001\u4fee\u9970\u65b9\u6cd5\u3001\u4fee\u9970\u53d8\u91cf<\/p>\n<pre><code class=\"language-java\">- final\u4fee\u9970\u7c7b\uff1a\u8be5\u7c7b\u79f0\u4e3a\u6700\u7ec8\u7c7b\uff0c\u7279\u70b9\u662f\u4e0d\u80fd\u88ab\u7ee7\u627f\n- final\u4fee\u9970\u65b9\u6cd5\uff1a\u8be5\u65b9\u6cd5\u79f0\u4e4b\u4e3a\u6700\u7ec8\u65b9\u6cd5\uff0c\u7279\u70b9\u662f\u4e0d\u80fd\u88ab\u91cd\u5199\u3002\n- final\u4fee\u9970\u53d8\u91cf\uff1a\u8be5\u53d8\u91cf\u53ea\u80fd\u88ab\u8d4b\u503c\u4e00\u6b21\u3002<\/code><\/pre>\n<h3>4.2 \u5e38\u91cf<\/h3>\n<p>\u5728\u5b9e\u9645\u8fd0\u7528\u5f53\u4e2d\u7ecf\u5e38\u4f7f\u7528final\u6765\u5b9a\u4e49\u5e38\u91cf<\/p>\n<p>\u88ab static final \u4fee\u9970\u7684\u6210\u5458\u53d8\u91cf\uff0c\u79f0\u4e4b\u4e3a\u5e38\u91cf\u3002<\/p>\n<p>\u901a\u5e38\u7528\u4e8e\u8bb0\u5f55\u7cfb\u7edf\u7684\u914d\u7f6e\u4fe1\u606f<\/p>\n<pre><code class=\"language-java\">public class Constant {\n    \/\/\u5e38\u91cf: \u5b9a\u4e49\u4e00\u4e2a\u5e38\u91cf\u8868\u793a\u5b66\u6821\u540d\u79f0\n    \/\/\u4e3a\u4e86\u65b9\u4fbf\u5728\u5176\u4ed6\u7c7b\u4e2d\u88ab\u8bbf\u95ee\u6240\u4ee5\u4e00\u822c\u8fd8\u4f1a\u52a0\u4e0apublic\u4fee\u9970\u7b26\n    \/\/\u5e38\u91cf\u547d\u540d\u89c4\u8303\uff1a\u5efa\u8bae\u90fd\u91c7\u7528\u5927\u5199\u5b57\u6bcd\u547d\u540d\uff0c\u591a\u4e2a\u5355\u8bcd\u4e4b\u524d\u6709_\u9694\u5f00\n    public static final String SCHOOL_NAME = &quot;\u4f20\u667a\u6559\u80b2&quot;;\n}<\/code><\/pre>\n<h2>\u4e94\u3001\u62bd\u8c61<\/h2>\n<h3>5.1 \u6982\u8ff0<\/h3>\n<p>\u5728Java\u4e2d\u6709\u4e00\u4e2a\u5173\u952e\u5b57\u53ebabstract\uff0c\u5b83\u5c31\u662f\u62bd\u8c61\u7684\u610f\u601d\uff0c\u5b83\u53ef\u4ee5\u4fee\u9970\u7c7b\u4e5f\u53ef\u4ee5\u4fee\u9970\u65b9\u6cd5<\/p>\n<pre><code class=\"language-java\">- \u88ababstract\u4fee\u9970\u7684\u7c7b\uff0c\u5c31\u662f\u62bd\u8c61\u7c7b\n- \u88ababstract\u4fee\u9970\u7684\u65b9\u6cd5\uff0c\u5c31\u662f\u62bd\u8c61\u65b9\u6cd5\uff08\u4e0d\u5141\u8bb8\u6709\u65b9\u6cd5\u4f53\uff09<\/code><\/pre>\n<pre><code class=\"language-java\">\/\/abstract\u4fee\u9970\u7c7b\uff0c\u8fd9\u4e2a\u7c7b\u5c31\u662f\u62bd\u8c61\u7c7b\npublic abstract class A{\n    \/\/abstract\u4fee\u9970\u65b9\u6cd5\uff0c\u8fd9\u4e2a\u65b9\u6cd5\u5c31\u662f\u62bd\u8c61\u65b9\u6cd5\n    public abstract void test();\n}<\/code><\/pre>\n<p>\u7c7b\u7684\u6210\u5458\uff08\u6210\u5458\u53d8\u91cf\u3001\u6210\u5458\u65b9\u6cd5\u3001\u6784\u9020\u5668\uff09\u90fd\u53ef\u4ee5\u6709<\/p>\n<pre><code class=\"language-java\">\/\/ \u62bd\u8c61\u7c7b\npublic abstract class A {\n    \/\/\u6210\u5458\u53d8\u91cf\n    private String name;\n    static String schoolName;\n    \/\/\u6784\u9020\u65b9\u6cd5\n    public A(){\n    }\n    \/\/\u62bd\u8c61\u65b9\u6cd5\n    public abstract void test();\n    \/\/\u5b9e\u4f8b\u65b9\u6cd5\n    public String getName() {\n        return name;\n    }\n    public void setName(String name) {\n        this.name = name;\n    }\n}<\/code><\/pre>\n<p>\u62bd\u8c61\u7c7b\u662f\u4e0d\u80fd\u521b\u5efa\u5bf9\u8c61\u7684\uff0c\u5982\u679c\u62bd\u8c61\u7c7b\u7684\u5bf9\u8c61\u5c31\u4f1a\u62a5\u9519<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120161133657.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120161133657.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231120161133657\" \/><\/div><\/p>\n<p>\u62bd\u8c61\u7c7b\u867d\u7136\u4e0d\u80fd\u521b\u5efa\u5bf9\u8c61\uff0c\u4f46\u662f\u5b83\u53ef\u4ee5\u4f5c\u4e3a\u7236\u7c7b\u8ba9\u5b50\u7c7b\u7ee7\u627f\u3002\u800c\u4e14\u5b50\u7c7b\u7ee7\u627f\u7236\u7c7b\u5fc5\u987b\u91cd\u5199\u7236\u7c7b\u7684\u6240\u6709\u62bd\u8c61\u65b9\u6cd5<\/p>\n<pre><code class=\"language-java\">\/\/B\u7c7b\u7ee7\u627fA\u7c7b\uff0c\u5fc5\u987b\u590d\u5199test\u65b9\u6cd5\npublic class B extends A {\n    @Override\n    public void test() {\n    }\n}<\/code><\/pre>\n<p>\u5b50\u7c7b\u7ee7\u627f\u7236\u7c7b\u5982\u679c\u4e0d\u590d\u5199\u7236\u7c7b\u7684\u62bd\u8c61\u65b9\u6cd5\uff0c\u8981\u60f3\u4e0d\u51fa\u9519\uff0c\u8fd9\u4e2a\u5b50\u7c7b\u4e5f\u5fc5\u987b\u662f\u62bd\u8c61\u7c7b<\/p>\n<pre><code class=\"language-java\">\/\/B\u7c7b\u7ee7\u627fA\u7c7b\uff0c\u6b64\u65f6B\u7c7b\u4e5f\u662f\u62bd\u8c61\u7c7b\uff0c\u8fd9\u4e2a\u65f6\u5019\u5c31\u53ef\u4ee5\u4e0d\u91cd\u5199A\u7c7b\u7684\u62bd\u8c61\u65b9\u6cd5\npublic abstract class B extends A {\n\n}<\/code><\/pre>\n<h3>5.2 \u62bd\u8c61\u7c7b\u7684\u597d\u5904<\/h3>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120161253109.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120161253109.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231120161253109\" \/><\/div><\/p>\n<p>\u5206\u6790\u9700\u6c42\u53d1\u73b0\uff0c\u8be5\u6848\u4f8b\u4e2d\u732b\u548c\u72d7\u90fd\u6709\u540d\u5b57\u8fd9\u4e2a\u5c5e\u6027\uff0c\u4e5f\u90fd\u6709\u53eb\u8fd9\u4e2a\u884c\u4e3a\uff0c\u6240\u4ee5\u6211\u4eec\u53ef\u4ee5\u5c06\u5171\u6027\u7684\u5185\u5bb9\u62bd\u53d6\u6210\u4e00\u4e2a\u7236\u7c7b\uff0cAnimal\u7c7b\uff0c\u4f46\u662f\u7531\u4e8e\u732b\u548c\u72d7\u53eb\u7684\u58f0\u97f3\u4e0d\u4e00\u6837\uff0c\u4e8e\u662f\u6211\u4eec\u5728Animal\u7c7b\u4e2d\u5c06\u53eb\u7684\u884c\u4e3a\u5199\u6210\u62bd\u8c61\u7684<\/p>\n<pre><code class=\"language-java\">public abstract class Animal {\n    private String name;\n    \/\/\u52a8\u7269\u53eb\u7684\u884c\u4e3a\uff1a\u4e0d\u5177\u4f53\uff0c\u662f\u62bd\u8c61\u7684\n    public abstract void cry(); \n    public String getName() {\n        return name;\n    }\n    public void setName(String name) {\n        this.name = name;\n    }\n}<\/code><\/pre>\n<p>\u63a5\u7740\u5199\u4e00\u4e2aAnimal\u7684\u5b50\u7c7b\uff0cDog\u7c7b<\/p>\n<pre><code class=\"language-java\">public class Dog extends Animal{\n    public void cry(){\n        System.out.println(getName() + &quot;\u6c6a\u6c6a\u6c6a\u7684\u53eb~~&quot;);\n    }\n}<\/code><\/pre>\n<p>\u518d\u5199\u4e00\u4e2aAnimal\u7684\u5b50\u7c7b\uff0cCat\u7c7b<\/p>\n<pre><code class=\"language-java\">public class Cat extends Animal{\n    public void cry(){\n        System.out.println(getName() + &quot;\u55b5\u55b5\u55b5\u7684\u53eb~~&quot;);\n    }\n}<\/code><\/pre>\n<p>\u518d\u5199\u4e00\u4e2a\u6d4b\u8bd5\u7c7b\uff0cTest\u7c7b<\/p>\n<pre><code class=\"language-java\">public class Test2 {\n    public static void main(String[] args) {\n        \/\/ \u76ee\u6807\uff1a\u638c\u63e1\u62bd\u8c61\u7c7b\u7684\u4f7f\u7528\u573a\u666f\u548c\u597d\u5904.\n        Animal a = new Dog();\n        a.cry();    \/\/\u8fd9\u65f6\u6267\u884c\u7684\u662fDog\u7c7b\u7684cry\u65b9\u6cd5\n    }\n}<\/code><\/pre>\n<p>\u5047\u8bbe\u73b0\u5728\u7cfb\u7edf\u6709\u9700\u8981\u52a0\u4e00\u4e2aPig\u7c7b\uff0c\u4e5f\u6709\u53eb\u7684\u884c\u4e3a\uff0c\u8fd9\u65f6\u5019\u4e5f\u5f88\u5bb9\u6613\u539f\u6709\u529f\u80fd\u6269\u5c55\u3002\u53ea\u9700\u8981\u8ba9Pig\u7c7b\u7ee7\u627fAnimal\uff0c\u590d\u5199cry\u65b9\u6cd5\u5c31\u884c<\/p>\n<pre><code class=\"language-java\">public class Pig extends Animal{\n    @Override\n    public void cry() {\n        System.out.println(getName() + &quot;\u56af\u56af\u56af~~~&quot;);\n    }\n}<\/code><\/pre>\n<p>\u521b\u5efa\u5bf9\u8c61\u65f6\uff0c\u8ba9Animal\u63a5\u6536Pig\uff0c\u5c31\u53ef\u4ee5\u6267\u884cPig\u7684cry\u65b9\u6cd5<\/p>\n<pre><code class=\"language-java\">public class Test2 {\n    public static void main(String[] args) {\n        \/\/ \u76ee\u6807\uff1a\u638c\u63e1\u62bd\u8c61\u7c7b\u7684\u4f7f\u7528\u573a\u666f\u548c\u597d\u5904.\n        Animal a = new Pig();\n        a.cry();    \/\/\u8fd9\u65f6\u6267\u884c\u7684\u662fPig\u7c7b\u7684cry\u65b9\u6cd5\n    }\n}<\/code><\/pre>\n<p>\u603b\u7ed3\uff1a<\/p>\n<pre><code class=\"language-java\">1.\u7528\u62bd\u8c61\u7c7b\u53ef\u4ee5\u628a\u7236\u7c7b\u4e2d\u76f8\u540c\u7684\u4ee3\u7801\uff0c\u5305\u62ec\u65b9\u6cd5\u58f0\u660e\u90fd\u62bd\u53d6\u5230\u7236\u7c7b\uff0c\u8fd9\u6837\u80fd\u66f4\u597d\u7684\u652f\u6301\u591a\u6001\uff0c\u63d0\u9ad8\u4ee3\u7801\u7684\u7075\u6d3b\u6027\u3002\n2.\u53cd\u8fc7\u6765\u7528\uff0c\u6211\u4eec\u4e0d\u77e5\u9053\u7cfb\u7edf\u672a\u6765\u5177\u4f53\u7684\u4e1a\u52a1\u5b9e\u73b0\u65f6\uff0c\u6211\u4eec\u53ef\u4ee5\u5148\u5b9a\u4e49\u62bd\u8c61\u7c7b\uff0c\u5c06\u6765\u8ba9\u5b50\u7c7b\u53bb\u5b9e\u73b0\uff0c\u4ee5\u65b9\u4fbf\u7cfb\u7edf\u7684\u6269\u5c55\u3002<\/code><\/pre>\n<h3>5.3 \u6a21\u677f\u65b9\u6cd5\u6a21\u5f0f<\/h3>\n<p>\u8bbe\u8ba1\u6a21\u5f0f\u662f\u89e3\u51b3\u67d0\u4e00\u7c7b\u95ee\u9898\u7684\u6700\u4f18\u65b9\u6848<\/p>\n<p>\u6a21\u677f\u65b9\u6cd5\u6a21\u5f0f\u4e3b\u8981\u89e3\u51b3\u65b9\u6cd5\u4e2d\u5b58\u5728\u91cd\u590d\u4ee3\u7801\u7684\u95ee\u9898<\/p>\n<p>\u6bd4\u5982A\u7c7b\u548cB\u7c7b\u90fd\u6709sing()\u65b9\u6cd5\uff0csing()\u65b9\u6cd5\u7684\u5f00\u5934\u548c\u7ed3\u5c3e\u90fd\u662f\u4e00\u6837\u7684\uff0c\u53ea\u662f\u4e2d\u95f4\u4e00\u6bb5\u5185\u5bb9\u4e0d\u4e00\u6837\u3002\u6b64\u65f6A\u7c7b\u548cB\u7c7b\u7684sing()\u65b9\u6cd5\u4e2d\u5c31\u5b58\u5728\u4e00\u4e9b\u76f8\u540c\u7684\u4ee3\u7801\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120162646681.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120162646681.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231120162646681\" \/><\/div><\/p>\n<p>\u53ef\u4ee5\u5199\u4e00\u4e2a\u62bd\u8c61\u7c7bC\u7c7b\uff0c\u5728C\u7c7b\u4e2d\u5199\u4e00\u4e2adoSing()\u7684\u62bd\u8c61\u65b9\u6cd5\u3002\u518d\u5199\u4e00\u4e2asing()\u65b9\u6cd5<\/p>\n<pre><code class=\"language-java\">\/\/ \u6a21\u677f\u65b9\u6cd5\u8bbe\u8ba1\u6a21\u5f0f\npublic abstract class C {\n    \/\/ \u6a21\u677f\u65b9\u6cd5\n    public final void sing(){\n        System.out.println(&quot;\u5531\u4e00\u9996\u4f60\u559c\u6b22\u7684\u6b4c\uff1a&quot;);\n\n        doSing();\n\n        System.out.println(&quot;\u5531\u5b8c\u4e86!&quot;);\n    }\n\n    public abstract void doSing();\n\n}<\/code><\/pre>\n<p>\u5199\u4e00\u4e2aA\u7c7b\u7ee7\u627fC\u7c7b\uff0c\u590d\u5199doSing()\u65b9\u6cd5<\/p>\n<pre><code class=\"language-java\">public class A extends C{\n    @Override\n    public void doSing() {\n        System.out.println(&quot;\u6211\u662f\u4e00\u53ea\u5c0f\u5c0f\u5c0f\u5c0f\u9e1f\uff0c\u60f3\u8981\u98de\u5c31\u80fd\u98de\u7684\u9ad8~~~&quot;);\n    }\n}<\/code><\/pre>\n<p>\u518d\u5199\u4e00\u4e2aB\u7c7b\u7ee7\u627fC\u7c7b\uff0c\u4e5f\u590d\u5199doSing()\u65b9\u6cd5<\/p>\n<pre><code class=\"language-java\">public class B extends C{\n    @Override\n    public void doSing() {\n        System.out.println(&quot;\u6211\u4eec\u4e00\u8d77\u5b66\u732b\u53eb\uff0c\u55b5\u55b5\u55b5\u55b5\u55b5\u55b5\u55b5~~&quot;);\n    }\n}<\/code><\/pre>\n<p>\u518d\u5199\u4e00\u4e2a\u6d4b\u8bd5\u7c7bTest<\/p>\n<pre><code class=\"language-java\">public class Test {\n    public static void main(String[] args) {\n        \/\/ \u76ee\u6807\uff1a\u641e\u6e05\u695a\u6a21\u677f\u65b9\u6cd5\u8bbe\u8ba1\u6a21\u5f0f\u80fd\u89e3\u51b3\u4ec0\u4e48\u95ee\u9898\uff0c\u4ee5\u53ca\u600e\u4e48\u5199\u3002\n        B b = new B();\n        b.sing();\n    }\n}<\/code><\/pre>\n<h2>\u516d\u3001\u63a5\u53e3<\/h2>\n<h3>6.1 \u6982\u8ff0<\/h3>\n<p>Java\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5173\u952e\u5b57interface\uff0c\u7528\u8fd9\u4e2a\u5173\u952e\u5b57\u6765\u5b9a\u4e49\u63a5\u53e3\u8fd9\u79cd\u7279\u6b8a\u7ed3\u6784<\/p>\n<pre><code class=\"language-java\">public interface \u63a5\u53e3\u540d{\n    \/\/\u6210\u5458\u53d8\u91cf\uff08\u5e38\u91cf\uff09\n    \/\/\u6210\u5458\u65b9\u6cd5\uff08\u62bd\u8c61\u65b9\u6cd5\uff09\n}<\/code><\/pre>\n<p>\u63a5\u53e3\u662f\u7528\u6765\u88ab\u7c7b\u5b9e\u73b0\uff08implements\uff09\u7684\uff0c\u6211\u4eec\u79f0\u4e4b\u4e3a\u5b9e\u73b0\u7c7b\u3002<\/p>\n<p>\u4e00\u4e2a\u7c7b\u662f\u53ef\u4ee5\u5b9e\u73b0\u591a\u4e2a\u63a5\u53e3\u7684\uff08\u63a5\u53e3\u53ef\u4ee5\u7406\u89e3\u6210\u5e72\u7239\uff09\uff0c\u7c7b\u5b9e\u73b0\u63a5\u53e3\u5fc5\u987b\u91cd\u5199\u6240\u6709\u63a5\u53e3\u7684\u5168\u90e8\u62bd\u8c61\u65b9\u6cd5\uff0c\u5426\u5219\u8fd9\u4e2a\u7c7b\u4e5f\u5fc5\u987b\u662f\u62bd\u8c61\u7c7b<\/p>\n<pre><code class=\"language-java\">public interface A{\n    \/\/\u8fd9\u91ccpublic static final\u53ef\u4ee5\u52a0\uff0c\u53ef\u4ee5\u4e0d\u52a0\u3002\n    public static final String SCHOOL_NAME = &quot;\u9ed1\u9a6c\u7a0b\u5e8f\u5458&quot;;\n    \/\/\u8fd9\u91cc\u7684public abstract\u53ef\u4ee5\u52a0\uff0c\u53ef\u4ee5\u4e0d\u52a0\u3002\n    public abstract void test();\n}<\/code><\/pre>\n<p>\u5199\u597dA\u63a5\u53e3\u4e4b\u540e\uff0c\u5728\u5199\u4e00\u4e2a\u6d4b\u8bd5\u7c7b<\/p>\n<pre><code class=\"language-java\">public class Test{\n    public static void main(String[] args){\n        \/\/\u6253\u5370A\u63a5\u53e3\u4e2d\u7684\u5e38\u91cf\n        System.out.println(A.SCHOOL_NAME);\n        \/\/\u63a5\u53e3\u662f\u4e0d\u80fd\u521b\u5efa\u5bf9\u8c61\u7684\n        A a = new A();\n    }\n}<\/code><\/pre>\n<p>\u518d\u5b9a\u4e49\u4e00\u4e2aB\u63a5\u53e3\uff0c\u91cc\u9762\u6709\u4e24\u4e2a\u65b9\u6cd5testb1()\uff0ctestb2()<\/p>\n<pre><code class=\"language-java\">public interface B {\n    void testb1();\n    void testb2();\n}<\/code><\/pre>\n<p>\u518d\u5b9a\u4e49\u4e00\u4e2aC\u63a5\u53e3\uff0c\u91cc\u9762\u6709\u4e24\u4e2a\u65b9\u6cd5testc1(), testc2()<\/p>\n<pre><code class=\"language-java\">public interface C {\n    void testc1();\n    void testc2();\n}<\/code><\/pre>\n<p>\u518d\u5199\u4e00\u4e2a\u5b9e\u73b0\u7c7bD\uff0c\u540c\u65f6\u5b9e\u73b0B\u63a5\u53e3\u548cC\u63a5\u53e3\uff0c\u6b64\u65f6\u5c31\u9700\u8981\u590d\u5199\u56db\u4e2a\u65b9\u6cd5<\/p>\n<pre><code class=\"language-java\">\/\/ \u5b9e\u73b0\u7c7b\npublic class D implements B, C{\n    @Override\n    public void testb1() {\n\n    }\n\n    @Override\n    public void testb2() {\n\n    }\n\n    @Override\n    public void testc1() {\n\n    }\n\n    @Override\n    public void testc2() {\n\n    }\n\n}<\/code><\/pre>\n<p>\u5b9a\u4e49\u4e00\u4e2a\u6d4b\u8bd5\u7c7bTest<\/p>\n<pre><code class=\"language-java\">public class Test {\n    public static void main(String[] args) {\n        \/\/ \u76ee\u6807\uff1a\u8ba4\u8bc6\u63a5\u53e3\u3002\n        System.out.println(A.SCHOOL_NAME);\n\n        \/\/ A a = new A();\n        D d = new D();\n    }\n\n}<\/code><\/pre>\n<h3>6.2 \u6848\u4f8b\u6f14\u793a<\/h3>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120165938568.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231120165938568.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231120165938568\" \/><\/div><\/p>\n<p>\u9996\u5148\u6211\u4eec\u5199\u4e00\u4e2a\u5b66\u751f\u7c7b\uff0c\u7528\u6765\u63cf\u8ff0\u5b66\u751f\u7684\u76f8\u5173\u4fe1\u606f<\/p>\n<pre><code class=\"language-java\">public class Student {\n    private String name;\n    private char sex;\n    private double score;\n\n    public Student() {\n    }\n\n    public Student(String name, char sex, double score) {\n        this.name = name;\n        this.sex = sex;\n        this.score = score;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public char getSex() {\n        return sex;\n    }\n\n    public void setSex(char sex) {\n        this.sex = sex;\n    }\n\n    public double getScore() {\n        return score;\n    }\n\n    public void setScore(double score) {\n        this.score = score;\n    }\n\n}<\/code><\/pre>\n<p>\u5199\u4e00\u4e2aStudentOperator\u63a5\u53e3\uff0c\u8868\u793a\u5b66\u751f\u4fe1\u606f\u7ba1\u7406\u7cfb\u7edf\u7684\u4e24\u4e2a\u529f\u80fd<\/p>\n<pre><code class=\"language-java\">public interface StudentOperator {\n    void printAllInfo(ArrayList&lt;Student&gt; students);\n    void printAverageScore(ArrayList&lt;Student&gt; students);\n}<\/code><\/pre>\n<p>\u5199\u4e00\u4e2aStudentOperator\u63a5\u53e3\u7684\u5b9e\u73b0\u7c7bStudentOperatorImpl1\uff0c\u91c7\u7528\u7b2c1\u5957\u65b9\u6848\u5bf9\u4e1a\u52a1\u8fdb\u884c\u5b9e\u73b0<\/p>\n<pre><code class=\"language-java\">public class StudentOperatorImpl1 implements StudentOperator{\n    @Override\n    public void printAllInfo(ArrayList&lt;Student&gt; students) {\n        System.out.println(&quot;----------\u5168\u73ed\u5168\u90e8\u5b66\u751f\u4fe1\u606f\u5982\u4e0b--------------&quot;);\n        for (int i = 0; i &lt; students.size(); i++) {\n            Student s = students.get(i);\n            System.out.println(&quot;\u59d3\u540d\uff1a&quot; + s.getName() + &quot;, \u6027\u522b\uff1a&quot; + s.getSex() + &quot;, \u6210\u7ee9\uff1a&quot; + s.getScore());\n        }\n        System.out.println(&quot;-----------------------------------------&quot;);\n    }\n\n    @Override\n    public void printAverageScore(ArrayList&lt;Student&gt; students) {\n        double allScore = 0.0;\n        for (int i = 0; i &lt; students.size(); i++) {\n            Student s = students.get(i);\n            allScore += s.getScore();\n        }\n        System.out.println(&quot;\u5e73\u5747\u5206\uff1a&quot; + (allScore) \/ students.size());\n    }\n\n}<\/code><\/pre>\n<p>\u518d\u5199\u4e00\u4e2aStudentOperator\u63a5\u53e3\u7684\u5b9e\u73b0\u7c7bStudentOperatorImpl2\uff0c\u91c7\u7528\u7b2c2\u5957\u65b9\u6848\u5bf9\u4e1a\u52a1\u8fdb\u884c\u5b9e\u73b0<\/p>\n<pre><code class=\"language-java\">public class StudentOperatorImpl2 implements StudentOperator{\n    @Override\n    public void printAllInfo(ArrayList&lt;Student&gt; students) {\n        System.out.println(&quot;----------\u5168\u73ed\u5168\u90e8\u5b66\u751f\u4fe1\u606f\u5982\u4e0b--------------&quot;);\n        int count1 = 0;\n        int count2 = 0;\n        for (int i = 0; i &lt; students.size(); i++) {\n            Student s = students.get(i);\n            System.out.println(&quot;\u59d3\u540d\uff1a&quot; + s.getName() + &quot;, \u6027\u522b\uff1a&quot; + s.getSex() + &quot;, \u6210\u7ee9\uff1a&quot; + s.getScore());\n            if(s.getSex() == &#039;\u7537&#039;){\n                count1++;\n            }else {\n                count2 ++;\n            }\n        }\n        System.out.println(&quot;\u7537\u751f\u4eba\u6570\u662f\uff1a&quot; + count1  + &quot;, \u5973\u58eb\u4eba\u6570\u662f\uff1a&quot; + count2);\n        System.out.println(&quot;\u73ed\u7ea7\u603b\u4eba\u6570\u662f\uff1a&quot; + students.size());\n        System.out.println(&quot;-----------------------------------------&quot;);\n    }\n\n    @Override\n    public void printAverageScore(ArrayList&lt;Student&gt; students) {\n        double allScore = 0.0;\n        double max = students.get(0).getScore();\n        double min = students.get(0).getScore();\n        for (int i = 0; i &lt; students.size(); i++) {\n            Student s = students.get(i);\n            if(s.getScore() &gt; max) max = s.getScore();\n            if(s.getScore() &lt; min) min = s.getScore();\n            allScore += s.getScore();\n        }\n        System.out.println(&quot;\u5b66\u751f\u7684\u6700\u9ad8\u5206\u662f\uff1a&quot; + max);\n        System.out.println(&quot;\u5b66\u751f\u7684\u6700\u4f4e\u5206\u662f\uff1a&quot; + min);\n        System.out.println(&quot;\u5e73\u5747\u5206\uff1a&quot; + (allScore - max - min) \/ (students.size() - 2));\n    }\n\n}<\/code><\/pre>\n<p>\u518d\u5199\u4e00\u4e2a\u73ed\u7ea7\u7ba1\u7406\u7c7bClassManager\uff0c\u5728\u73ed\u7ea7\u7ba1\u7406\u7c7b\u4e2d\u4f7f\u7528StudentOperator\u7684\u5b9e\u73b0\u7c7bStudentOperatorImpl1\u5bf9\u5b66\u751f\u8fdb\u884c\u64cd\u4f5c<\/p>\n<pre><code class=\"language-java\">public class ClassManager {\n    private ArrayList&lt;Student&gt; students = new ArrayList&lt;&gt;();\n    private StudentOperator studentOperator = new StudentOperatorImpl1();\n\n    public ClassManager(){\n        students.add(new Student(&quot;\u8fea\u4e3d\u70ed\u5df4&quot;, &#039;\u5973&#039;, 99));\n        students.add(new Student(&quot;\u53e4\u529b\u5a1c\u624e&quot;, &#039;\u5973&#039;, 100));\n        students.add(new Student(&quot;\u9a6c\u5c14\u624e\u54c8&quot;, &#039;\u7537&#039;, 80));\n        students.add(new Student(&quot;\u5361\u5c14\u624e\u5df4&quot;, &#039;\u7537&#039;, 60));\n    }\n\n    \/\/ \u6253\u5370\u5168\u73ed\u5168\u90e8\u5b66\u751f\u7684\u4fe1\u606f\n    public void printInfo(){\n        studentOperator.printAllInfo(students);\n    }\n\n    \/\/ \u6253\u5370\u5168\u73ed\u5168\u90e8\u5b66\u751f\u7684\u5e73\u5747\u5206\n    public void printScore(){\n        studentOperator.printAverageScore(students);\n    }\n\n}<\/code><\/pre>\n<p>\u518d\u5199\u4e00\u4e2a\u6d4b\u8bd5\u7c7bTest\uff0c\u5728\u6d4b\u8bd5\u7c7b\u4e2d\u4f7f\u7528ClassMananger\u5b8c\u6210\u73ed\u7ea7\u5b66\u751f\u4fe1\u606f\u7684\u7ba1\u7406<\/p>\n<pre><code class=\"language-java\">public class Test {\n    public static void main(String[] args) {\n        \/\/ \u76ee\u6807\uff1a\u5b8c\u6210\u73ed\u7ea7\u5b66\u751f\u4fe1\u606f\u7ba1\u7406\u7684\u6848\u4f8b\u3002\n        ClassManager clazz = new ClassManager();\n        clazz.printInfo();\n        clazz.printScore();\n    }\n}<\/code><\/pre>\n<p>\u60f3\u5207\u6362\u73ed\u7ea7\u7ba1\u7406\u7cfb\u7edf\u7684\u4e1a\u52a1\u529f\u80fd\uff0c\u968f\u65f6\u53ef\u4ee5\u5c06StudentOperatorImpl1\u5207\u6362\u4e3aStudentOperatorImpl2<\/p>\n<h3>6.3 \u63a5\u53e3JDK8\u7684\u65b0\u7279\u6027<\/h3>\n<pre><code class=\"language-java\">public interface A {\n    \/**\n     * 1\u3001\u9ed8\u8ba4\u65b9\u6cd5\uff1a\u5fc5\u987b\u4f7f\u7528default\u4fee\u9970\uff0c\u9ed8\u8ba4\u4f1a\u88abpublic\u4fee\u9970\n     * \u5b9e\u4f8b\u65b9\u6cd5\uff1a\u5bf9\u8c61\u7684\u65b9\u6cd5\uff0c\u5fc5\u987b\u4f7f\u7528\u5b9e\u73b0\u7c7b\u7684\u5bf9\u8c61\u6765\u8bbf\u95ee\u3002\n     *\/\n    default void test1(){\n        System.out.println(&quot;===\u9ed8\u8ba4\u65b9\u6cd5==&quot;);\n        test2();\n    }\n\n    \/**\n     * 2\u3001\u79c1\u6709\u65b9\u6cd5\uff1a\u5fc5\u987b\u4f7f\u7528private\u4fee\u9970\u3002(JDK 9\u5f00\u59cb\u624d\u652f\u6301\u7684)\n     *   \u5b9e\u4f8b\u65b9\u6cd5\uff1a\u5bf9\u8c61\u7684\u65b9\u6cd5\u3002\n     *\/\n    private void test2(){\n        System.out.println(&quot;===\u79c1\u6709\u65b9\u6cd5==&quot;);\n    }\n\n    \/**\n     * 3\u3001\u9759\u6001\u65b9\u6cd5\uff1a\u5fc5\u987b\u4f7f\u7528static\u4fee\u9970\uff0c\u9ed8\u8ba4\u4f1a\u88abpublic\u4fee\u9970\n     *\/\n     static void test3(){\n        System.out.println(&quot;==\u9759\u6001\u65b9\u6cd5==&quot;);\n     }\n\n     void test4();\n     void test5();\n     default void test6(){\n\n     }\n\n}<\/code><\/pre>\n<p>\u63a5\u4e0b\u6765\u6211\u4eec\u5199\u4e00\u4e2aB\u7c7b\uff0c\u5b9e\u73b0A\u63a5\u53e3\u3002<\/p>\n<p>B\u7c7b\u4f5c\u4e3aA\u63a5\u53e3\u7684\u5b9e\u73b0\u7c7b\uff0c\u53ea\u9700\u8981\u91cd\u5199\u62bd\u8c61\u65b9\u6cd5\uff0c\u5bf9\u4e8e\u9ed8\u8ba4\u65b9\u6cd5\u4e0d\u9700\u8981\u5b50\u7c7b\u91cd\u5199<\/p>\n<pre><code class=\"language-java\">public class B implements A{\n    @Override\n    public void test4() {\n\n    }\n\n    @Override\n    public void test5() {\n\n    }\n\n}<\/code><\/pre>\n<p>\u5199\u4e00\u4e2a\u6d4b\u8bd5\u7c7b\uff0c\u89c2\u5bdf\u63a5\u53e3\u4e2d\u7684\u4e09\u79cd\u65b9\u6cd5<\/p>\n<pre><code class=\"language-java\">public class Test {\n    public static void main(String[] args) {\n        \/\/ \u76ee\u6807\uff1a\u638c\u63e1\u63a5\u53e3\u65b0\u589e\u7684\u4e09\u79cd\u65b9\u6cd5\u5f62\u5f0f\n        B b = new B();\n        b.test1();  \/\/\u9ed8\u8ba4\u65b9\u6cd5\u4f7f\u7528\u5bf9\u8c61\u8c03\u7528\n        \/\/ b.test2();   \/\/A\u63a5\u53e3\u4e2d\u7684\u79c1\u6709\u65b9\u6cd5\uff0cB\u7c7b\u8c03\u7528\u4e0d\u4e86\n        A.test3();  \/\/\u9759\u6001\u65b9\u6cd5\uff0c\u4f7f\u7528\u63a5\u53e3\u540d\u8c03\u7528\n    }\n}<\/code><\/pre>\n<h3>6.4 \u6ce8\u610f\u4e8b\u9879<\/h3>\n<p>\u4e00\u4e2a\u63a5\u53e3\u53ef\u4ee5\u7ee7\u627f\u591a\u4e2a\u63a5\u53e3<\/p>\n<pre><code class=\"language-java\">public class Test {\n    public static void main(String[] args) {\n        \/\/ \u76ee\u6807\uff1a\u7406\u89e3\u63a5\u53e3\u7684\u591a\u7ee7\u627f\u3002\n    }\n}\n\ninterface A{\n    void test1();\n}\ninterface B{\n    void test2();\n}\ninterface C{}\n\n\/\/\u6bd4\u5982\uff1aD\u63a5\u53e3\u7ee7\u627fC\u3001B\u3001A\ninterface D extends C, B, A{\n\n}\n\n\/\/E\u7c7b\u5728\u5b9e\u73b0D\u63a5\u53e3\u65f6\uff0c\u5fc5\u987b\u91cd\u5199D\u63a5\u53e3\u3001\u4ee5\u53ca\u5176\u7236\u7c7b\u4e2d\u7684\u6240\u6709\u62bd\u8c61\u65b9\u6cd5\u3002\nclass E implements D{\n    @Override\n    public void test1() {\n\n    }\n\n    @Override\n    public void test2() {\n\n    }\n\n}<\/code><\/pre>\n<pre><code class=\"language-java\">1.\u4e00\u4e2a\u63a5\u53e3\u7ee7\u627f\u591a\u4e2a\u63a5\u53e3\uff0c\u5982\u679c\u591a\u4e2a\u63a5\u53e3\u4e2d\u5b58\u5728\u76f8\u540c\u7684\u65b9\u6cd5\u58f0\u660e\uff0c\u5219\u6b64\u65f6\u4e0d\u652f\u6301\u591a\u7ee7\u627f\n2.\u4e00\u4e2a\u7c7b\u5b9e\u73b0\u591a\u4e2a\u63a5\u53e3\uff0c\u5982\u679c\u591a\u4e2a\u63a5\u53e3\u4e2d\u5b58\u5728\u76f8\u540c\u7684\u65b9\u6cd5\u58f0\u660e\uff0c\u5219\u6b64\u65f6\u4e0d\u652f\u6301\u591a\u5b9e\u73b0\n3.\u4e00\u4e2a\u7c7b\u7ee7\u627f\u4e86\u7236\u7c7b\uff0c\u53c8\u540c\u65f6\u5b9e\u73b0\u4e86\u63a5\u53e3\uff0c\u7236\u7c7b\u4e2d\u548c\u63a5\u53e3\u4e2d\u6709\u540c\u540d\u7684\u9ed8\u8ba4\u65b9\u6cd5\uff0c\u5b9e\u73b0\u7c7b\u4f1a\u6709\u9650\u4f7f\u7528\u7236\u7c7b\u7684\u65b9\u6cd5\n4.\u4e00\u4e2a\u7c7b\u5b9e\u73b0\u7c7b\u591a\u4e2a\u63a5\u53e3\uff0c\u591a\u4e2a\u63a5\u53e3\u4e2d\u6709\u540c\u540d\u7684\u9ed8\u8ba4\u65b9\u6cd5\uff0c\u5219\u8fd9\u4e2a\u7c7b\u5fc5\u987b\u91cd\u5199\u8be5\u65b9\u6cd5\u3002<\/code><\/pre>\n<p>\u4e00\u4e2a\u63a5\u53e3\u53ef\u4ee5\u7ee7\u627f\u591a\u4e2a\u63a5\u53e3\uff0c\u63a5\u53e3\u540c\u65f6\u4e5f\u53ef\u4ee5\u88ab\u7c7b\u5b9e\u73b0<\/p>\n<h2>\u4e03\u3001\u5185\u90e8\u7c7b<\/h2>\n<p>\u5f53\u4e00\u4e2a\u7c7b\u7684\u5185\u90e8\uff0c\u5305\u542b\u4e00\u4e2a\u5b8c\u6574\u7684\u4e8b\u7269\uff0c\u4e14\u8fd9\u4e2a\u4e8b\u7269\u6ca1\u6709\u5fc5\u8981\u5355\u72ec\u8bbe\u8ba1\u65f6\uff0c\u5c31\u53ef\u4ee5\u628a\u8fd9\u4e2a\u4e8b\u7269\u8bbe\u8ba1\u6210\u5185\u90e8\u7c7b<\/p>\n<pre><code class=\"language-java\">public class Car{\n    \/\/\u5185\u90e8\u7c7b\n    public class Engine{\n\n    }\n\n}<\/code><\/pre>\n<p>\u5185\u90e8\u7c7b\u6709\u56db\u79cd\u5f62\u5f0f\uff0c\u5206\u522b\u662f\u6210\u5458\u5185\u90e8\u7c7b\u3001\u9759\u6001\u5185\u90e8\u7c7b\u3001\u5c40\u90e8\u5185\u90e8\u7c7b\u3001\u533f\u540d\u5185\u90e8\u7c7b<\/p>\n<h3>7.1 \u6210\u5458\u5185\u90e8\u7c7b<\/h3>\n<p>\u6210\u5458\u5185\u90e8\u7c7b\u5c31\u662f\u7c7b\u4e2d\u7684\u4e00\u4e2a\u666e\u901a\u6210\u5458\uff0c\u7c7b\u4f3c\u4e8e\u6210\u5458\u53d8\u91cf\u3001\u6210\u5458\u65b9\u6cd5<\/p>\n<pre><code class=\"language-java\">public class Outer {\n    private int age = 99;\n    public static String a=&quot;\u9ed1\u9a6c&quot;;\n\n    \/\/ \u6210\u5458\u5185\u90e8\u7c7b\n    public class Inner{\n        private String name;\n        private  int age = 88;\n\n        \/\/\u5728\u5185\u90e8\u7c7b\u4e2d\u65e2\u53ef\u4ee5\u8bbf\u95ee\u81ea\u5df1\u7c7b\u7684\u6210\u5458\uff0c\u4e5f\u53ef\u4ee5\u8bbf\u95ee\u5916\u90e8\u7c7b\u7684\u6210\u5458\n        public void test(){\n            System.out.println(age); \/\/88\n            System.out.println(a);   \/\/\u9ed1\u9a6c\n\n            int age = 77;\n            System.out.println(age); \/\/77\n            System.out.println(this.age); \/\/88\n            System.out.println(Outer.this.age); \/\/99\n        }\n\n        public String getName() {\n            return name;\n        }\n\n        public void setName(String name) {\n            this.name = name;\n        }\n\n        public int getAge() {\n            return age;\n        }\n\n        public void setAge(int age) {\n            this.age = age;\n        }\n    }\n\n}<\/code><\/pre>\n<p>\u6210\u5458\u5185\u90e8\u7c7b\u521b\u5efa\u5bf9\u8c61\uff0c\u683c\u5f0f\u5982\u4e0b<\/p>\n<pre><code class=\"language-java\">\/\/\u5916\u90e8\u7c7b.\u5185\u90e8\u7c7b \u53d8\u91cf\u540d = new \u5916\u90e8\u7c7b().new \u5185\u90e8\u7c7b();\nOuter.Inner in = new Outer().new Inner();\n\/\/\u8c03\u7528\u5185\u90e8\u7c7b\u7684\u65b9\u6cd5\nin.test();<\/code><\/pre>\n<p>\u65e2\u53ef\u4ee5\u8bbf\u95ee\u5185\u90e8\u7c7b\u6210\u5458\u3001\u4e5f\u53ef\u4ee5\u8bbf\u95ee\u5916\u90e8\u7c7b\u6210\u5458<\/p>\n<p>\u5982\u679c\u5185\u90e8\u7c7b\u6210\u5458\u548c\u5916\u90e8\u7c7b\u6210\u5458\u540c\u540d\uff0c\u53ef\u4ee5\u4f7f\u7528<strong><code>\u7c7b\u540d.this.\u6210\u5458<\/code><\/strong>\u533a\u5206<\/p>\n<h3>7.2 \u9759\u6001\u5185\u90e8\u7c7b<\/h3>\n<p>\u9759\u6001\u5185\u90e8\u7c7b\uff0c\u5176\u5b9e\u5c31\u662f\u5728\u6210\u5458\u5185\u90e8\u7c7b\u7684\u524d\u9762\u52a0\u4e86\u4e00\u4e2astatic\u5173\u952e\u5b57\u3002\u9759\u6001\u5185\u90e8\u7c7b\u5c5e\u4e8e\u5916\u90e8\u7c7b\u81ea\u5df1\u6301\u6709<\/p>\n<pre><code class=\"language-java\">public class Outer {\n    private int age = 99;\n    public static String schoolName=&quot;\u9ed1\u9a6c&quot;;\n\n    \/\/ \u9759\u6001\u5185\u90e8\u7c7b\n    public static class Inner{\n        \/\/\u9759\u6001\u5185\u90e8\u7c7b\u8bbf\u95ee\u5916\u90e8\u7c7b\u7684\u9759\u6001\u53d8\u91cf\uff0c\u662f\u53ef\u4ee5\u7684\uff1b\n        \/\/\u9759\u6001\u5185\u90e8\u7c7b\u8bbf\u95ee\u5916\u90e8\u7c7b\u7684\u5b9e\u4f8b\u53d8\u91cf\uff0c\u662f\u4e0d\u884c\u7684\n        public void test(){\n            System.out.println(schoolName); \/\/99\n            \/\/System.out.println(age);   \/\/\u62a5\u9519\n        }\n    }\n\n}<\/code><\/pre>\n<p>\u9759\u6001\u5185\u90e8\u7c7b\u521b\u5efa\u5bf9\u8c61\u65f6\uff0c\u9700\u8981\u4f7f\u7528\u5916\u90e8\u7c7b\u7684\u7c7b\u540d\u8c03\u7528<\/p>\n<pre><code class=\"language-java\">\/\/\u683c\u5f0f\uff1a\u5916\u90e8\u7c7b.\u5185\u90e8\u7c7b \u53d8\u91cf\u540d = new \u5916\u90e8\u7c7b.\u5185\u90e8\u7c7b();\nOuter.Inner in = new Outer.Inner();\nin.test();<\/code><\/pre>\n<h3>7.3 \u5c40\u90e8\u5185\u90e8\u7c7b<\/h3>\n<p>\u5c40\u90e8\u5185\u90e8\u7c7b\u662f\u5b9a\u4e49\u5728\u65b9\u6cd5\u4e2d\u7684\u7c7b\uff0c\u548c\u5c40\u90e8\u53d8\u91cf\u4e00\u6837\uff0c\u53ea\u80fd\u5728\u65b9\u6cd5\u4e2d\u6709\u6548\u3002\u6240\u4ee5\u5c40\u90e8\u5185\u90e8\u7c7b\u7684\u5c40\u9650\u6027\u5f88\u5f3a\uff0c\u4e00\u822c\u5728\u5f00\u53d1\u4e2d\u662f\u4e0d\u4f1a\u4f7f\u7528\u7684\u3002<\/p>\n<pre><code class=\"language-java\">public class Outer{\n    public void test(){\n        \/\/\u5c40\u90e8\u5185\u90e8\u7c7b\n        class Inner{\n            public void show(){\n                System.out.println(&quot;Inner...show&quot;);\n            }\n        }\n\n     \/\/\u5c40\u90e8\u5185\u90e8\u7c7b\u53ea\u80fd\u5728\u65b9\u6cd5\u4e2d\u521b\u5efa\u5bf9\u8c61\uff0c\u5e76\u4f7f\u7528\n       Inner in = new Inner();\n        in.show();\n    }\n\n}<\/code><\/pre>\n<h3>7.4 \u533f\u540d\u5185\u90e8\u7c7b<\/h3>\n<h4>7.4.1 \u6982\u8ff0\u548c\u4f7f\u7528<\/h4>\n<p>\u5b9e\u9645\u5f00\u53d1\u4e2d\u7528\u5f97\u6700\u591a\u7684\u4e00\u79cd\u5185\u90e8\u7c7b\uff0c\u53eb\u533f\u540d\u5185\u90e8\u7c7b<\/p>\n<p>\u533f\u540d\u5185\u90e8\u7c7b\u662f\u4e00\u79cd\u7279\u6b8a\u7684\u5c40\u90e8\u5185\u90e8\u7c7b\uff1b\u6240\u8c13\u533f\u540d\uff0c\u6307\u7684\u662f\u7a0b\u5e8f\u5458\u4e0d\u9700\u8981\u4e3a\u8fd9\u4e2a\u7c7b\u58f0\u660e\u540d\u5b57<\/p>\n<pre><code class=\"language-java\">new \u7236\u7c7b\/\u63a5\u53e3(\u53c2\u6570\u503c){\n    @Override\n    \u91cd\u5199\u7236\u7c7b\/\u63a5\u53e3\u7684\u65b9\u6cd5;\n}<\/code><\/pre>\n<p>\u533f\u540d\u5185\u90e8\u7c7b\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u6ca1\u6709\u540d\u5b57\u7684\u5b50\u7c7b\u5bf9\u8c61\u3001\u6216\u8005\u63a5\u53e3\u7684\u5b9e\u73b0\u7c7b\u5bf9\u8c61<\/p>\n<p>\u5148\u5b9a\u4e49\u4e00\u4e2aAnimal\u62bd\u8c61\u7c7b\uff0c\u91cc\u9762\u5b9a\u4e49\u4e00\u4e2acry()\u65b9\u6cd5\uff0c\u8868\u793a\u6240\u6709\u7684\u52a8\u7269\u6709\u53eb\u7684\u884c\u4e3a\uff0c\u4f46\u662f\u56e0\u4e3a\u52a8\u7269\u8fd8\u4e0d\u5177\u4f53\uff0ccry()\u8fd9\u4e2a\u884c\u4e3a\u5e76\u4e0d\u80fd\u5177\u4f53\u5316\uff0c\u6240\u4ee5\u5199\u6210\u62bd\u8c61\u65b9\u6cd5<\/p>\n<pre><code class=\"language-java\">public abstract class Animal{\n    public abstract void cry();\n}<\/code><\/pre>\n<p>\u6211\u60f3\u8981\u5728\u4e0d\u5b9a\u4e49\u5b50\u7c7b\u7684\u60c5\u51b5\u4e0b\u521b\u5efaAnimal\u7684\u5b50\u7c7b\u5bf9\u8c61\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528\u533f\u540d\u5185\u90e8\u7c7b<\/p>\n<pre><code class=\"language-java\">public class Test{\n    public static void main(String[] args){\n        \/\/\u8fd9\u91cc\u540e\u9762new \u7684\u90e8\u5206\uff0c\u5176\u5b9e\u5c31\u662f\u4e00\u4e2aAnimal\u7684\u5b50\u7c7b\u5bf9\u8c61\n        \/\/\u8fd9\u91cc\u9690\u542b\u7684\u6709\u591a\u6001\u7684\u7279\u6027\uff1a Animal a = Animal\u5b50\u7c7b\u5bf9\u8c61;\n        Animal a = new Animal(){\n            @Override\n            public void cry(){\n                System.out.println(&quot;\u732b\u55b5\u55b5\u55b5\u7684\u53eb~~~&quot;);\n            }\n        }\n        a.eat(); \/\/\u76f4\u7ebf\u4e0a\u9762\u91cd\u5199\u7684cry()\u65b9\u6cd5\n    }\n}<\/code><\/pre>\n<p>\u533f\u540d\u5185\u90e8\u7c7b\u5728\u7f16\u5199\u4ee3\u7801\u65f6\u6ca1\u6709\u540d\u5b57\uff0c\u7f16\u8bd1\u540e\u7cfb\u7edf\u4f1a\u4e3a\u81ea\u52a8\u4e3a\u533f\u540d\u5185\u90e8\u7c7b\u751f\u4ea7\u5b57\u8282\u7801\uff0c\u5b57\u8282\u7801\u7684\u540d\u79f0\u4f1a\u4ee5<code>\u5916\u90e8\u7c7b$1.class<\/code>\u7684\u65b9\u6cd5\u547d\u540d<\/p>\n<p>\u533f\u540d\u5185\u90e8\u7c7b\u7684\u4f5c\u7528\uff1a\u7b80\u5316\u4e86\u521b\u5efa\u5b50\u7c7b\u5bf9\u8c61\u3001\u5b9e\u73b0\u7c7b\u5bf9\u8c61\u7684\u4e66\u5199\u683c\u5f0f<\/p>\n<h4>7.4.2 \u5e94\u7528\u573a\u666f<\/h4>\n<p>\u4e00\u822c\u6211\u4eec\u4f1a\u4e3b\u52a8\u7684\u4f7f\u7528\u533f\u540d\u5185\u90e8\u7c7b<\/p>\n<p><strong>\u53ea\u6709\u5728\u8c03\u7528\u65b9\u6cd5\u65f6\uff0c\u5f53\u65b9\u6cd5\u7684\u5f62\u53c2\u662f\u4e00\u4e2a\u63a5\u53e3\u6216\u8005\u62bd\u8c61\u7c7b\uff0c\u4e3a\u4e86\u7b80\u5316\u4ee3\u7801\u4e66\u5199\uff0c\u800c\u76f4\u63a5\u4f20\u9012\u533f\u540d\u5185\u90e8\u7c7b\u5bf9\u8c61\u7ed9\u65b9\u6cd5\u3002<\/strong>\u8fd9\u6837\u5c31\u53ef\u4ee5\u5c11\u5199\u4e00\u4e2a\u7c7b<\/p>\n<pre><code class=\"language-java\">public interface Swimming{\n    public void swim();\n}<\/code><\/pre>\n<pre><code class=\"language-java\">public class Test{\n    public static void main(String[] args){\n        Swimming s1 = new Swimming(){\n            public void swim(){\n                System.out.println(&quot;\u72d7\u5228\u98de\u5feb&quot;);\n            }\n        };\n        go(s1)\uff1b\n        Swimming s1 = new Swimming(){\n            public void swim(){\n                System.out.println(&quot;\u7334\u5b50\u6e38\u6cf3\u4e5f\u8fd8\u884c&quot;);\n            }\n        };\n        go(s1);\n    }\n    \/\/\u5f62\u53c2\u662fSwimming\u63a5\u53e3\uff0c\u5b9e\u53c2\u53ef\u4ee5\u63a5\u6536\u4efb\u610fSwimming\u63a5\u53e3\u7684\u5b9e\u73b0\u7c7b\u5bf9\u8c61\n    public static void go(Swimming s){\n        System.out.println(&quot;\u5f00\u59cb~~~~~~~~&quot;);\n        s.swim();\n        System.out.println(&quot;\u7ed3\u675f~~~~~~~~&quot;);\n    }\n\n}<\/code><\/pre>\n<h2>\u516b\u3001\u679a\u4e3e<\/h2>\n<h3>8.1 \u8ba4\u8bc6\u679a\u4e3e<\/h3>\n<h4>8.1.1 \u6982\u8ff0\u548c\u539f\u7406<\/h4>\n<p>\u679a\u4e3e\u662f\u4e00\u79cd\u7279\u6b8a\u7684\u7c7b<\/p>\n<pre><code class=\"language-java\">public enum \u679a\u4e3e\u7c7b\u540d{\n    \u679a\u4e3e\u98791,\u679a\u4e3e\u98792,\u679a\u4e3e\u98793;\n}<\/code><\/pre>\n<p>\u5176\u5b9e\u679a\u4e3e\u9879\u5c31\u8868\u793a\u679a\u4e3e\u7c7b\u7684\u5bf9\u8c61\uff0c\u53ea\u662f\u8fd9\u4e9b\u5bf9\u8c61\u5728\u5b9a\u4e49\u679a\u4e3e\u7c7b\u65f6\u5c31\u9884\u5148\u5199\u597d\u4e86\uff0c\u4ee5\u540e\u5c31\u53ea\u80fd\u7528\u8fd9\u51e0\u4e2a\u56fa\u5b9a\u7684\u5bf9\u8c61<\/p>\n<pre><code class=\"language-java\">public enum A{\n    X,Y,Z;\n}<\/code><\/pre>\n<p>\u60f3\u8981\u83b7\u53d6\u679a\u4e3e\u7c7b\u4e2d\u7684\u679a\u4e3e\u9879\uff0c\u53ea\u9700\u8981\u7528\u7c7b\u540d\u8c03\u7528\u5c31\u53ef\u4ee5\u4e86<\/p>\n<pre><code class=\"language-java\">public class Test{\n    public static void main(String[] args){\n        \/\/\u83b7\u53d6\u679a\u4e3eA\u7c7b\u7684\uff0c\u679a\u4e3e\u9879\n        A a1 = A.X;\n        A a2 = A.Y;\n        A a3 = A.Z;\n    }\n}<\/code><\/pre>\n<h4>8.1.2 \u679a\u4e3e\u6df1\u5165<\/h4>\n<p>\u5728\u679a\u4e3e\u7c7b\u4e2d\u5b9a\u4e49\u6784\u9020\u5668\u3001\u6210\u5458\u53d8\u91cf\u3001\u6210\u5458\u65b9\u6cd5<\/p>\n<pre><code class=\"language-java\">public enum A{\n    \/\/\u5b9a\u4e49\u679a\u4e3e\u9879\n    X,Y,Z(&quot;\u5f20\u4e09&quot;); \/\/\u679a\u4e3e\u9879\u540e\u9762\u52a0\u62ec\u53f7\uff0c\u5c31\u662f\u5728\u6267\u884c\u679a\u4e3e\u7c7b\u7684\u5e26\u53c2\u6570\u6784\u9020\u65b9\u6cd5\u3002\n\n    \/\/\u5b9a\u4e49\u7a7a\u6784\u9020\u5668\n    public A(){\n\n    }\n\n    \/\/\u6210\u5458\u53d8\u91cf\n    private String name;\n    \/\/\u5b9a\u4e49\u5e26\u53c2\u6570\u6784\u9020\u5668\n    public A(String name){\n        this.name=name;\n    }\n\n    \/\/\u6210\u5458\u65b9\u6cd5\n    public String getName(){\n        return name;\n    }\n    ...\n\n}<\/code><\/pre>\n<p>\u867d\u7136\u679a\u4e3e\u7c7b\u4e2d\u53ef\u4ee5\u50cf\u7c7b\u4e00\u6837\uff0c\u5199\u4e00\u4e9b\u7c7b\u7684\u5176\u4ed6\u6210\u5458\uff0c\u4f46\u662f\u4e00\u822c\u4e0d\u4f1a\u8fd9\u4e48\u5199\uff0c\u5982\u679c\u4f60\u771f\u8981\u8fd9\u4e48\u5e72\u7684\u8bdd\uff0c\u5230\u4e0d\u5982\u76f4\u63a5\u5199\u666e\u901a\u7c7b\u6765\u7684\u76f4\u63a5<\/p>\n<h3>8.2 \u679a\u4e3e\u7684\u5e94\u7528\u573a\u666f<\/h3>\n<p>\u679a\u4e3e\u4e00\u822c\u8868\u793a\u4e00\u7ec4\u4fe1\u606f\uff0c\u7136\u540e\u4f5c\u4e3a\u53c2\u6570\u8fdb\u884c\u4f20\u8f93<\/p>\n<p>\u4e3e\u4f8b\uff1a\u7528\u6237\u8fdb\u5165\u5e94\u7528\u65f6\uff0c\u9700\u8981\u8ba9\u7528\u6237\u9009\u62e9\u662f\u5973\u751f\u3001\u8fd8\u662f\u7537\u751f\uff0c\u7136\u540e\u7cfb\u7edf\u4f1a\u6839\u636e\u7528\u6237\u9009\u62e9\u7684\u662f\u7537\u751f\uff0c\u8fd8\u662f\u5973\u751f\u63a8\u8350\u4e0d\u540c\u7684\u4fe1\u606f\u7ed9\u7528\u6237\u89c2\u770b<\/p>\n<p>\u5148\u5b9a\u4e49\u4e00\u4e2a\u679a\u4e3e\u7c7b\uff0c\u7528\u6765\u8868\u793a\u7537\u751f\u3001\u6216\u8005\u5973\u751f<\/p>\n<pre><code class=\"language-java\">public class Constant{\n    BOY,GRIL\n}<\/code><\/pre>\n<p>\u518d\u5b9a\u4e49\u4e00\u4e2a\u6d4b\u8bd5\u7c7b\uff0c\u5b8c\u6210\u7528\u6237\u8fdb\u5165\u7cfb\u7edf\u540e\u7684\u9009\u62e9<\/p>\n<pre><code class=\"language-java\">public class Test{\n    public static void main(String[] args){\n        \/\/\u8c03\u7528\u65b9\u6cd5\uff0c\u4f20\u9012\u7537\u751f\n        provideInfo(Constant.BOY);\n    }\n    public static void provideInfo(Constant c){\n        switch(c){\n            case BOY:\n                System.out.println(&quot;\u5c55\u793a\u4e00\u4e9b\u4fe1\u606f\u7ed9\u7537\u751f\u770b&quot;);\n                break;\n            case GRIL:\n                System.out.println(&quot;\u5c55\u793a\u4e00\u4e9b\u4fe1\u606f\u7ed9\u5973\u751f\u770b&quot;);\n                break;\n        }\n    }\n}<\/code><\/pre>\n<p>\u679a\u4e3e\u4e00\u822c\u8868\u793a\u51e0\u4e2a\u56fa\u5b9a\u7684\u503c\uff0c\u7136\u540e\u4f5c\u4e3a\u53c2\u6570\u8fdb\u884c\u4f20\u8f93<\/p>\n<h2>\u4e5d\u3001\u6cdb\u578b<\/h2>\n<h3>9.1 \u8ba4\u8bc6\u6cdb\u578b<\/h3>\n<p>\u5728\u5b9a\u4e49\u7c7b\u3001\u63a5\u53e3\u3001\u65b9\u6cd5\u65f6\uff0c\u540c\u65f6\u58f0\u660e\u4e86\u4e00\u4e2a\u6216\u8005\u591a\u4e2a\u7c7b\u578b\u53d8\u91cf\uff08\u5982\uff1a<E>\uff09\uff0c\u79f0\u4e3a\u6cdb\u578b\u7c7b\u3001\u6cdb\u578b\u63a5\u53e3\u3001\u6cdb\u578b\u65b9\u6cd5\u3001\u5b83\u4eec\u7edf\u79f0\u4e3a\u6cdb\u578b<\/p>\n<p>\u6bd4\u5982\u6211\u4eec\u524d\u9762\u5b66\u8fc7\u7684ArrayList\u7c7b\u5c31\u662f\u4e00\u4e2a\u6cdb\u578b\u7c7b<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231121102913169.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231121102913169.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231121102913169\" \/><\/div>\u3001<\/p>\n<p>ArrayList\u96c6\u5408\u7684\u8bbe\u8ba1\u8005\u5728\u5b9a\u4e49ArrayList\u96c6\u5408\u65f6\uff0c\u5c31\u5df2\u7ecf\u660e\u786eArrayList\u96c6\u5408\u65f6\u7ed9\u522b\u4eba\u88c5\u6570\u636e\u7528\u7684\uff0c\u4f46\u662f\u522b\u4eba\u7528ArrayList\u96c6\u5408\u65f6\u5019\uff0c\u88c5\u4ec0\u4e48\u7c7b\u578b\u7684\u6570\u636e\u4ed6\u4e0d\u77e5\u9053\uff0c\u6240\u4ee5\u5c31\u7528\u4e00\u4e2a<code>&lt;E&gt;<\/code>\u8868\u793a\u5143\u7d20\u7684\u6570\u636e\u7c7b\u578b<\/p>\n<p>\u5f53\u522b\u4eba\u4f7f\u7528ArrayList\u96c6\u5408\u521b\u5efa\u5bf9\u8c61\u65f6\uff0c<code>new ArrayList&lt;String&gt; <\/code>\u5c31\u8868\u793a\u5143\u7d20\u4e3aString\u7c7b\u578b\uff0c<code>new ArrayList&lt;Integer&gt;<\/code>\u8868\u793a\u5143\u7d20\u4e3aInteger\u7c7b\u578b<\/p>\n<p><strong>\u6cdb\u578b\u7684\u597d\u5904\uff1a\u5728\u7f16\u8bd1\u9636\u6bb5\u53ef\u4ee5\u907f\u514d\u51fa\u73b0\u4e00\u4e9b\u975e\u6cd5\u7684\u6570\u636e\u3002<\/strong><\/p>\n<p><strong>\u6cdb\u578b\u7684\u672c\u8d28\uff1a\u628a\u5177\u4f53\u7684\u6570\u636e\u7c7b\u578b\u4f20\u9012\u7ed9\u7c7b\u578b\u53d8\u91cf<\/strong><\/p>\n<h3>9.2 \u81ea\u5b9a\u4e49\u6cdb\u578b\u7c7b<\/h3>\n<p>\u6cdb\u578b\u7c7b\uff0c\u5728\u5b9e\u9645\u5de5\u4f5c\u4e2d\u4e00\u822c\u90fd\u662f\u6e90\u4ee3\u7801\u4e2d\u5199\u597d\uff0c\u6211\u4eec\u76f4\u63a5\u7528\u7684\uff0c\u5c31\u662fArrayList<E>\u8fd9\u6837\u7684\uff0c\u81ea\u5df1\u5b9a\u4e49\u6cdb\u578b\u7c7b\u662f\u975e\u5e38\u5c11\u7684<\/p>\n<pre><code class=\"language-java\">\/\/\u8fd9\u91cc\u7684&lt;T,W&gt;\u5176\u5b9e\u6307\u7684\u5c31\u662f\u7c7b\u578b\u53d8\u91cf\uff0c\u53ef\u4ee5\u662f\u4e00\u4e2a\uff0c\u4e5f\u53ef\u4ee5\u662f\u591a\u4e2a\u3002\npublic class \u7c7b\u540d&lt;T,W&gt;{\n\n}<\/code><\/pre>\n<pre><code class=\"language-java\">\u5b9a\u4e49\u4e00\u4e2aMyArrayList&lt;E&gt;\u6cdb\u578b\u7c7b\uff0c\u6a21\u62df\u4e00\u4e0b\u81ea\u5b9a\u4e49\u6cdb\u578b\u7c7b\u7684\u4f7f\u7528\n\n\/\/\u5b9a\u4e49\u4e00\u4e2a\u6cdb\u578b\u7c7b\uff0c\u7528\u6765\u8868\u793a\u4e00\u4e2a\u5bb9\u5668\n\/\/\u5bb9\u5668\u4e2d\u5b58\u50a8\u7684\u6570\u636e\uff0c\u5b83\u7684\u7c7b\u578b\u7528&lt;E&gt;\u5148\u4ee3\u66ff\u7528\u7740\uff0c\u7b49\u8c03\u7528\u8005\u6765\u786e\u8ba4&lt;E&gt;\u7684\u5177\u4f53\u7c7b\u578b\u3002\npublic class MyArrayList&lt;E&gt;{\n    private Object[] array = new Object[10];\n    \/\/\u5b9a\u4e00\u4e2a\u7d22\u5f15\uff0c\u65b9\u4fbf\u5bf9\u6570\u7ec4\u8fdb\u884c\u64cd\u4f5c\n    private int index;\n\n    \/\/\u6dfb\u52a0\u5143\u7d20\n    public void add(E e){\n        array[index]=e;\n        index++;\n    }\n\n    \/\/\u83b7\u53d6\u5143\u7d20\n    public E get(int index){\n        return (E)array[index];\n    }\n\n}<\/code><\/pre>\n<p>\u5199\u4e00\u4e2a\u6d4b\u8bd5\u7c7b\uff0c\u6765\u6d4b\u8bd5\u81ea\u5b9a\u4e49\u7684\u6cdb\u578b\u7c7bMyArrayList\u662f\u5426\u80fd\u591f\u6b63\u5e38\u4f7f\u7528<\/p>\n<pre><code class=\"language-java\">public class Test{\n    public static void main(String[] args){\n        \/\/1.\u786e\u5b9aMyArrayList\u96c6\u5408\u4e2d\uff0c\u5143\u7d20\u7c7b\u578b\u4e3aString\u7c7b\u578b\n        MyArrayList&lt;String&gt; list = new MyArrayList&lt;&gt;();\n        \/\/\u6b64\u65f6\u6dfb\u52a0\u5143\u7d20\u65f6\uff0c\u53ea\u80fd\u6dfb\u52a0String\u7c7b\u578b\n        list.add(&quot;\u5f20\u4e09&quot;);\n        list.add(&quot;\u674e\u56db&quot;);\n\n         \/\/2.\u786e\u5b9aMyArrayList\u96c6\u5408\u4e2d\uff0c\u5143\u7d20\u7c7b\u578b\u4e3aInteger\u7c7b\u578b\n        MyArrayList&lt;Integer&gt; list1 = new MyArrayList&lt;&gt;();\n        \/\/\u6b64\u65f6\u6dfb\u52a0\u5143\u7d20\u65f6\uff0c\u53ea\u80fd\u6dfb\u52a0String\u7c7b\u578b\n        list.add(100);\n        list.add(200);\n\n    }\n\n}<\/code><\/pre>\n<h3>9.3 \u81ea\u5b9a\u4e49\u6cdb\u578b\u63a5\u53e3<\/h3>\n<p>\u6cdb\u578b\u63a5\u53e3\u5176\u5b9e\u6307\u7684\u662f\u5728\u63a5\u53e3\u4e2d\u628a\u4e0d\u786e\u5b9a\u7684\u6570\u636e\u7c7b\u578b\u7528<code>&lt;\u7c7b\u578b\u53d8\u91cf&gt;<\/code>\u8868\u793a<\/p>\n<pre><code class=\"language-java\">\/\/\u8fd9\u91cc\u7684\u7c7b\u578b\u53d8\u91cf\uff0c\u4e00\u822c\u662f\u4e00\u4e2a\u5b57\u6bcd\uff0c\u6bd4\u5982&lt;E&gt;\npublic interface \u63a5\u53e3\u540d&lt;\u7c7b\u578b\u53d8\u91cf&gt;{\n\n}<\/code><\/pre>\n<p>\u6211\u4eec\u73b0\u5728\u8981\u505a\u4e00\u4e2a\u7cfb\u7edf\u8981\u5904\u7406\u5b66\u751f\u548c\u8001\u5e08\u7684\u6570\u636e\uff0c\u9700\u8981\u63d0\u4f9b2\u4e2a\u529f\u80fd\uff0c\u4fdd\u5b58\u5bf9\u8c61\u6570\u636e\u3001\u6839\u636e\u540d\u79f0\u67e5\u8be2\u6570\u636e\uff0c\u8981\u6c42\uff1a\u8fd9\u4e24\u4e2a\u529f\u80fd\u5904\u7406\u7684\u6570\u636e\u65e2\u80fd\u662f\u8001\u5e08\u5bf9\u8c61\uff0c\u4e5f\u80fd\u662f\u5b66\u751f\u5bf9\u8c61<\/p>\n<pre><code class=\"language-java\">public class Teacher{\n\n}<\/code><\/pre>\n<pre><code class=\"language-java\">public class Student{\n\n}<\/code><\/pre>\n<p>\u5b9a\u4e49\u4e00\u4e2a<code>Data&lt;T&gt;<\/code>\u6cdb\u578b\u63a5\u53e3\uff0cT\u8868\u793a\u63a5\u53e3\u4e2d\u8981\u5904\u7406\u6570\u636e\u7684\u7c7b\u578b<\/p>\n<pre><code class=\"language-java\">public interface Data&lt;T&gt;{\n    public void add(T t);\n\n    public ArrayList&lt;T&gt; getByName(String name);\n\n}<\/code><\/pre>\n<p>\u5199\u4e00\u4e2a\u5904\u7406Teacher\u5bf9\u8c61\u7684\u63a5\u53e3\u5b9e\u73b0\u7c7b<\/p>\n<pre><code class=\"language-java\">\/\/\u6b64\u65f6\u786e\u5b9aData&lt;E&gt;\u4e2d\u7684E\u4e3aTeacher\u7c7b\u578b\uff0c\n\/\/\u63a5\u53e3\u4e2dadd\u548cgetByName\u65b9\u6cd5\u4e0a\u7684T\u4e5f\u90fd\u4f1a\u53d8\u6210Teacher\u7c7b\u578b\npublic class TeacherData implements Data&lt;Teacher&gt;{\n    public void add(Teacher t){\n\n    }\n\n    public ArrayList&lt;Teacher&gt; getByName(String name){\n\n    }\n\n}<\/code><\/pre>\n<pre><code class=\"language-java\">\u5199\u4e00\u4e2a\u5904\u7406Student\u5bf9\u8c61\u7684\u63a5\u53e3\u5b9e\u73b0\u7c7b\n\n\/\/\u6b64\u65f6\u786e\u5b9aData&lt;E&gt;\u4e2d\u7684E\u4e3aStudent\u7c7b\u578b\uff0c\n\/\/\u63a5\u53e3\u4e2dadd\u548cgetByName\u65b9\u6cd5\u4e0a\u7684T\u4e5f\u90fd\u4f1a\u53d8\u6210Student\u7c7b\u578b\npublic class StudentData implements Data&lt;Student&gt;{\n    public void add(Student t){\n    }  \n    public ArrayList&lt;Student&gt; getByName(String name){   \n    }\n}<\/code><\/pre>\n<p>\u5b9e\u9645\u5de5\u4f5c\u4e2d\uff0c\u4e00\u822c\u4e5f\u90fd\u662f\u6846\u67b6\u5e95\u5c42\u6e90\u4ee3\u7801\u628a\u6cdb\u578b\u63a5\u53e3\u5199\u597d\uff0c\u6211\u4eec\u5b9e\u73b0\u6cdb\u578b\u63a5\u53e3\u5c31\u53ef\u4ee5\u4e86<\/p>\n<h3>9.4 \u6cdb\u578b\u65b9\u6cd5<\/h3>\n<pre><code class=\"language-java\">public &lt;\u6cdb\u578b\u53d8\u91cf,\u6cdb\u578b\u53d8\u91cf&gt; \u8fd4\u56de\u503c\u7c7b\u578b \u65b9\u6cd5\u540d(\u5f62\u53c2\u5217\u8868){\n\n}<\/code><\/pre>\n<p>\u5728\u8fd4\u56de\u503c\u7c7b\u578b\u548c\u4fee\u9970\u7b26\u4e4b\u95f4\u6709<T>\u5b9a\u4e49\u7684\u624d\u662f\u6cdb\u578b\u65b9\u6cd5<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231121144301250.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231121144301250.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231121144301250\" \/><\/div><\/p>\n<p>\u4e3e\u4f8b\uff1a<\/p>\n<pre><code class=\"language-java\">public class Test{\n    public static void main(String[] args){\n        \/\/\u8c03\u7528test\u65b9\u6cd5\uff0c\u4f20\u9012\u5b57\u7b26\u4e32\u6570\u636e\uff0c\u90a3\u4e48test\u65b9\u6cd5\u7684\u6cdb\u578b\u5c31\u662fString\u7c7b\u578b\n        String rs = test(&quot;test&quot;);\n\n        \/\/\u8c03\u7528test\u65b9\u6cd5\uff0c\u4f20\u9012Dog\u5bf9\u8c61\uff0c\u90a3\u4e48test\u65b9\u6cd5\u7684\u6cdb\u578b\u5c31\u662fDog\u7c7b\u578b\n        Dog d = test(new Dog()); \n    }\n\n    \/\/\u8fd9\u662f\u4e00\u4e2a\u6cdb\u578b\u65b9\u6cd5&lt;T&gt;\u8868\u793a\u4e00\u4e2a\u4e0d\u786e\u5b9a\u7684\u6570\u636e\u7c7b\u578b\uff0c\u7531\u8c03\u7528\u8005\u786e\u5b9a\n    public static &lt;T&gt; test(T t){\n        return t;\n    }\n\n}<\/code><\/pre>\n<h3>9.5 \u6cdb\u578b\u9650\u5b9a<\/h3>\n<p>\u6cdb\u578b\u9650\u5b9a\u7684\u610f\u601d\u662f\u5bf9\u6cdb\u578b\u7684\u6570\u636e\u7c7b\u578b\u8fdb\u884c\u8303\u56f4\u7684\u9650\u5236\u3002\u6709\u5982\u4e0b\u7684\u4e09\u79cd\u683c\u5f0f<\/p>\n<p>&lt;?&gt; \u8868\u793a\u4efb\u610f\u7c7b\u578b<\/p>\n<p>&lt;? extends \u6570\u636e\u7c7b\u578b&gt; \u8868\u793a\u6307\u5b9a\u7c7b\u578b\u6216\u8005\u6307\u5b9a\u7c7b\u578b\u7684\u5b50\u7c7b<\/p>\n<p>&lt;? super \u6570\u636e\u7c7b\u578b&gt; \u8868\u793a\u6307\u5b9a\u7c7b\u578b\u6216\u8005\u6307\u5b9a\u7c7b\u578b\u7684\u7236\u7c7b<\/p>\n<p>\u6f14\u793a\u4e00\u4e0b\uff0c\u5047\u8bbe\u6709Car\u4f5c\u4e3a\u7236\u7c7b\uff0cBENZ\uff0cBWM\u4e24\u4e2a\u7c7b\u4f5c\u4e3aCar\u7684\u5b50\u7c7b<\/p>\n<pre><code class=\"language-java\">class Car{}\nclass BENZ extends Car{}\nclass BWN extends Car{}\n\npublic class Test{\n    public static void main(String[] args){\n        \/\/1.\u96c6\u5408\u4e2d\u7684\u5143\u7d20\u4e0d\u7ba1\u662f\u4ec0\u4e48\u7c7b\u578b\uff0ctest1\u65b9\u6cd5\u90fd\u80fd\u63a5\u6536\n        ArrayList&lt;BWM&gt; list1 = new ArrayList&lt;&gt;();\n        ArrayList&lt;Benz&gt; list2 = new ArrayList&lt;&gt;();\n        ArrayList&lt;String&gt; list3 = new ArrayList&lt;&gt;();\n        test1(list1);\n        test1(list2);\n        test1(list3);\n\n        \/\/2.\u96c6\u5408\u4e2d\u7684\u5143\u7d20\u53ea\u80fd\u662fCar\u6216\u8005Car\u7684\u5b50\u7c7b\u7c7b\u578b\uff0c\u624d\u80fd\u88abtest2\u65b9\u6cd5\u63a5\u6536\n        ArrayList&lt;Car&gt; list4 = new ArrayList&lt;&gt;();\n        ArrayList&lt;BWM&gt; list5 = new ArrayList&lt;&gt;();\n        test2(list4);\n        test2(list5);\n\n        \/\/2.\u96c6\u5408\u4e2d\u7684\u5143\u7d20\u53ea\u80fd\u662fCar\u6216\u8005Car\u7684\u7236\u7c7b\u7c7b\u578b\uff0c\u624d\u80fd\u88abtest3\u65b9\u6cd5\u63a5\u6536\n        ArrayList&lt;Car&gt; list6 = new ArrayList&lt;&gt;();\n        ArrayList&lt;Object&gt; list7 = new ArrayList&lt;&gt;();\n        test3(list6);\n        test3(list7);\n    }\n\n    public static void test1(ArrayList&lt;?&gt; list){\n\n    }\n\n    public static void test2(ArrayList&lt;? extends Car&gt; list){\n\n    }\n\n    public static void test3(ArrayList&lt;? super Car&gt; list){\n\n    }\n\n}<\/code><\/pre>\n<h3>9.6 \u6cdb\u578b\u64e6\u9664<\/h3>\n<p>\u6cdb\u578b\u53ea\u80fd\u7f16\u8bd1\u9636\u6bb5\u6709\u6548\uff0c\u4e00\u65e6\u7f16\u8bd1\u6210\u5b57\u8282\u7801\uff0c\u5b57\u8282\u7801\u4e2d\u662f\u4e0d\u5305\u542b\u6cdb\u578b\u7684<\/p>\n<p>\u6cdb\u578b\u53ea\u652f\u6301\u5f15\u7528\u6570\u636e\u7c7b\u578b\uff0c\u4e0d\u652f\u6301\u57fa\u672c\u6570\u636e\u7c7b\u578b<\/p>\n<h2>\u5341\u3001\u5e38\u7528API<\/h2>\n<p>API\uff08Application Programming interface\uff09\u610f\u601d\u662f\u5e94\u7528\u7a0b\u5e8f\u7f16\u7a0b\u63a5\u53e3<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231121161710273.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231121161710273.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231121161710273\" \/><\/div><\/p>\n<h3>10.1 Object\u7c7b<\/h3>\n<p>\u627e\u5230\u5176\u4e2d\u4e24\u4e2a\u65b9\u6cd5<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231121161756334.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231121161756334.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231121161756334\" \/><\/div><\/p>\n<h4>10.1.1 toString()\u65b9\u6cd5<\/h4>\n<pre><code class=\"language-java\">public String toString()\n    \u8c03\u7528toString()\u65b9\u6cd5\u53ef\u4ee5\u8fd4\u56de\u5bf9\u8c61\u7684\u5b57\u7b26\u4e32\u8868\u793a\u5f62\u5f0f\u3002\n    \u9ed8\u8ba4\u7684\u683c\u5f0f\u662f\uff1a\u201c\u5305\u540d.\u7c7b\u540d@\u54c8\u5e0c\u503c16\u8fdb\u5236\u201d<\/code><\/pre>\n<pre><code class=\"language-java\">public class Student{\n    private String name;\n    private int age;\n\n    public Student(String name, int age){\n        this.name=name;\n        this.age=age;\n    }\n\n}<\/code><\/pre>\n<p>\u6d4b\u8bd5\u7c7b<\/p>\n<pre><code class=\"language-java\">public class Test{\n    public static void main(String[] args){\n        Student s1 = new Student(&quot;\u8d75\u654f&quot;,23);\n        System.out.println(s1.toString()); \n    }\n}<\/code><\/pre>\n<p>\u5728Student\u7c7b\u91cd\u5199toString()\u65b9\u6cd5\uff0c\u90a3\u4e48\u6211\u4eec\u53ef\u4ee5\u8fd4\u56de\u5bf9\u8c61\u7684\u5c5e\u6027\u503c<\/p>\n<pre><code class=\"language-java\">public class Student{\n    private String name;\n    private int age;\n\n    public Student(String name, int age){\n        this.name=name;\n        this.age=age;\n    }\n\n    @Override\n    public String toString(){\n        return &quot;Student{name=\u2018&quot;+name+&quot;\u2019, age=&quot;+age+&quot;}&quot;;\n    }\n}<\/code><\/pre>\n<h4>10.1.2 equals(Object o)\u65b9\u6cd5<\/h4>\n<pre><code class=\"language-java\">public boolean equals(Object o)\n    \u5224\u65ad\u6b64\u5bf9\u8c61\u4e0e\u53c2\u6570\u5bf9\u8c61\u662f\u5426&quot;\u76f8\u7b49&quot;<\/code><\/pre>\n<p>\u5199\u4e00\u4e2a\u6d4b\u8bd5\u7c7b<\/p>\n<pre><code class=\"language-java\">public class Test{\n    public static void main(String[] args){\n        Student s1 = new Student(&quot;\u8d75\u8587&quot;,23);\n        Student s2 = new Student(&quot;\u8d75\u8587&quot;,23);\n        \/\/equals\u672c\u8eab\u4e5f\u662f\u6bd4\u8f83\u5bf9\u8c61\u7684\u5730\u5740\uff0c\u548c&quot;==&quot;\u6ca1\u6709\u533a\u522b\n        System.out.println(s1.equals(s2)); \/\/false\n         \/\/&quot;==&quot;\u6bd4\u8f83\u5bf9\u8c61\u7684\u5730\u5740\n        System.out.println(s1==s2); \/\/false\n    }\n}<\/code><\/pre>\n<p>\u5982\u679c\u6211\u4eec\u5728Student\u7c7b\u4e2d\uff0c\u628aequals\u65b9\u6cd5\u91cd\u5199\u4e86\uff0c\u5c31\u6309\u7167\u5bf9\u8c61\u7684\u5c5e\u6027\u503c\u8fdb\u884c\u6bd4\u8f83<\/p>\n<pre><code class=\"language-java\">public class Student{\n    private String name;\n    private int age;\n\n    public Student(String name, int age){\n        this.name=name;\n        this.age=age;\n    }\n\n    @Override\n    public String toString(){\n        return &quot;Student{name=\u2018&quot;+name+&quot;\u2019, age=&quot;+age+&quot;}&quot;;\n    }\n\n    \/\/\u91cd\u5199equals\u65b9\u6cd5\uff0c\u6309\u7167\u5bf9\u8c61\u7684\u5c5e\u6027\u503c\u8fdb\u884c\u6bd4\u8f83\n    @Override\n    public boolean equals(Object o) {\n        if (this == o) return true;\n        if (o == null || getClass() != o.getClass()) return false;\n\n        Student student = (Student) o;\n\n        if (age != student.age) return false;\n        return name != null ? name.equals(student.name) : student.name == null;\n    }\n\n}<\/code><\/pre>\n<p>\u5c0f\u7ed3\uff1a<\/p>\n<pre><code class=\"language-java\">public String toString()\n    \u8fd4\u56de\u5bf9\u8c61\u7684\u5b57\u7b26\u4e32\u8868\u793a\u5f62\u5f0f\u3002\u9ed8\u8ba4\u7684\u683c\u5f0f\u662f\uff1a\u201c\u5305\u540d.\u7c7b\u540d@\u54c8\u5e0c\u503c16\u8fdb\u5236\u201d\n    \u3010\u5b50\u7c7b\u91cd\u5199\u540e\uff0c\u8fd4\u56de\u5bf9\u8c61\u7684\u5c5e\u6027\u503c\u3011\n\npublic boolean equals(Object o)\n    \u5224\u65ad\u6b64\u5bf9\u8c61\u4e0e\u53c2\u6570\u5bf9\u8c61\u662f\u5426&quot;\u76f8\u7b49&quot;\u3002\u9ed8\u8ba4\u6bd4\u8f83\u5bf9\u8c61\u7684\u5730\u5740\u503c\uff0c\u548c&quot;==&quot;\u6ca1\u6709\u533a\u522b\n    \u3010\u5b50\u7c7b\u91cd\u5199\u540e\uff0c\u6bd4\u8f83\u5bf9\u8c61\u7684\u5c5e\u6027\u503c\u3011<\/code><\/pre>\n<h4>10.1.3 clone()\u65b9\u6cd5<\/h4>\n<pre><code class=\"language-java\">public Object clone()\n    \u514b\u9686\u5f53\u524d\u5bf9\u8c61\uff0c\u8fd4\u56de\u4e00\u4e2a\u65b0\u5bf9\u8c61<\/code><\/pre>\n<p>\u60f3\u8981\u8c03\u7528clone()\u65b9\u6cd5\uff0c\u5fc5\u987b\u8ba9\u88ab\u514b\u9686\u7684\u7c7b\u5b9e\u73b0Cloneable\u63a5\u53e3\u3002\u5982\u6211\u4eec\u51c6\u5907\u514b\u9686User\u7c7b\u7684\u5bf9\u8c61<\/p>\n<pre><code class=\"language-java\">public class User implements Cloneable{\n    private String id; \/\/\u7f16\u53f7\n    private String username; \/\/\u7528\u6237\u540d\n    private String password; \/\/\u5bc6\u7801\n    private double[] scores; \/\/\u5206\u6570\n\n    \/\/public User(int i, String zhangsan, String wo666, double[] scores) {\n   \/\/ }\n\n    public User(String id, String username, String password, double[] scores) {\n        this.id = id;\n        this.username = username;\n        this.password = password;\n        this.scores = scores;\n    }\n\n    public User(int i, String zhangsan, String wo666, double[] scores) {\n\n    }\n\n    public String getId() {\n        return id;\n    }\n\n    public String getUsername() {\n        return username;\n    }\n\n    public String getPassword() {\n        return password;\n    }\n\n    public double[] getScores() {\n        return scores;\n    }\n\n    @Override\n    protected Object clone() throws CloneNotSupportedException {\n        return super.clone();\n    }\n}<\/code><\/pre>\n<p>\u5199\u4e00\u4e2a\u6d4b\u8bd5\u7c7b\uff0c\u514b\u9686User\u7c7b\u7684\u5bf9\u8c61<\/p>\n<pre><code class=\"language-java\">public class Test {\n    public static void main(String[] args) throws CloneNotSupportedException {\n        User u1 = new User(1,&quot;zhangsan&quot;,&quot;wo666&quot;,new double[]{99.0,99.5});\n        \/\/\u8c03\u7528\u65b9\u6cd5\u514b\u9686\u5f97\u5230\u4e00\u4e2a\u65b0\u5bf9\u8c61\n        User u2 = (User) u1.clone();\n        System.out.println(u2.getId());\n        System.out.println(u2.getUsername());\n        System.out.println(u2.getPassword());\n        System.out.println(u2.getScores()); \n    }\n}<\/code><\/pre>\n<h3>10.2  Objects\u7c7b<\/h3>\n<p>Objects\u662f\u4e00\u4e2a\u5de5\u5177\u7c7b\uff0c\u63d0\u4f9b\u4e86\u4e00\u4e9b\u65b9\u6cd5\u53ef\u4ee5\u5bf9\u4efb\u610f\u5bf9\u8c61\u8fdb\u884c\u64cd\u4f5c\u3002\u4e3b\u8981\u65b9\u6cd5\u5982\u4e0b<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214134524814.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214134524814.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231214134524814\" \/><\/div><\/p>\n<pre><code class=\"language-java\">public class Test{\n    public static void main(String[] args){\n        String s1 = null;\n        String s2 = &quot;itheima&quot;;\n\n        \/\/\u8fd9\u91cc\u4f1a\u51fa\u73b0NullPointerException\u5f02\u5e38\uff0c\u8c03\u7528\u8005\u4e0d\u80fd\u4e3anull\n        System.out.println(s1.equals(s2));\n        \/\/\u6b64\u65f6\u4e0d\u4f1a\u6709NullPointerException\u5f02\u5e38\uff0c\u5e95\u5c42\u4f1a\u81ea\u52a8\u5148\u5224\u65ad\u7a7a\n        System.out.println(Objects.equals(s1,s2));\n\n        \/\/\u5224\u65ad\u5bf9\u8c61\u662f\u5426\u4e3anull\uff0c\u7b49\u4ef7\u4e8e==\n        System.out.println(Objects.isNull(s1)); \/\/true\n        System.out.println(s1==null); \/\/true\n\n        \/\/\u5224\u65ad\u5bf9\u8c61\u662f\u5426\u4e0d\u4e3anull\uff0c\u7b49\u4ef7\u4e8e!=\n        System.out.println(Objects.nonNull(s2)); \/\/true\n        System.out.println(s2!=null); \/\/true\n    }\n\n}\n<\/code><\/pre>\n<h3>10.3 \u57fa\u672c\u7c7b\u578b\u5305\u88c5\u7c7b<\/h3>\n<p>Java\u4e2d8\u79cd\u57fa\u672c\u6570\u636e\u7c7b\u578b\u90fd\u7528\u4e00\u4e2a\u5305\u88c5\u7c7b\u4e0e\u4e4b\u5bf9\u4e00\u4e2a\uff0c\u5982\u4e0b\u56fe\u6240\u793a<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214135153558.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214135153558.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231214135153558\" \/><\/div><\/p>\n<p>\u6211\u4eec\u5b66\u4e60\u5305\u88c5\u7c7b\uff0c\u4e3b\u8981\u5b66\u4e60\u4e24\u70b9\uff1a<\/p>\n<ol>\n<li>\n<p>\u521b\u5efa\u5305\u88c5\u7c7b\u7684\u5bf9\u8c61\u65b9\u5f0f\u3001\u81ea\u52a8\u88c5\u7bb1\u548c\u62c6\u7bb1\u7684\u7279\u6027\uff1b<\/p>\n<\/li>\n<li>\n<p>\u5229\u7528\u5305\u88c5\u7c7b\u63d0\u4f9b\u7684\u65b9\u6cd5\u5bf9\u5b57\u7b26\u4e32\u548c\u57fa\u672c\u7c7b\u578b\u6570\u636e\u8fdb\u884c\u76f8\u4e92\u8f6c\u6362<\/p>\n<\/li>\n<\/ol>\n<h4>10.3.1 \u521b\u5efa\u5305\u88c5\u7c7b\u5bf9\u8c61<\/h4>\n<p>\u521b\u5efa\u5305\u88c5\u7c7b\u5bf9\u8c61\u7684\u65b9\u6cd5\uff0c\u4ee5\u53ca\u5305\u88c5\u7c7b\u7684\u4e00\u4e2a\u7279\u6027\u53eb\u81ea\u52a8\u88c5\u7bb1\u548c\u81ea\u52a8\u62c6\u7bb1\u3002\u6211\u4eec\u4ee5Integer\u4e3a\u4f8b<\/p>\n<pre><code class=\"language-java\">\/\/1.\u521b\u5efaInteger\u5bf9\u8c61\uff0c\u5c01\u88c5\u57fa\u672c\u7c7b\u578b\u6570\u636e10\nInteger a = new Integer(10);\n\n\/\/2.\u4f7f\u7528Integer\u7c7b\u7684\u9759\u6001\u65b9\u6cd5valueOf(\u6570\u636e)\nInteger b = Integer.valueOf(10);\n\n\/\/3.\u8fd8\u6709\u4e00\u79cd\u81ea\u52a8\u88c5\u7bb1\u7684\u5199\u6cd5\uff08\u610f\u601d\u5c31\u662f\u81ea\u52a8\u5c06\u57fa\u672c\u7c7b\u578b\u8f6c\u6362\u4e3a\u5f15\u7528\u7c7b\u578b\uff09\nInteger c = 10;\n\n\/\/4.\u6709\u88c5\u7bb1\u80af\u5b9a\u8fd8\u6709\u62c6\u7bb1\uff08\u610f\u601d\u5c31\u662f\u81ea\u52a8\u5c06\u5f15\u7528\u7c7b\u578b\u8f6c\u6362\u4e3a\u57fa\u672c\u7c7b\u578b\uff09\nint d = c;\n\n\/\/5.\u88c5\u7bb1\u548c\u62c6\u7bb1\u5728\u4f7f\u7528\u96c6\u5408\u65f6\u5c31\u6709\u4f53\u73b0\nArrayList&lt;Integer&gt; list = new ArrayList&lt;&gt;();\n\/\/\u6dfb\u52a0\u7684\u5143\u7d20\u662f\u57fa\u672c\u7c7b\u578b\uff0c\u5b9e\u9645\u4e0a\u4f1a\u81ea\u52a8\u88c5\u7bb1\u4e3aInteger\u7c7b\u578b\nlist.add(100);\n\/\/\u83b7\u53d6\u5143\u7d20\u65f6\uff0c\u4f1a\u5c06Integer\u7c7b\u578b\u81ea\u52a8\u62c6\u7bb1\u4e3aint\u7c7b\u578b\nint e = list.get(0);<\/code><\/pre>\n<h4>10.3.2 \u5305\u88c5\u7c7b\u6570\u636e\u7c7b\u578b\u8f6c\u6362<\/h4>\n<p>\u5728\u5f00\u53d1\u4e2d\uff0c\u7ecf\u5e38\u4f7f\u7528\u5305\u88c5\u7c7b\u5bf9\u5b57\u7b26\u4e32\u548c\u57fa\u672c\u7c7b\u578b\u6570\u636e\u8fdb\u884c\u76f8\u4e92\u8f6c\u6362\u3002<\/p>\n<p>\u628a\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3a\u6570\u503c\u578b\u6570\u636e\uff1a\u5305\u88c5\u7c7b.parseXxx(\u5b57\u7b26\u4e32)<\/p>\n<pre><code class=\"language-java\">public static int parseInt(String s)\n    \/\/\u628a\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3a\u57fa\u672c\u6570\u636e\u7c7b\u578b<\/code><\/pre>\n<p>\u5c06\u6570\u503c\u578b\u6570\u636e\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32\uff1a\u5305\u88c5\u7c7b.valueOf(\u6570\u636e);<\/p>\n<pre><code class=\"language-java\">public static String valueOf(int a)\n    \/\/\u628a\u57fa\u672c\u7c7b\u578b\u6570\u636e\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32<\/code><\/pre>\n<p>\u5199\u4e00\u4e2a\u6d4b\u8bd5\u7c7b\u6f14\u793a\u4e00\u4e0b<\/p>\n<pre><code class=\"language-java\">\/\/1.\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3a\u6570\u503c\u578b\u6570\u636e\nString ageStr = &quot;29&quot;;\nint age1 = Integer.parseInt(ageStr);\n\nString scoreStr = 3.14;\ndouble score = Double.prarseDouble(scoreStr);\n\n\/\/2.\u6574\u6570\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32\uff0c\u4ee5\u4e0b\u51e0\u79cd\u65b9\u5f0f\u90fd\u53ef\u4ee5\uff08\u6311\u4e2d\u4f60\u559c\u6b22\u7684\u8bb0\u4e00\u4e0b\uff09\nInteger a = 23;\nString s1 = Integer.toString(a);\nString s2 = a.toString();\nString s3 = a+&quot;&quot;;\nString s4 = String.valueOf(a);<\/code><\/pre>\n<h3>10.4 StringBuilder\u7c7b<\/h3>\n<p>StringBuilder\u4ee3\u8868\u53ef\u53d8\u5b57\u7b26\u4e32\u5bf9\u8c61\uff0c\u76f8\u5f53\u4e8e\u662f\u4e00\u4e2a\u5bb9\u5668\uff0c\u5b83\u91cc\u9762\u7684\u5b57\u7b26\u4e32\u662f\u53ef\u4ee5\u6539\u53d8\u7684\uff0c\u5c31\u662f\u7528\u6765\u64cd\u4f5c\u5b57\u7b26\u4e32\u7684\u3002<\/p>\n<p>\u597d\u5904\uff1aStringBuilder\u6bd4String\u66f4\u5408\u9002\u505a\u5b57\u7b26\u4e32\u7684\u4fee\u6539\u64cd\u4f5c\uff0c\u6548\u7387\u66f4\u9ad8\uff0c\u4ee3\u7801\u4e5f\u66f4\u52a0\u7b80\u6d01\u3002<\/p>\n<h4>10.4.1 StringBuilder\u65b9\u6cd5\u6f14\u793a<\/h4>\n<pre><code class=\"language-java\">public class Test{\n    public static void main(String[] args){\n        StringBuilder sb = new StringBuilder(&quot;itehima&quot;);\n        \/\/1.\u62fc\u63a5\u5185\u5bb9\n        sb.append(12);\n        sb.append(&quot;\u9ed1\u9a6c&quot;);\n        sb.append(true);\n\n        \/\/2.append\u65b9\u6cd5\uff0c\u652f\u6301\u4e34\u65f6\u7f16\u7a0b\n        sb.append(666).append(&quot;\u9ed1\u9a6c2&quot;).append(666);\n        System.out.println(sb); \/\/\u6253\u5370\uff1a12\u9ed1\u9a6c666\u9ed1\u9a6c2666\n\n        \/\/3.\u53cd\u8f6c\u64cd\u4f5c\n        sb.reverse();\n        System.out.println(sb); \/\/\u6253\u5370\uff1a6662\u9a6c\u9ed1666\u9a6c\u9ed121\n\n        \/\/4.\u8fd4\u56de\u5b57\u7b26\u4e32\u7684\u957f\u5ea6\n        System.out.println(sb.length());\n\n        \/\/5.StringBuilder\u8fd8\u53ef\u4ee5\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32\n        String s = sb.toString();\n        System.out.println(s); \/\/\u6253\u5370\uff1a6662\u9a6c\u9ed1666\u9a6c\u9ed121\n    }\n\n}<\/code><\/pre>\n<p>StringBuilder\u6bd4String\u6548\u7387\u66f4\u9ad8\u3002<\/p>\n<h4>10.4.2 StringBuilder\u5e94\u7528\u6848\u4f8b<\/h4>\n<pre><code class=\"language-java\">public class Test{\n    public static void main(String[] args){\n        String str = getArrayData( new int[]{11,22,33});\n        System.out.println(str);\n    }\n\n    \/\/\u65b9\u6cd5\u4f5c\u7528\uff1a\u5c06int\u6570\u7ec4\u8f6c\u6362\u4e3a\u6307\u5b9a\u683c\u5f0f\u7684\u5b57\u7b26\u4e32\n    public static String getArrayData(int[] arr){\n        \/\/1.\u5224\u65ad\u6570\u7ec4\u662f\u5426\u4e3anull\n        if(arr==null){\n            return null;\n        }\n        \/\/2.\u5982\u679c\u6570\u7ec4\u4e0d\u4e3anull\uff0c\u518d\u904d\u5386\uff0c\u5e76\u62fc\u63a5\u6570\u7ec4\u4e2d\u7684\u5143\u7d20\n        StringBuilder sb = new StringBuilder(&quot;[&quot;);\n        for(int i=0; i&lt;arr.length; i++){\n            if(i==arr.legnth-1){\n                sb.append(arr[i]).append(&quot;]&quot;);;\n            }else{\n                sb.append(arr[i]).append(&quot;,&quot;);\n            }\n        }\n        \/\/3\u3001\u628aStirngBuilder\u8f6c\u6362\u4e3aString\uff0c\u5e76\u8fd4\u56de\u3002\n        return sb.toString();\n    }\n\n}<\/code><\/pre>\n<h3>10.5 StringJoiner\u7c7b<\/h3>\n<p>StringJoiner\u53f7\u79f0\u662f\u62fc\u63a5\u795e\u5668\uff0c\u4e0d\u4ec5\u6548\u7387\u9ad8\uff0c\u800c\u4e14\u4ee3\u7801\u7b80\u6d01<\/p>\n<pre><code class=\"language-java\">public class Test{\n    public static void main(String[] args){\n        StringJoiner s = new StringJoiner(&quot;,&quot;);\n        s.add(&quot;java1&quot;);\n        s.add(&quot;java2&quot;);\n        s.add(&quot;java3&quot;);\n        System.out.println(s); \/\/\u7ed3\u679c\u4e3a\uff1a java1,java2,java3\n        \/\/\u53c2\u65701\uff1a\u95f4\u9694\u7b26\n        \/\/\u53c2\u65702\uff1a\u5f00\u5934\n        \/\/\u53c2\u65703\uff1a\u7ed3\u5c3e\n        StringJoiner s1 = new StringJoiner(&quot;,&quot;,&quot;[&quot;,&quot;]&quot;);\n        s1.add(&quot;java1&quot;);\n        s1.add(&quot;java2&quot;);\n        s1.add(&quot;java3&quot;);\n        System.out.println(s1); \/\/\u7ed3\u679c\u4e3a\uff1a [java1,java2,java3]\n    }\n}<\/code><\/pre>\n<p>\u4f7f\u7528StringJoiner\u6539\u5199\u524d\u9762\u628a\u6570\u7ec4\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32\u7684\u6848\u4f8b<\/p>\n<pre><code class=\"language-java\">public class Test{\n    public static void main(String[] args){\n        String str = getArrayData( new int[]{11,22,33});\n        System.out.println(str);\n    }\n\n    \/\/\u65b9\u6cd5\u4f5c\u7528\uff1a\u5c06int\u6570\u7ec4\u8f6c\u6362\u4e3a\u6307\u5b9a\u683c\u5f0f\u7684\u5b57\u7b26\u4e32\n    public static String getArrayData(int[] arr){\n        \/\/1.\u5224\u65ad\u6570\u7ec4\u662f\u5426\u4e3anull\n        if(arr==null){\n            return null;\n        }\n        \/\/2.\u5982\u679c\u6570\u7ec4\u4e0d\u4e3anull\uff0c\u518d\u904d\u5386\uff0c\u5e76\u62fc\u63a5\u6570\u7ec4\u4e2d\u7684\u5143\u7d20\n        StringJoiner s = new StringJoiner(&quot;, &quot;,&quot;[&quot;,&quot;]&quot;);\n        for(int i=0; i&lt;arr.length; i++){\n            \/\/\u52a0&quot;&quot;\u662f\u56e0\u4e3aadd\u65b9\u6cd5\u7684\u53c2\u6570\u8981\u7684\u662fString\u7c7b\u578b\n            s.add(String.valueOf(arr[i]));\n        }\n        \/\/3\u3001\u628aStringJoiner\u8f6c\u6362\u4e3aString\uff0c\u5e76\u8fd4\u56de\u3002\n        return s.toString();\n    }\n\n}<\/code><\/pre>\n<h3>10.6 Math\u7c7b<\/h3>\n<p>\u8be5\u7c7b\u63d0\u4f9b\u4e86\u5f88\u591a\u4e2a\u8fdb\u884c\u6570\u5b66\u8fd0\u7b97\u7684\u65b9\u6cd5\uff0c\u5982\u6c42\u7edd\u5bf9\u503c\uff0c\u6c42\u6700\u5927\u503c\uff0c\u56db\u820d\u4e94\u5165\u7b49<\/p>\n<pre><code class=\"language-java\">public class MathTest {\n    public static void main(String[] args) {\n        \/\/ \u76ee\u6807\uff1a\u4e86\u89e3\u4e0bMath\u7c7b\u63d0\u4f9b\u7684\u5e38\u89c1\u65b9\u6cd5\u3002\n        \/\/ 1\u3001public static int abs(int a)\uff1a\u53d6\u7edd\u5bf9\u503c\uff08\u62ff\u5230\u7684\u7ed3\u679c\u4e00\u5b9a\u662f\u6b63\u6570\uff09\n        \/\/    public static double abs(double a)\n        System.out.println(Math.abs(-12)); \/\/ 12\n        System.out.println(Math.abs(123)); \/\/ 123\n        System.out.println(Math.abs(-3.14)); \/\/ 3.14\n\n        \/\/ 2\u3001public static double ceil(double a): \u5411\u4e0a\u53d6\u6574\n        System.out.println(Math.ceil(4.0000001)); \/\/ 5.0\n        System.out.println(Math.ceil(4.0)); \/\/ 4.0\n\n        \/\/ 3\u3001public static double floor(double a): \u5411\u4e0b\u53d6\u6574\n        System.out.println(Math.floor(4.999999)); \/\/ 4.0\n        System.out.println(Math.floor(4.0)); \/\/ 4.0\n\n        \/\/ 4\u3001public static long round(double a)\uff1a\u56db\u820d\u4e94\u5165\n        System.out.println(Math.round(3.4999)); \/\/ 3\n        System.out.println(Math.round(3.50001)); \/\/ 4\n\n        \/\/ 5\u3001public static int max(int a, int b)\uff1a\u53d6\u8f83\u5927\u503c\n        \/\/   public static int min(int a, int b)\uff1a\u53d6\u8f83\u5c0f\u503c\n        System.out.println(Math.max(10, 20)); \/\/ 20\n        System.out.println(Math.min(10, 20)); \/\/ 10\n\n        \/\/ 6\u3001 public static double pow(double a, double b)\uff1a\u53d6\u6b21\u65b9\n        System.out.println(Math.pow(2, 3)); \/\/ 2\u76843\u6b21\u65b9   8.0\n        System.out.println(Math.pow(3, 2)); \/\/ 3\u76842\u6b21\u65b9   9.0\n\n        \/\/ 7\u3001public static double random()\uff1a \u53d6\u968f\u673a\u6570 [0.0 , 1.0) (\u5305\u524d\u4e0d\u5305\u540e)\n        System.out.println(Math.random());\n    }\n\n}<\/code><\/pre>\n<h3>10.7 System\u7c7b<\/h3>\n<p>\u8fd9\u662f\u7cfb\u7edf\u7c7b\uff0c\u63d0\u4f9b\u4e86\u4e00\u4e9b\u83b7\u53d6\u83b7\u53d6\u7cfb\u7edf\u6570\u636e\u7684\u65b9\u6cd5\u3002\u6bd4\u5982\u83b7\u53d6\u7cfb\u7edf\u65f6\u95f4<\/p>\n<ul>\n<li>\n<pre><code class=\"language-java\">\/**\n\n* \u76ee\u6807\uff1a\u4e86\u89e3\u4e0bSystem\u7c7b\u7684\u5e38\u89c1\u65b9\u6cd5\u3002\n*\/\n  public class SystemTest {\n  public static void main(String[] args) {\n\n      \/\/ 1\u3001public static void exit(int status):\n   \/\/   \u7ec8\u6b62\u5f53\u524d\u8fd0\u884c\u7684Java\u865a\u62df\u673a\u3002\n      \/\/   \u8be5\u53c2\u6570\u7528\u4f5c\u72b6\u6001\u4ee3\u7801; \u6309\u7167\u60ef\u4f8b\uff0c\u975e\u96f6\u72b6\u6001\u4ee3\u7801\u8868\u793a\u5f02\u5e38\u7ec8\u6b62\u3002\n      System.exit(0); \/\/ \u4eba\u4e3a\u7684\u7ec8\u6b62\u865a\u62df\u673a\u3002(\u4e0d\u8981\u4f7f\u7528)\n\n      \/\/ 2\u3001public static long currentTimeMillis():\n      \/\/    \u83b7\u53d6\u5f53\u524d\u7cfb\u7edf\u7684\u65f6\u95f4\n   \/\/    \u8fd4\u56de\u7684\u662flong\u7c7b\u578b\u7684\u65f6\u95f4\u6beb\u79d2\u503c\uff1a\u6307\u7684\u662f\u4ece1970-1-1 0:0:0\u5f00\u59cb\u8d70\u5230\u6b64\u523b\u7684\u603b\u7684\u6beb\u79d2\u503c\uff0c1s = 1000ms\n      long time = System.currentTimeMillis();\n      System.out.println(time);\n\n   for (int i = 0; i < 1000000; i++) {\n          System.out.println(\"\u8f93\u51fa\u4e86\uff1a\" + i);\n      }\n\n   long time2 = System.currentTimeMillis();\n   System.out.println((time2 - time) \/ 1000.0 + \"s\");\n\n}\n}<\/code><\/pre>\n<pre><code>\n### 10.8 Runtime\u7c7b<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>\u8fd9\u4e2a\u7c7b\u53ef\u4ee5\u7528\u6765\u83b7\u53d6JVM\u7684\u4e00\u4e9b\u4fe1\u606f\uff0c\u4e5f\u53ef\u4ee5\u7528\u8fd9\u4e2a\u7c7b\u53bb\u6267\u884c\u5176\u4ed6\u7684\u7a0b\u5e8f\u3002<\/p>\n<ul>\n<li>\n<pre><code class=\"language-java\">\/**\n\n * \u76ee\u6807\uff1a\u4e86\u89e3\u4e0bRuntime\u7684\u51e0\u4e2a\u5e38\u89c1\u65b9\u6cd5\u3002\n*\/\n   public class RuntimeTest {\n   public static void main(String[] args) throws IOException, InterruptedException {\n\n       \/\/ 1\u3001public static Runtime getRuntime() \u8fd4\u56de\u4e0e\u5f53\u524dJava\u5e94\u7528\u7a0b\u5e8f\u5173\u8054\u7684\u8fd0\u884c\u65f6\u5bf9\u8c61\u3002\n       Runtime r = Runtime.getRuntime();\n\n       \/\/ 2\u3001public void exit(int status) \u7ec8\u6b62\u5f53\u524d\u8fd0\u884c\u7684\u865a\u62df\u673a,\u8be5\u53c2\u6570\u7528\u4f5c\u72b6\u6001\u4ee3\u7801; \u6309\u7167\u60ef\u4f8b\uff0c\u975e\u96f6\u72b6\u6001\u4ee3\u7801\u8868\u793a\u5f02\u5e38\u7ec8\u6b62\u3002\n       \/\/ r.exit(0);\n\n       \/\/ 3\u3001public int availableProcessors(): \u83b7\u53d6\u865a\u62df\u673a\u80fd\u591f\u4f7f\u7528\u7684\u5904\u7406\u5668\u6570\u3002\n       System.out.println(r.availableProcessors());\n\n       \/\/ 4\u3001public long totalMemory() \u8fd4\u56deJava\u865a\u62df\u673a\u4e2d\u7684\u5185\u5b58\u603b\u91cf\u3002\n       System.out.println(r.totalMemory()\/1024.0\/1024.0 + \"MB\"); \/\/ 1024 = 1K     1024 * 1024 = 1M\n\n       \/\/ 5\u3001public long freeMemory() \u8fd4\u56deJava\u865a\u62df\u673a\u4e2d\u7684\u53ef\u7528\u5185\u5b58\u91cf\n       System.out.println(r.freeMemory()\/1024.0\/1024.0 + \"MB\");\n\n       \/\/ 6\u3001public Process exec(String command) \u542f\u52a8\u67d0\u4e2a\u7a0b\u5e8f\uff0c\u5e76\u8fd4\u56de\u4ee3\u8868\u8be5\u7a0b\u5e8f\u7684\u5bf9\u8c61\u3002\n       \/\/ r.exec(\"D:\\\\soft\\\\XMind\\\\XMind.exe\");\n       Process p = r.exec(\"QQ\");\n    Thread.sleep(5000); \/\/ \u8ba9\u7a0b\u5e8f\u5728\u8fd9\u91cc\u6682\u505c5s\u540e\u7ee7\u7eed\u5f80\u4e0b\u8d70\uff01\uff01\n    p.destroy(); \/\/ \u9500\u6bc1\uff01\u5173\u95ed\u7a0b\u5e8f\uff01\n\n}\n}<\/code><\/pre>\n<\/li>\n<\/ul>\n<h3>10.9 BigDecimal\u7c7b<\/h3>\n<p>\u4e3a\u4e86\u89e3\u51b3\u8ba1\u7b97\u7cbe\u5ea6\u635f\u5931\u7684\u95ee\u9898\uff0cJava\u7ed9\u6211\u4eec\u63d0\u4f9b\u4e86BigDecimal\u7c7b\uff0c\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e9b\u65b9\u6cd5\u53ef\u4ee5\u5bf9\u6570\u636e\u8fdb\u884c\u56db\u5219\u8fd0\u7b97\uff0c\u800c\u4e14\u4e0d\u4e22\u5931\u7cbe\u5ea6\uff0c\u540c\u65f6\u8fd8\u53ef\u4ee5\u4fdd\u7559\u6307\u5b9a\u7684\u5c0f\u6570\u4f4d<\/p>\n<pre><code class=\"language-java\">public class Test {\n    public static void main(String[] args) {\n        System.out.println(0.1 + 0.2);\n        System.out.println(1.0 - 0.32);\n        System.out.println(1.015 * 100);\n        System.out.println(1.301 \/ 100);\n    }\n}<\/code><\/pre>\n<pre><code class=\"language-java\">public class Test2 {\n    public static void main(String[] args) {\n        \/\/ \u76ee\u6807\uff1a\u638c\u63e1BigDecimal\u8fdb\u884c\u7cbe\u786e\u8fd0\u7b97\u7684\u65b9\u6848\u3002\n        double a = 0.1;\n        double b = 0.2;\n\n        \/\/ 1\u3001\u628a\u6d6e\u70b9\u578b\u6570\u636e\u5c01\u88c5\u6210BigDecimal\u5bf9\u8c61\uff0c\u518d\u6765\u53c2\u4e0e\u8fd0\u7b97\u3002\n        \/\/ a\u3001public BigDecimal(double val) \u5f97\u5230\u7684BigDecimal\u5bf9\u8c61\u662f\u65e0\u6cd5\u7cbe\u786e\u8ba1\u7b97\u6d6e\u70b9\u578b\u6570\u636e\u7684\u3002 \u6ce8\u610f\uff1a\u4e0d\u63a8\u8350\u4f7f\u7528\u8fd9\u4e2a\uff0c\n        \/\/ b\u3001public BigDecimal(String val)  \u5f97\u5230\u7684BigDecimal\u5bf9\u8c61\u662f\u53ef\u4ee5\u7cbe\u786e\u8ba1\u7b97\u6d6e\u70b9\u578b\u6570\u636e\u7684\u3002 \u53ef\u4ee5\u4f7f\u7528\u3002\n        \/\/ c\u3001public static BigDecimal valueOf(double val): \u901a\u8fc7\u8fd9\u4e2a\u9759\u6001\u65b9\u6cd5\u5f97\u5230\u7684BigDecimal\u5bf9\u8c61\u662f\u53ef\u4ee5\u7cbe\u786e\u8fd0\u7b97\u7684\u3002\u662f\u6700\u597d\u7684\u65b9\u6848\u3002\n        BigDecimal a1 = BigDecimal.valueOf(a);\n        BigDecimal b1 = BigDecimal.valueOf(b);\n\n        \/\/ 2\u3001public BigDecimal add(BigDecimal augend): \u52a0\u6cd5\n        BigDecimal c1 = a1.add(b1);\n        System.out.println(c1);\n\n        \/\/ 3\u3001public BigDecimal subtract(BigDecimal augend): \u51cf\u6cd5\n        BigDecimal c2 = a1.subtract(b1);\n        System.out.println(c2);\n\n        \/\/ 4\u3001public BigDecimal multiply(BigDecimal augend): \u4e58\u6cd5\n        BigDecimal c3 = a1.multiply(b1);\n        System.out.println(c3);\n\n        \/\/ 5\u3001public BigDecimal divide(BigDecimal b): \u9664\u6cd5\n        BigDecimal c4 = a1.divide(b1);\n        System.out.println(c4);\n\n\/\/        BigDecimal d1 = BigDecimal.valueOf(0.1);\n\/\/        BigDecimal d2 = BigDecimal.valueOf(0.3);\n\/\/        BigDecimal d3 = d1.divide(d2);\n\/\/        System.out.println(d3);\n\n        \/\/ 6\u3001public BigDecimal divide(\u53e6\u4e00\u4e2aBigDecimal\u5bf9\u8c61\uff0c\u7cbe\u786e\u51e0\u4f4d\uff0c\u820d\u5165\u6a21\u5f0f) : \u9664\u6cd5\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u7cbe\u786e\u51e0\u4f4d\u3002\n        BigDecimal d1 = BigDecimal.valueOf(0.1);\n        BigDecimal d2 = BigDecimal.valueOf(0.3);\n        BigDecimal d3 = d1.divide(d2,  2, RoundingMode.HALF_UP); \/\/ 0.33\n        System.out.println(d3);\n\n        \/\/ 7\u3001public double doubleValue() : \u628aBigDecimal\u5bf9\u8c61\u53c8\u8f6c\u6362\u6210double\u7c7b\u578b\u7684\u6570\u636e\u3002\n        \/\/print(d3);\n        \/\/print(c1);\n        double db1 = d3.doubleValue();\n        double db2 = c1.doubleValue();\n        print(db1);\n        print(db2);\n    }\n\n    public static void print(double a){\n        System.out.println(a);\n    }\n\n}<\/code><\/pre>\n<h3>10.10 Date\u7c7b<\/h3>\n<p>Java\u4e2d\u662f\u7531Date\u7c7b\u7684\u5bf9\u8c61\u7528\u6765\u8868\u793a\u65e5\u671f\u6216\u8005\u65f6\u95f4\u3002<\/p>\n<p>Date\u5bf9\u8c61\u8bb0\u5f55\u7684\u65f6\u95f4\u662f\u7528\u6beb\u79d2\u503c\u6765\u8868\u793a\u7684\u3002Java\u8bed\u8a00\u89c4\u5b9a\uff0c1970\u5e741\u67081\u65e50\u65f60\u52060\u79d2\u8ba4\u4e3a\u662f\u65f6\u95f4\u7684\u8d77\u70b9\uff0c\u6b64\u65f6\u8bb0\u4f5c0\uff0c\u90a3\u4e481000\uff081\u79d2=1000\u6beb\u79d2\uff09\u5c31\u8868\u793a1970\u5e741\u67081\u65e50\u65f60\u52061\u79d2<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214154323956.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214154323956.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231214154323956\" \/><\/div><\/p>\n<pre><code class=\"language-java\">public class Test1Date {\n    public static void main(String[] args) {\n        \/\/ \u76ee\u6807\uff1a\u638c\u63e1Date\u65e5\u671f\u7c7b\u7684\u4f7f\u7528\u3002\n        \/\/ 1\u3001\u521b\u5efa\u4e00\u4e2aDate\u7684\u5bf9\u8c61\uff1a\u4ee3\u8868\u7cfb\u7edf\u5f53\u524d\u65f6\u95f4\u4fe1\u606f\u7684\u3002\n        Date d = new Date();\n        System.out.println(d);\n\n        \/\/ 2\u3001\u62ff\u5230\u65f6\u95f4\u6beb\u79d2\u503c\u3002\n        long time = d.getTime();\n        System.out.println(time);\n\n        \/\/ 3\u3001\u628a\u65f6\u95f4\u6beb\u79d2\u503c\u8f6c\u6362\u6210\u65e5\u671f\u5bf9\u8c61\uff1a 2s\u4e4b\u540e\u7684\u65f6\u95f4\u662f\u591a\u5c11\u3002\n        time += 2 * 1000;\n        Date d2 = new Date(time);\n        System.out.println(d2);\n\n        \/\/ 4\u3001\u76f4\u63a5\u628a\u65e5\u671f\u5bf9\u8c61\u7684\u65f6\u95f4\u901a\u8fc7setTime\u65b9\u6cd5\u8fdb\u884c\u4fee\u6539\n        Date d3 = new Date();\n        d3.setTime(time);\n        System.out.println(d3);\n    }\n\n}<\/code><\/pre>\n<h3>10.11 SimpleDateFormat\u7c7b<\/h3>\n<p>\u6211\u4eec\u628aDate\u5bf9\u8c61\u8f6c\u6362\u4e3a\u6307\u5b9a\u683c\u5f0f\u7684\u65e5\u671f\u5b57\u7b26\u4e32\u8fd9\u4e2a\u64cd\u4f5c\uff0c\u53eb\u505a<strong>\u65e5\u671f\u683c\u5f0f\u5316\uff0c<\/strong><\/p>\n<p>\u53cd\u8fc7\u6765\u628a\u6307\u5b9a\u683c\u5f0f\u7684\u65e5\u671f\u7b26\u4e32\u8f6c\u6362\u4e3aDate\u5bf9\u8c61\u7684\u64cd\u4f5c\uff0c\u53eb\u505a<strong>\u65e5\u671f\u89e3\u6790\u3002<\/strong><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214154629100.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214154629100.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231214154629100\" \/><\/div><\/p>\n<p>\u8bb0\u4f4f\u5e38\u7528\u7684\u51e0\u79cd\u65e5\u671f\/\u65f6\u95f4\u683c\u5f0f<\/p>\n<pre><code class=\"language-java\">\u5b57\u6bcd     \u8868\u793a\u542b\u4e49\nyyyy    \u5e74\nMM      \u6708\ndd      \u65e5\nHH      \u65f6\nmm      \u5206\nss      \u79d2\nSSS     \u6beb\u79d2\n\n&quot;2022\u5e7412\u670812\u65e5&quot; \u7684\u683c\u5f0f\u662f &quot;yyyy\u5e74MM\u6708dd\u65e5&quot;\n&quot;2022-12-12 12:12:12&quot; \u7684\u683c\u5f0f\u662f &quot;yyyy-MM-dd HH:mm:ss&quot;\n\u6309\u7167\u4e0a\u9762\u7684\u683c\u5f0f\u53ef\u4ee5\u4efb\u610f\u62fc\u63a5\uff0c\u4f46\u662f\u5b57\u6bcd\u4e0d\u80fd\u5199\u9519<\/code><\/pre>\n<pre><code class=\"language-java\">public class Test2SimpleDateFormat {\n    public static void main(String[] args) throws ParseException {\n        \/\/ \u76ee\u6807\uff1a\u638c\u63e1SimpleDateFormat\u7684\u4f7f\u7528\u3002\n        \/\/ 1\u3001\u51c6\u5907\u4e00\u4e9b\u65f6\u95f4\n        Date d = new Date();\n        System.out.println(d);\n\n        long time = d.getTime();\n        System.out.println(time);\n\n        \/\/ 2\u3001\u683c\u5f0f\u5316\u65e5\u671f\u5bf9\u8c61\uff0c\u548c\u65f6\u95f4 \u6beb\u79d2\u503c\u3002\n        SimpleDateFormat sdf = new SimpleDateFormat(&quot;yyyy\u5e74MM\u6708dd\u65e5 HH:mm:ss EEE a&quot;);\n\n        String rs = sdf.format(d);\n        String rs2 = sdf.format(time);\n        System.out.println(rs);\n        System.out.println(rs2);\n        System.out.println(&quot;----------------------------------------------&quot;);\n\n        \/\/ \u76ee\u6807\uff1a\u638c\u63e1SimpleDateFormat\u89e3\u6790\u5b57\u7b26\u4e32\u65f6\u95f4 \u6210\u4e3a\u65e5\u671f\u5bf9\u8c61\u3002\n        String dateStr = &quot;2022-12-12 12:12:11&quot;;\n        \/\/ 1\u3001\u521b\u5efa\u7b80\u5355\u65e5\u671f\u683c\u5f0f\u5316\u5bf9\u8c61 , \u6307\u5b9a\u7684\u65f6\u95f4\u683c\u5f0f\u5fc5\u987b\u4e0e\u88ab\u89e3\u6790\u7684\u65f6\u95f4\u683c\u5f0f\u4e00\u6a21\u4e00\u6837\uff0c\u5426\u5219\u7a0b\u5e8f\u4f1a\u51fabug.\n        SimpleDateFormat sdf2 = new SimpleDateFormat(&quot;yyyy-MM-dd HH:mm:ss&quot;);\n        Date d2 = sdf2.parse(dateStr);\n        System.out.println(d2);\n    }\n\n}<\/code><\/pre>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214160419330.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214160419330.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231214160419330\" \/><\/div><\/p>\n<pre><code class=\"language-java\">public class Test3 {\n    public static void main(String[] args) throws ParseException {\n        \/\/ \u76ee\u6807\uff1a\u5b8c\u6210\u79d2\u6740\u6848\u4f8b\u3002\n        \/\/ 1\u3001\u628a\u5f00\u59cb\u65f6\u95f4\u3001\u7ed3\u675f\u65f6\u95f4\u3001\u5c0f\u8d3e\u4e0b\u5355\u65f6\u95f4\u3001\u5c0f\u76ae\u4e0b\u5355\u65f6\u95f4\u62ff\u5230\u7a0b\u5e8f\u4e2d\u6765\u3002\n        String start = &quot;2023\u5e7411\u670811\u65e5 0:0:0&quot;;\n        String end = &quot;2023\u5e7411\u670811\u65e5 0:10:0&quot;;\n        String xj = &quot;2023\u5e7411\u670811\u65e5 0:01:18&quot;;\n        String xp = &quot;2023\u5e7411\u670811\u65e5 0:10:57&quot;;\n\n        \/\/ 2\u3001\u628a\u5b57\u7b26\u4e32\u7684\u65f6\u95f4\u89e3\u6790\u6210\u65e5\u671f\u5bf9\u8c61\u3002\n        SimpleDateFormat sdf = new SimpleDateFormat(&quot;yyyy\u5e74MM\u6708dd\u65e5 HH:mm:ss&quot;);\n        Date startDt = sdf.parse(start);\n        Date endDt = sdf.parse(end);\n        Date xjDt = sdf.parse(xj);\n        Date xpDt = sdf.parse(xp);\n\n        \/\/ 3\u3001\u5f00\u59cb\u5224\u65ad\u5c0f\u76ae\u548c\u5c0f\u8d3e\u662f\u5426\u79d2\u6740\u6210\u529f\u4e86\u3002\n        \/\/ \u628a\u65e5\u671f\u5bf9\u8c61\u8f6c\u6362\u6210\u65f6\u95f4\u6beb\u79d2\u503c\u6765\u5224\u65ad\n        long startTime = startDt.getTime();\n        long endTime = endDt.getTime();\n        long xjTime = xjDt.getTime();\n        long xpTime = xpDt.getTime();\n\n        if(xjTime &gt;= startTime &amp;&amp; xjTime &lt;= endTime){\n            System.out.println(&quot;\u5c0f\u8d3e\u60a8\u79d2\u6740\u6210\u529f\u4e86~~&quot;);\n        }else {\n            System.out.println(&quot;\u5c0f\u8d3e\u60a8\u79d2\u6740\u5931\u8d25\u4e86~~&quot;);\n        }\n\n        if(xpTime &gt;= startTime &amp;&amp; xpTime &lt;= endTime){\n            System.out.println(&quot;\u5c0f\u76ae\u60a8\u79d2\u6740\u6210\u529f\u4e86~~&quot;);\n        }else {\n            System.out.println(&quot;\u5c0f\u76ae\u60a8\u79d2\u6740\u5931\u8d25\u4e86~~&quot;);\n        }\n    }\n\n}<\/code><\/pre>\n<h3>10.12 Calendar\u7c7b<\/h3>\n<p>Calendar\u7c7b\u8868\u793a\u65e5\u5386\uff0c\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e9b\u6bd4Date\u7c7b\u66f4\u597d\u7528\u7684\u65b9\u6cd5\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214160742805.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214160742805.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231214160742805\" \/><\/div><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214160756985.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214160756985.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231214160756985\" \/><\/div><\/p>\n<pre><code class=\"language-java\">public class Test4Calendar {\n    public static void main(String[] args) {\n        \/\/ \u76ee\u6807\uff1a\u638c\u63e1Calendar\u7684\u4f7f\u7528\u548c\u7279\u70b9\u3002\n        \/\/ 1\u3001\u5f97\u5230\u7cfb\u7edf\u6b64\u523b\u65f6\u95f4\u5bf9\u5e94\u7684\u65e5\u5386\u5bf9\u8c61\u3002\n        Calendar now = Calendar.getInstance();\n        System.out.println(now);\n\n        \/\/ 2\u3001\u83b7\u53d6\u65e5\u5386\u4e2d\u7684\u67d0\u4e2a\u4fe1\u606f\n        int year = now.get(Calendar.YEAR);\n        System.out.println(year);\n\n        int days = now.get(Calendar.DAY_OF_YEAR);\n        System.out.println(days);\n\n        \/\/ 3\u3001\u62ff\u5230\u65e5\u5386\u4e2d\u8bb0\u5f55\u7684\u65e5\u671f\u5bf9\u8c61\u3002\n        Date d = now.getTime();\n        System.out.println(d);\n\n        \/\/ 4\u3001\u62ff\u5230\u65f6\u95f4\u6beb\u79d2\u503c\n        long time = now.getTimeInMillis();\n        System.out.println(time);\n\n        \/\/ 5\u3001\u4fee\u6539\u65e5\u5386\u4e2d\u7684\u67d0\u4e2a\u4fe1\u606f\n        now.set(Calendar.MONTH, 9); \/\/ \u4fee\u6539\u6708\u4efd\u6210\u4e3a10\u6708\u4efd\u3002\n        now.set(Calendar.DAY_OF_YEAR, 125); \/\/ \u4fee\u6539\u6210\u4e00\u5e74\u4e2d\u7684\u7b2c125\u5929\u3002\n        System.out.println(now);\n\n        \/\/ 6\u3001\u4e3a\u67d0\u4e2a\u4fe1\u606f\u589e\u52a0\u6216\u8005\u51cf\u5c11\u591a\u5c11\n        now.add(Calendar.DAY_OF_YEAR, 100);\n        now.add(Calendar.DAY_OF_YEAR, -10);\n        now.add(Calendar.DAY_OF_MONTH, 6);\n        now.add(Calendar.HOUR, 12);\n        now.set(2026, 11, 22);\n        System.out.println(now);\n    }\n\n}<\/code><\/pre>\n<h3>10.13 JDK8\u65e5\u671f\u7c7b<\/h3>\n<h4>10.13.1 \u4e3a\u4ec0\u4e48JDK8\u8981\u65b0\u589e\u65e5\u671f\u7c7b<\/h4>\n<pre><code class=\"language-java\">\/**\n\n\u76ee\u6807\uff1a\u641e\u6e05\u695a\u4e3a\u4ec0\u4e48\u8981\u7528JDK 8\u5f00\u59cb\u65b0\u589e\u7684\u65f6\u95f4\u7c7b\u3002\n*\/\npublic class Test {\npublic static void main(String[] args) {\n    \/\/ \u4f20\u7edf\u7684\u65f6\u95f4\u7c7b\uff08Date\u3001SimpleDateFormat\u3001Calendar\uff09\u5b58\u5728\u5982\u4e0b\u95ee\u9898\uff1a\n    \/\/ 1\u3001\u8bbe\u8ba1\u4e0d\u5408\u7406\uff0c\u4f7f\u7528\u4e0d\u65b9\u4fbf\uff0c\u5f88\u591a\u90fd\u88ab\u6dd8\u6c70\u4e86\u3002\n    Date d = new Date();\n    \/\/System.out.println(d.getYear() + 1900);\n\n  Calendar c = Calendar.getInstance();\n  int year = c.get(Calendar.YEAR);\n System.out.println(year);\n\n        \/\/ 2\u3001\u90fd\u662f\u53ef\u53d8\u5bf9\u8c61\uff0c\u4fee\u6539\u540e\u4f1a\u4e22\u5931\u6700\u5f00\u59cb\u7684\u65f6\u95f4\u4fe1\u606f\u3002\n\n        \/\/ 3\u3001\u7ebf\u7a0b\u4e0d\u5b89\u5168\u3002\n\n        \/\/ 4\u3001\u4e0d\u80fd\u7cbe\u786e\u5230\u7eb3\u79d2\uff0c\u53ea\u80fd\u7cbe\u786e\u5230\u6beb\u79d2\u3002\n        \/\/ 1\u79d2 = 1000\u6beb\u79d2\n        \/\/ 1\u6beb\u79d2 = 1000\u5fae\u5999\n        \/\/ 1\u5fae\u5999 = 1000\u7eb3\u79d2\n}\n}<\/code><\/pre>\n<h4>10.13.2 JDK8\u65e5\u671f\u3001\u65f6\u95f4\u3001\u65e5\u671f\u65f6\u95f4<\/h4>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214161209528.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214161209528.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231214161209528\" \/><\/div><\/p>\n<p>JDK8\u65b0\u589e\u7684\u65e5\u671f\u7c7b\u5206\u5f97\u66f4\u7ec6\u81f4\u4e00\u4e9b\uff0c\u6bd4\u5982\u8868\u793a\u5e74\u6708\u65e5\u7528LocalDate\u7c7b\u3001\u8868\u793a\u65f6\u95f4\u79d2\u7528LocalTime\u7c7b\u3001\u800c\u8868\u793a\u5e74\u6708\u65e5\u65f6\u5206\u79d2\u7528LocalDateTime\u7c7b\u7b49\uff1b\u9664\u4e86\u8fd9\u4e9b\u7c7b\u8fd8\u63d0\u4f9b\u4e86\u5bf9\u65f6\u533a\u3001\u65f6\u95f4\u95f4\u9694\u8fdb\u884c\u64cd\u4f5c\u7684\u7c7b\u7b49\u3002\u5b83\u4eec\u51e0\u4e4e\u628a\u5bf9\u65e5\u671f\/\u65f6\u95f4\u7684\u6240\u6709\u64cd\u4f5c\u90fd\u901a\u8fc7\u4e86API\u65b9\u6cd5\uff0c\u7528\u8d77\u6765\u7279\u522b\u65b9\u4fbf\u3002<\/p>\n<p>\u5148\u5b66\u4e60\u8868\u793a\u65e5\u671f\u3001\u65f6\u95f4\u3001\u65e5\u671f\u65f6\u95f4\u7684\u7c7b\uff1b\u6709LocalDate\u3001LocalTime\u3001\u4ee5\u53caLocalDateTime\u7c7b\u3002<\/p>\n<p><strong>LocalDate\u7c7b\u7684\u57fa\u672c\u4f7f\u7528<\/strong><\/p>\n<pre><code class=\"language-java\">public class Test1_LocalDate {\n    public static void main(String[] args) {\n        \/\/ 0\u3001\u83b7\u53d6\u672c\u5730\u65e5\u671f\u5bf9\u8c61(\u4e0d\u53ef\u53d8\u5bf9\u8c61)\n        LocalDate ld = LocalDate.now(); \/\/ \u5e74 \u6708 \u65e5\n        System.out.println(ld);\n\n        \/\/ 1\u3001\u83b7\u53d6\u65e5\u671f\u5bf9\u8c61\u4e2d\u7684\u4fe1\u606f\n        int year = ld.getYear(); \/\/ \u5e74\n        int month = ld.getMonthValue(); \/\/ \u6708(1-12)\n        int day = ld.getDayOfMonth(); \/\/ \u65e5\n        int dayOfYear = ld.getDayOfYear();  \/\/ \u4e00\u5e74\u4e2d\u7684\u7b2c\u51e0\u5929\n        int dayOfWeek = ld.getDayOfWeek().getValue(); \/\/ \u661f\u671f\u51e0\n        System.out.println(year);\n        System.out.println(day);\n        System.out.println(dayOfWeek);\n\n        \/\/ 2\u3001\u76f4\u63a5\u4fee\u6539\u67d0\u4e2a\u4fe1\u606f: withYear\u3001withMonth\u3001withDayOfMonth\u3001withDayOfYear\n        LocalDate ld2 = ld.withYear(2099);\n        LocalDate ld3 = ld.withMonth(12);\n        System.out.println(ld2);\n        System.out.println(ld3);\n        System.out.println(ld);\n\n        \/\/ 3\u3001\u628a\u67d0\u4e2a\u4fe1\u606f\u52a0\u591a\u5c11: plusYears\u3001plusMonths\u3001plusDays\u3001plusWeeks\n        LocalDate ld4 = ld.plusYears(2);\n        LocalDate ld5 = ld.plusMonths(2);\n\n        \/\/ 4\u3001\u628a\u67d0\u4e2a\u4fe1\u606f\u51cf\u591a\u5c11\uff1aminusYears\u3001minusMonths\u3001minusDays\u3001minusWeeks\n        LocalDate ld6 = ld.minusYears(2);\n        LocalDate ld7 = ld.minusMonths(2);\n\n        \/\/ 5\u3001\u83b7\u53d6\u6307\u5b9a\u65e5\u671f\u7684LocalDate\u5bf9\u8c61\uff1a public static LocalDate of(int year, int month, int dayOfMonth)\n        LocalDate ld8 = LocalDate.of(2099, 12, 12);\n        LocalDate ld9 = LocalDate.of(2099, 12, 12);\n\n        \/\/ 6\u3001\u5224\u65ad2\u4e2a\u65e5\u671f\u5bf9\u8c61\uff0c\u662f\u5426\u76f8\u7b49\uff0c\u5728\u524d\u8fd8\u662f\u5728\u540e\uff1a equals isBefore isAfter\n        System.out.println(ld8.equals(ld9));\/\/ true\n        System.out.println(ld8.isAfter(ld)); \/\/ true\n        System.out.println(ld8.isBefore(ld)); \/\/ false\n    }\n\n}\n<\/code><\/pre>\n<p>LocalTime\u7c7b\u7684\u57fa\u672c\u4f7f\u7528<\/p>\n<pre><code class=\"language-java\">public class Test2_LocalTime {\n    public static void main(String[] args) {\n        \/\/ 0\u3001\u83b7\u53d6\u672c\u5730\u65f6\u95f4\u5bf9\u8c61\n        LocalTime lt = LocalTime.now(); \/\/ \u65f6 \u5206 \u79d2 \u7eb3\u79d2 \u4e0d\u53ef\u53d8\u7684\n        System.out.println(lt);\n\n        \/\/ 1\u3001\u83b7\u53d6\u65f6\u95f4\u4e2d\u7684\u4fe1\u606f\n        int hour = lt.getHour(); \/\/\u65f6\n        int minute = lt.getMinute(); \/\/\u5206\n        int second = lt.getSecond(); \/\/\u79d2\n        int nano = lt.getNano(); \/\/\u7eb3\u79d2\n\n        \/\/ 2\u3001\u4fee\u6539\u65f6\u95f4\uff1awithHour\u3001withMinute\u3001withSecond\u3001withNano\n        LocalTime lt3 = lt.withHour(10);\n        LocalTime lt4 = lt.withMinute(10);\n        LocalTime lt5 = lt.withSecond(10);\n        LocalTime lt6 = lt.withNano(10);\n\n        \/\/ 3\u3001\u52a0\u591a\u5c11\uff1aplusHours\u3001plusMinutes\u3001plusSeconds\u3001plusNanos\n        LocalTime lt7 = lt.plusHours(10);\n        LocalTime lt8 = lt.plusMinutes(10);\n        LocalTime lt9 = lt.plusSeconds(10);\n        LocalTime lt10 = lt.plusNanos(10);\n\n        \/\/ 4\u3001\u51cf\u591a\u5c11\uff1aminusHours\u3001minusMinutes\u3001minusSeconds\u3001minusNanos\n        LocalTime lt11 = lt.minusHours(10);\n        LocalTime lt12 = lt.minusMinutes(10);\n        LocalTime lt13 = lt.minusSeconds(10);\n        LocalTime lt14 = lt.minusNanos(10);\n\n        \/\/ 5\u3001\u83b7\u53d6\u6307\u5b9a\u65f6\u95f4\u7684LocalTime\u5bf9\u8c61\uff1a\n        \/\/ public static LocalTime of(int hour, int minute, int second)\n        LocalTime lt15 = LocalTime.of(12, 12, 12);\n        LocalTime lt16 = LocalTime.of(12, 12, 12);\n\n        \/\/ 6\u3001\u5224\u65ad2\u4e2a\u65f6\u95f4\u5bf9\u8c61\uff0c\u662f\u5426\u76f8\u7b49\uff0c\u5728\u524d\u8fd8\u662f\u5728\u540e\uff1a equals isBefore isAfter\n        System.out.println(lt15.equals(lt16)); \/\/ true\n        System.out.println(lt15.isAfter(lt)); \/\/ false\n        System.out.println(lt15.isBefore(lt)); \/\/ true\n\n    }\n\n}<\/code><\/pre>\n<p>LocalDateTime\u7c7b\u7684\u57fa\u672c\u4f7f\u7528<\/p>\n<pre><code class=\"language-java\">public class Test3_LocalDateTime {\n    public static void main(String[] args) {\n        \/\/ 0\u3001\u83b7\u53d6\u672c\u5730\u65e5\u671f\u548c\u65f6\u95f4\u5bf9\u8c61\u3002\n        LocalDateTime ldt = LocalDateTime.now(); \/\/ \u5e74 \u6708 \u65e5 \u65f6 \u5206 \u79d2 \u7eb3\u79d2\n        System.out.println(ldt);\n\n        \/\/ 1\u3001\u53ef\u4ee5\u83b7\u53d6\u65e5\u671f\u548c\u65f6\u95f4\u7684\u5168\u90e8\u4fe1\u606f\n        int year = ldt.getYear(); \/\/ \u5e74\n        int month = ldt.getMonthValue(); \/\/ \u6708\n        int day = ldt.getDayOfMonth(); \/\/ \u65e5\n        int dayOfYear = ldt.getDayOfYear();  \/\/ \u4e00\u5e74\u4e2d\u7684\u7b2c\u51e0\u5929\n        int dayOfWeek = ldt.getDayOfWeek().getValue();  \/\/ \u83b7\u53d6\u662f\u5468\u51e0\n        int hour = ldt.getHour(); \/\/\u65f6\n        int minute = ldt.getMinute(); \/\/\u5206\n        int second = ldt.getSecond(); \/\/\u79d2\n        int nano = ldt.getNano(); \/\/\u7eb3\u79d2\n\n        \/\/ 2\u3001\u4fee\u6539\u65f6\u95f4\u4fe1\u606f\uff1a\n        \/\/ withYear withMonth withDayOfMonth withDayOfYear withHour\n        \/\/ withMinute withSecond withNano\n        LocalDateTime ldt2 = ldt.withYear(2029);\n        LocalDateTime ldt3 = ldt.withMinute(59);\n\n        \/\/ 3\u3001\u52a0\u591a\u5c11:\n        \/\/ plusYears  plusMonths plusDays plusWeeks plusHours plusMinutes plusSeconds plusNanos\n        LocalDateTime ldt4 = ldt.plusYears(2);\n        LocalDateTime ldt5 = ldt.plusMinutes(3);\n\n        \/\/ 4\u3001\u51cf\u591a\u5c11\uff1a\n        \/\/ minusDays minusYears minusMonths minusWeeks minusHours minusMinutes minusSeconds minusNanos\n        LocalDateTime ldt6 = ldt.minusYears(2);\n        LocalDateTime ldt7 = ldt.minusMinutes(3);\n\n        \/\/ 5\u3001\u83b7\u53d6\u6307\u5b9a\u65e5\u671f\u548c\u65f6\u95f4\u7684LocalDateTime\u5bf9\u8c61\uff1a\n        \/\/ public static LocalDateTime of(int year, Month month, int dayOfMonth, int hour,\n        \/\/                                  int minute, int second, int nanoOfSecond)\n        LocalDateTime ldt8 = LocalDateTime.of(2029, 12, 12, 12, 12, 12, 1222);\n        LocalDateTime ldt9 = LocalDateTime.of(2029, 12, 12, 12, 12, 12, 1222);\n\n        \/\/ 6\u3001 \u5224\u65ad2\u4e2a\u65e5\u671f\u3001\u65f6\u95f4\u5bf9\u8c61\uff0c\u662f\u5426\u76f8\u7b49\uff0c\u5728\u524d\u8fd8\u662f\u5728\u540e\uff1a equals\u3001isBefore\u3001isAfter\n        System.out.println(ldt9.equals(ldt8));\n        System.out.println(ldt9.isAfter(ldt));\n        System.out.println(ldt9.isBefore(ldt));\n\n        \/\/ 7\u3001\u53ef\u4ee5\u628aLocalDateTime\u8f6c\u6362\u6210LocalDate\u548cLocalTime\n        \/\/ public LocalDate toLocalDate()\n        \/\/ public LocalTime toLocalTime()\n        \/\/ public static LocalDateTime of(LocalDate date, LocalTime time)\n        LocalDate ld = ldt.toLocalDate();\n        LocalTime lt = ldt.toLocalTime();\n        LocalDateTime ldt10 = LocalDateTime.of(ld, lt);\n\n    }\n\n}<\/code><\/pre>\n<h4>10.13.3 JDK\u65e5\u671f\uff08\u65f6\u533a\uff09<\/h4>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214163329068.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214163329068.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231214163329068\" \/><\/div><\/p>\n<pre><code class=\"language-java\">public class Test4_ZoneId_ZonedDateTime {\n    public static void main(String[] args) {\n        \/\/ \u76ee\u6807\uff1a\u4e86\u89e3\u65f6\u533a\u548c\u5e26\u65f6\u533a\u7684\u65f6\u95f4\u3002\n        \/\/ 1\u3001ZoneId\u7684\u5e38\u89c1\u65b9\u6cd5\uff1a\n        \/\/ public static ZoneId systemDefault(): \u83b7\u53d6\u7cfb\u7edf\u9ed8\u8ba4\u7684\u65f6\u533a\n        ZoneId zoneId = ZoneId.systemDefault();\n        System.out.println(zoneId.getId());\n        System.out.println(zoneId);\n\n        \/\/ public static Set&lt;String&gt; getAvailableZoneIds(): \u83b7\u53d6Java\u652f\u6301\u7684\u5168\u90e8\u65f6\u533aId\n        System.out.println(ZoneId.getAvailableZoneIds());\n\n        \/\/ public static ZoneId of(String zoneId) : \u628a\u67d0\u4e2a\u65f6\u533aid\u5c01\u88c5\u6210ZoneId\u5bf9\u8c61\u3002\n        ZoneId zoneId1 = ZoneId.of(&quot;America\/New_York&quot;);\n\n        \/\/ 2\u3001ZonedDateTime\uff1a\u5e26\u65f6\u533a\u7684\u65f6\u95f4\u3002\n        \/\/ public static ZonedDateTime now(ZoneId zone): \u83b7\u53d6\u67d0\u4e2a\u65f6\u533a\u7684ZonedDateTime\u5bf9\u8c61\u3002\n        ZonedDateTime now = ZonedDateTime.now(zoneId1);\n        System.out.println(now);\n\n        \/\/ \u4e16\u754c\u6807\u51c6\u65f6\u95f4\u4e86\n        ZonedDateTime now1 = ZonedDateTime.now(Clock.systemUTC());\n        System.out.println(now1);\n\n        \/\/ public static ZonedDateTime now()\uff1a\u83b7\u53d6\u7cfb\u7edf\u9ed8\u8ba4\u65f6\u533a\u7684ZonedDateTime\u5bf9\u8c61\n        ZonedDateTime now2 = ZonedDateTime.now();\n        System.out.println(now2);\n\n        \/\/ Calendar instance = Calendar.getInstance(TimeZone.getTimeZone(zoneId1));\n    }\n\n}<\/code><\/pre>\n<h4>10.13.4 JDK8\u65e5\u671f\uff08Instant\u7c7b\uff09<\/h4>\n<p>\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u6765\u5b66\u4e60Instant\u8fd9\u4e2a\u7c7b\u3002\u901a\u8fc7\u83b7\u53d6Instant\u7684\u5bf9\u8c61\u53ef\u4ee5\u62ff\u5230\u6b64\u523b\u7684\u65f6\u95f4\uff0c\u8be5\u65f6\u95f4\u7531\u4e24\u90e8\u5206\u7ec4\u6210\uff1a\u4ece1970-01-01 00:00:00 \u5f00\u59cb\u8d70\u5230\u6b64\u523b\u7684\u603b\u79d2\u6570+\u4e0d\u591f1\u79d2\u7684\u7eb3\u79d2\u6570\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214163517238.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214163517238.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231214163517238\" \/><\/div><\/p>\n<p>\u8be5\u7c7b\u63d0\u4f9b\u7684\u65b9\u6cd5\u5982\u4e0b\u56fe\u6240\u793a\uff0c\u53ef\u4ee5\u7528\u6765\u83b7\u53d6\u5f53\u524d\u65f6\u95f4\uff0c\u4e5f\u53ef\u4ee5\u5bf9\u65f6\u95f4\u8fdb\u884c\u52a0\u3001\u51cf\u3001\u83b7\u53d6\u7b49\u64cd\u4f5c\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214163637341.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214163637341.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231214163637341\" \/><\/div><\/p>\n<p><strong>\u4f5c\u7528\uff1a\u53ef\u4ee5\u7528\u6765\u8bb0\u5f55\u4ee3\u7801\u7684\u6267\u884c\u65f6\u95f4\uff0c\u6216\u7528\u4e8e\u8bb0\u5f55\u7528\u6237\u64cd\u4f5c\u67d0\u4e2a\u4e8b\u4ef6\u7684\u65f6\u95f4\u70b9\u3002<\/strong><\/p>\n<pre><code class=\"language-java\">\/**\n\n\u76ee\u6807\uff1a\u638c\u63e1Instant\u7684\u4f7f\u7528\u3002\n*\/\npublic class Test5_Instant {\npublic static void main(String[] args) {\n   \/\/ 1\u3001\u521b\u5efaInstant\u7684\u5bf9\u8c61\uff0c\u83b7\u53d6\u6b64\u523b\u65f6\u95f4\u4fe1\u606f\n    Instant now = Instant.now(); \/\/ \u4e0d\u53ef\u53d8\u5bf9\u8c61\n\n        \/\/ 2\u3001\u83b7\u53d6\u603b\u79d2\u6570\n        long second = now.getEpochSecond();\n        System.out.println(second);\n\n        \/\/ 3\u3001\u4e0d\u591f1\u79d2\u7684\u7eb3\u79d2\u6570\n        int nano = now.getNano();\n        System.out.println(nano);\n\n        System.out.println(now);\n\n        Instant instant = now.plusNanos(111);\n\n        \/\/ Instant\u5bf9\u8c61\u7684\u4f5c\u7528\uff1a\u505a\u4ee3\u7801\u7684\u6027\u80fd\u5206\u6790\uff0c\u6216\u8005\u8bb0\u5f55\u7528\u6237\u7684\u64cd\u4f5c\u65f6\u95f4\u70b9\n        Instant now1 = Instant.now();\n        \/\/ \u4ee3\u7801\u6267\u884c\u3002\u3002\u3002\u3002\n        Instant now2 = Instant.now();\n\n        LocalDateTime l = LocalDateTime.now();\n\n}\n}<\/code><\/pre>\n<h4>10.13.5 JDK8\u65e5\u671f\uff08\u683c\u5f0f\u5316\u5668\uff09<\/h4>\n<p>DateTimeFormater\u53ef\u4ee5\u5bf9\u65e5\u671f\u8fdb\u884c\u683c\u5f0f\u5316\u548c\u89e3\u6790\u3002\u5b83\u4ee3\u66ff\u4e86\u539f\u6765\u7684SimpleDateFormat\u7c7b\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214164127123.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214164127123.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231214164127123\" \/><\/div><\/p>\n<p>\u9700\u8981\u7528\u5230\u7684\u65b9\u6cd5\uff0c\u5982\u4e0b\u56fe\u6240\u793a<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214164141239.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214164141239.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231214164141239\" \/><\/div><\/p>\n<pre><code class=\"language-java\">\/**\n\n\u76ee\u6807\uff1a\u638c\u63e1JDK 8\u65b0\u589e\u7684DateTimeFormatter\u683c\u5f0f\u5316\u5668\u7684\u7528\u6cd5\u3002\n*\/\npublic class Test6_DateTimeFormatter {\npublic static void main(String[] args) {\n    \/\/ 1\u3001\u521b\u5efa\u4e00\u4e2a\u65e5\u671f\u65f6\u95f4\u683c\u5f0f\u5316\u5668\u5bf9\u8c61\u51fa\u6765\u3002\n    DateTimeFormatter formatter = DateTimeFormatter.ofPattern(&quot;yyyy\u5e74MM\u6708dd\u65e5 HH:mm:ss&quot;);\n\/\/ 2\u3001\u5bf9\u65f6\u95f4\u8fdb\u884c\u683c\u5f0f\u5316\nLocalDateTime now = LocalDateTime.now();\nSystem.out.println(now);\n\nString rs = formatter.format(now); \/\/ \u6b63\u5411\u683c\u5f0f\u5316\nSystem.out.println(rs);\n\n\/\/ 3\u3001\u683c\u5f0f\u5316\u65f6\u95f4\uff0c\u5176\u5b9e\u8fd8\u6709\u4e00\u79cd\u65b9\u6848\u3002\nString rs2 = now.format(formatter); \/\/ \u53cd\u5411\u683c\u5f0f\u5316\nSystem.out.println(rs2);\n\n\/\/ 4\u3001\u89e3\u6790\u65f6\u95f4\uff1a\u89e3\u6790\u65f6\u95f4\u4e00\u822c\u4f7f\u7528LocalDateTime\u63d0\u4f9b\u7684\u89e3\u6790\u65b9\u6cd5\u6765\u89e3\u6790\u3002\nString dateStr = &quot;2029\u5e7412\u670812\u65e5 12:12:11&quot;;\nLocalDateTime ldt = LocalDateTime.parse(dateStr, formatter);\nSystem.out.println(ldt);\n}\n}<\/code><\/pre>\n<h4>10.13.6 JDK8\u65e5\u671f\uff08Period\u7c7b\uff09<\/h4>\n<p>\u4e00\u4e2a\u53ebPeriod\u7c7b\u3001\u4e00\u4e2a\u53ebDuration\u7c7b\uff1b\u8fd9\u4e24\u4e2a\u7c7b\u53ef\u4ee5\u7528\u6765\u5bf9\u8ba1\u7b97\u4e24\u4e2a\u65f6\u95f4\u70b9\u7684\u65f6\u95f4\u95f4\u9694\u3002<\/p>\n<p>\u5176\u4e2dPeriod\u7528\u6765\u8ba1\u7b97\u65e5\u671f\u95f4\u9694\uff08\u5e74\u3001\u6708\u3001\u65e5\uff09\uff0cDuration\u7528\u6765\u8ba1\u7b97\u65f6\u95f4\u95f4\u9694\uff08\u65f6\u3001\u5206\u3001\u79d2\u3001\u7eb3\u79d2\uff09<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214164445746.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214164445746.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231214164445746\" \/><\/div><\/p>\n<p>\u5148\u6765\u6f14\u793aPeriod\u7c7b\u7684\u7528\u6cd5\uff0c\u5b83\u7684\u65b9\u6cd5\u5982\u4e0b\u56fe\u6240\u793a\u3002\u53ef\u4ee5\u7528\u6765\u8ba1\u7b97\u4e24\u4e2a\u65e5\u671f\u4e4b\u95f4\u76f8\u9694\u7684\u5e74\u3001\u76f8\u9694\u7684\u6708\u3001\u76f8\u9694\u7684\u65e5\u3002<strong>\u53ea\u80fd\u4e24\u4e2a\u8ba1\u7b97LocalDate\u5bf9\u8c61\u4e4b\u95f4\u7684\u95f4\u9694<\/strong><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214164502561.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214164502561.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231214164502561\" \/><\/div><\/p>\n<pre><code class=\"language-java\">\/**\n\n\u76ee\u6807\uff1a\u638c\u63e1Period\u7684\u4f5c\u7528\uff1a\u8ba1\u7b97\u673a\u4e24\u4e2a\u65e5\u671f\u76f8\u5dee\u7684\u5e74\u6570\uff0c\u6708\u6570\u3001\u5929\u6570\u3002\n*\/\npublic class Test7_Period {\npublic static void main(String[] args) {\n    LocalDate start = LocalDate.of(2029, 8, 10);\n    LocalDate end = LocalDate.of(2029, 12, 15);\n\n\/\/ 1\u3001\u521b\u5efaPeriod\u5bf9\u8c61\uff0c\u5c01\u88c5\u4e24\u4e2a\u65e5\u671f\u5bf9\u8c61\u3002\nPeriod period = Period.between(start, end);\n\n\/\/ 2\u3001\u901a\u8fc7period\u5bf9\u8c61\u83b7\u53d6\u4e24\u4e2a\u65e5\u671f\u5bf9\u8c61\u76f8\u5dee\u7684\u4fe1\u606f\u3002\nSystem.out.println(period.getYears());\nSystem.out.println(period.getMonths());\nSystem.out.println(period.getDays());\n\n}\n}<\/code><\/pre>\n<h4>10.13.7 JDK8\u65e5\u671f\uff08Duration\u7c7b\uff09<\/h4>\n<p>Duration\u7c7b\u662f\u7528\u6765\u8868\u793a\u4e24\u4e2a\u65f6\u95f4\u5bf9\u8c61\u7684\u65f6\u95f4\u95f4\u9694\u3002<\/p>\n<p><strong>\u53ef\u4ee5\u7528\u4e8e\u8ba1\u7b97\u4e24\u4e2a\u65f6\u95f4\u5bf9\u8c61\u76f8\u5dee\u7684\u5929\u6570\u3001\u5c0f\u65f6\u6570\u3001\u5206\u6570\u3001\u79d2\u6570\u3001\u7eb3\u79d2\u6570\uff1b\u652f\u6301LocalTime\u3001LocalDateTime\u3001Instant\u7b49\u65f6\u95f4<\/strong><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214164611627.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214164611627.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231214164611627\" \/><\/div><\/p>\n<pre><code class=\"language-java\">public class Test8_Duration {\n    public static void main(String[] args) {\n        LocalDateTime start = LocalDateTime.of(2025, 11, 11, 11, 10, 10);\n        LocalDateTime end = LocalDateTime.of(2025, 11, 11, 11, 11, 11);\n        \/\/ 1\u3001\u5f97\u5230Duration\u5bf9\u8c61\n        Duration duration = Duration.between(start, end);\n\n        \/\/ 2\u3001\u83b7\u53d6\u4e24\u4e2a\u65f6\u95f4\u5bf9\u8c61\u95f4\u9694\u7684\u4fe1\u606f\n        System.out.println(duration.toDays());\/\/ \u95f4\u9694\u591a\u5c11\u5929\n        System.out.println(duration.toHours());\/\/ \u95f4\u9694\u591a\u5c11\u5c0f\u65f6\n        System.out.println(duration.toMinutes());\/\/ \u95f4\u9694\u591a\u5c11\u5206\n        System.out.println(duration.toSeconds());\/\/ \u95f4\u9694\u591a\u5c11\u79d2\n        System.out.println(duration.toMillis());\/\/ \u95f4\u9694\u591a\u5c11\u6beb\u79d2\n        System.out.println(duration.toNanos());\/\/ \u95f4\u9694\u591a\u5c11\u7eb3\u79d2\n\n    }\n\n}<\/code><\/pre>\n<h2>\u5341\u4e00\u3001\u7b97\u6cd5\u548c\u6570\u636e\u7ed3\u6784<\/h2>\n<h3>11.1 Arrays\u7c7b<\/h3>\n<h4>11.1.1 Arrays\u57fa\u672c\u4f7f\u7528<\/h4>\n<p>Arrays\u662f\u64cd\u4f5c\u6570\u7ec4\u7684\u5de5\u5177\u7c7b\uff0c\u5b83\u53ef\u4ee5\u5f88\u65b9\u4fbf\u7684\u5bf9\u6570\u7ec4\u4e2d\u7684\u5143\u7d20\u8fdb\u884c\u904d\u5386\u3001\u62f7\u8d1d\u3001\u6392\u5e8f\u7b49\u64cd\u4f5c\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214165714201.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/sqz1997-1307404440.cos.ap-beijing.myqcloud.com\/assets\/image-20231214165714201.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20231214165714201\" \/><\/div><\/p>\n<pre><code class=\"language-java\">\/**\n\n\u76ee\u6807\uff1a\u638c\u63e1Arrays\u7c7b\u7684\u5e38\u7528\u65b9\u6cd5\u3002\n*\/\npublic class ArraysTest1 {\npublic static void main(String[] args) {\n    \/\/ 1\u3001public static String toString(\u7c7b\u578b[] arr): \u8fd4\u56de\u6570\u7ec4\u7684\u5185\u5bb9\n    int[] arr = {10, 20, 30, 40, 50, 60};\n    System.out.println(Arrays.toString(arr));\n\n\/\/ 2\u3001public static \u7c7b\u578b[] copyOfRange(\u7c7b\u578b[] arr, \u8d77\u59cb\u7d22\u5f15, \u7ed3\u675f\u7d22\u5f15) \uff1a\u62f7\u8d1d\u6570\u7ec4\uff08\u6307\u5b9a\u8303\u56f4\uff0c\u5305\u524d\u4e0d\u5305\u540e\uff09\nint[] arr2 = Arrays.copyOfRange(arr, 1, 4);\nSystem.out.println(Arrays.toString(arr2));\n\n\/\/ 3\u3001public static copyOf(\u7c7b\u578b[] arr, int newLength)\uff1a\u62f7\u8d1d\u6570\u7ec4\uff0c\u53ef\u4ee5\u6307\u5b9a\u65b0\u6570\u7ec4\u7684\u957f\u5ea6\u3002\nint[] arr3 = Arrays.copyOf(arr, 10);\nSystem.out.println(Arrays.toString(arr3));\n\n\/\/ 4\u3001public static setAll(double[] array, IntToDoubleFunction generator)\uff1a\u628a\u6570\u7ec4\u4e2d\u7684\u539f\u6570\u636e\u6539\u4e3a\u65b0\u6570\u636e\u53c8\u5b58\u8fdb\u53bb\u3002\ndouble[] prices = {99.8, 128, 100};\n\/\/                  0     1    2\n\/\/ \u628a\u6240\u6709\u7684\u4ef7\u683c\u90fd\u6253\u516b\u6298\uff0c\u7136\u540e\u53c8\u5b58\u8fdb\u53bb\u3002\nArrays.setAll(prices, new IntToDoubleFunction() {\n    @Override\n    public double applyAsDouble(int value) {\n        \/\/ value = 0  1  2\n        return prices[value] * 0.8;\n    }\n});\nSystem.out.println(Arrays.toString(prices));\n\n\/\/ 5\u3001public static void sort(\u7c7b\u578b[] arr)\uff1a\u5bf9\u6570\u7ec4\u8fdb\u884c\u6392\u5e8f(\u9ed8\u8ba4\u662f\u5347\u5e8f\u6392\u5e8f)\nArrays.sort(prices);\nSystem.out.println(Arrays.toString(prices));\n\n}\n}<\/code><\/pre>\n<h4>11.1.2 Arrays\u64cd\u4f5c\u5bf9\u8c61\u6570\u7ec4<\/h4>\n<pre><code class=\"language-java\">\u51c6\u5907\u4e00\u4e2aStudent\u7c7b\uff0c\u4ee3\u7801\u5982\u4e0b\n\npublic class Student implements Comparable&lt;Student&gt;{\n    private String name;\n    private double height;\n    private int age;\n\n    public Student(String name, double height, int age) {\n        this.name = name;\n        this.height = height;\n        this.age = age;\n    }\n\n    \/\/...get\u3001set\u3001\u7a7a\u53c2\u6570\u6784\u9020\u65b9\u6cd5\u3001\u6709\u53c2\u6570\u6784\u9020\u65b9\u6cd5...\u81ea\u5df1\u8865\u5168\n\n    \/\/ \u6307\u5b9a\u6bd4\u8f83\u89c4\u5219\n    \/\/ this  o\n    @Override\n    public int compareTo(Student o) {\n        \/\/ \u7ea6\u5b9a1\uff1a\u8ba4\u4e3a\u5de6\u8fb9\u5bf9\u8c61 \u5927\u4e8e \u53f3\u8fb9\u5bf9\u8c61 \u8bf7\u60a8\u8fd4\u56de\u6b63\u6574\u6570\n        \/\/ \u7ea6\u5b9a2\uff1a\u8ba4\u4e3a\u5de6\u8fb9\u5bf9\u8c61 \u5c0f\u4e8e \u53f3\u8fb9\u5bf9\u8c61 \u8bf7\u60a8\u8fd4\u56de\u8d1f\u6574\u6570\n        \/\/ \u7ea6\u5b9a3\uff1a\u8ba4\u4e3a\u5de6\u8fb9\u5bf9\u8c61 \u7b49\u4e8e \u53f3\u8fb9\u5bf9\u8c61 \u8bf7\u60a8\u4e00\u5b9a\u8fd4\u56de0\n        \/* if(this.age &gt; o.age){\n            return 1;\n        }else if(this.age &lt; o.age){\n            return -1;\n        }\n        return 0;*\/\n\n        \/\/\u4e0a\u9762\u7684if\u8bed\u53e5\uff0c\u4e5f\u53ef\u4ee5\u7b80\u5316\u4e3a\u4e0b\u9762\u7684\u4e00\u884c\u4ee3\u7801\n        return this.age - o.age; \/\/ \u6309\u7167\u5e74\u9f84\u5347\u5e8f\u6392\u5217\n        \/\/ return o.age - this.age; \/\/ \u6309\u7167\u5e74\u9f84\u964d\u5e8f\u6392\u5217\n    }\n\n    @Override\n    public String toString() {\n        return &quot;Student{&quot; +\n                &quot;name=&#039;&quot; + name + &#039;\\&#039;&#039; +\n                &quot;, height=&quot; + height +\n                &quot;, age=&quot; + age +\n                &#039;}&#039;;\n    }\n\n    public double getHeight() {\n        return height;\n    }\n\n    public void setHeight(double height) {\n        this.height = height;\n    }\n}<\/code><\/pre>\n<p>\u518d\u5199\u4e00\u4e2a\u6d4b\u8bd5\u7c7b<\/p>\n<p>\u6392\u5e8f\u65b9\u6cd51\uff1a\u8ba9Student\u7c7b\u5b9e\u73b0Comparable\u63a5\u53e3\uff0c\u540c\u65f6\u91cd\u5199compareTo\u65b9\u6cd5\u3002Arrays\u7684sort\u65b9\u6cd5\u5e95\u5c42\u4f1a\u6839\u636ecompareTo\u65b9\u6cd5\u7684\u8fd4\u56de\u503c\u662f\u6b63\u6570\u3001\u8d1f\u6570\u3001\u8fd8\u662f0\u6765\u786e\u5b9a\u8c01\u5927\u3001\u8c01\u5c0f\u3001\u8c01\u76f8\u7b49\u3002<\/p>\n<pre><code class=\"language-java\">public class Student implements Comparable&lt;Student&gt;{\n    private String name;\n    private double height;\n    private int age;\n\n    \/\/...get\u3001set\u3001\u7a7a\u53c2\u6570\u6784\u9020\u65b9\u6cd5\u3001\u6709\u53c2\u6570\u6784\u9020\u65b9\u6cd5...\u81ea\u5df1\u8865\u5168\n\n    \/\/ \u6307\u5b9a\u6bd4\u8f83\u89c4\u5219\n    \/\/ this  o\n    @Override\n    public int compareTo(Student o) {\n        \/\/ \u7ea6\u5b9a1\uff1a\u8ba4\u4e3a\u5de6\u8fb9\u5bf9\u8c61 \u5927\u4e8e \u53f3\u8fb9\u5bf9\u8c61 \u8bf7\u60a8\u8fd4\u56de\u6b63\u6574\u6570\n        \/\/ \u7ea6\u5b9a2\uff1a\u8ba4\u4e3a\u5de6\u8fb9\u5bf9\u8c61 \u5c0f\u4e8e \u53f3\u8fb9\u5bf9\u8c61 \u8bf7\u60a8\u8fd4\u56de\u8d1f\u6574\u6570\n        \/\/ \u7ea6\u5b9a3\uff1a\u8ba4\u4e3a\u5de6\u8fb9\u5bf9\u8c61 \u7b49\u4e8e \u53f3\u8fb9\u5bf9\u8c61 \u8bf7\u60a8\u4e00\u5b9a\u8fd4\u56de0\n        \/* if(this.age &gt; o.age){\n            return 1;\n        }else if(this.age &lt; o.age){\n            return -1;\n        }\n        return 0;*\/\n\n        \/\/\u4e0a\u9762\u7684if\u8bed\u53e5\uff0c\u4e5f\u53ef\u4ee5\u7b80\u5316\u4e3a\u4e0b\u9762\u7684\u4e00\u884c\u4ee3\u7801\n        return this.age - o.age; \/\/ \u6309\u7167\u5e74\u9f84\u5347\u5e8f\u6392\u5217\n        \/\/ return o.age - this.age; \/\/ \u6309\u7167\u5e74\u9f84\u964d\u5e8f\u6392\u5217\n    }\n\n    @Override\n    public String toString() {\n        return &quot;Student{&quot; +\n                &quot;name=&#039;&quot; + name + &#039;\\&#039;&#039; +\n                &quot;, height=&quot; + height +\n                &quot;, age=&quot; + age +\n                &#039;}&#039;;\n    }\n\n}<\/code><\/pre>\n<p>\u6392\u5e8f\u65b9\u6cd52\uff1a\u5728\u8c03\u7528<code>Arrays.sort(\u6570\u7ec4,Comparator\u6bd4\u8f83\u5668);<\/code>\u65f6\uff0c\u9664\u4e86\u4f20\u9012\u6570\u7ec4\u4e4b\u5916\uff0c\u4f20\u9012\u4e00\u4e2aComparator\u6bd4\u8f83\u5668\u5bf9\u8c61\u3002Arrays\u7684sort\u65b9\u6cd5\u5e95\u5c42\u4f1a\u6839\u636eComparator\u6bd4\u8f83\u5668\u5bf9\u8c61\u7684compare\u65b9\u6cd5\u65b9\u6cd5\u7684\u8fd4\u56de\u503c\u662f\u6b63\u6570\u3001\u8d1f\u6570\u3001\u8fd8\u662f0\u6765\u786e\u5b9a\u8c01\u5927\u3001\u8c01\u5c0f\u3001\u8c01\u76f8\u7b49\u3002\u4ee3\u7801\u5982\u4e0b<\/p>\n<pre><code class=\"language-java\">public class ArraysTest2 {\n    public static void main(String[] args) {\n        \/\/ \u76ee\u6807\uff1a\u638c\u63e1\u5982\u4f55\u5bf9\u6570\u7ec4\u4e2d\u7684\u5bf9\u8c61\u8fdb\u884c\u6392\u5e8f\u3002\n        Student[] students = new Student[4];\n        students[0] = new Student(&quot;\u8718\u86db\u7cbe&quot;, 169.5, 23);\n        students[1] = new Student(&quot;\u7d2b\u971e&quot;, 163.8, 26);\n        students[2] = new Student(&quot;\u7d2b\u971e&quot;, 163.8, 26);\n        students[3] = new Student(&quot;\u81f3\u5c0a\u5b9d&quot;, 167.5, 24);\n\n        \/\/ 2\u3001public static &lt;T&gt; void sort(T[] arr, Comparator&lt;? super T&gt; c)\n        \/\/ \u53c2\u6570\u4e00\uff1a\u9700\u8981\u6392\u5e8f\u7684\u6570\u7ec4\n        \/\/ \u53c2\u6570\u4e8c\uff1aComparator\u6bd4\u8f83\u5668\u5bf9\u8c61\uff08\u7528\u6765\u5236\u5b9a\u5bf9\u8c61\u7684\u6bd4\u8f83\u89c4\u5219\uff09\n        Arrays.sort(students, new Comparator&lt;Student&gt;() {\n            @Override\n            public int compare(Student o1, Student o2) {\n                \/\/ \u5236\u5b9a\u6bd4\u8f83\u89c4\u5219\u4e86\uff1a\u5de6\u8fb9\u5bf9\u8c61 o1   \u53f3\u8fb9\u5bf9\u8c61 o2\n                \/\/ \u7ea6\u5b9a1\uff1a\u8ba4\u4e3a\u5de6\u8fb9\u5bf9\u8c61 \u5927\u4e8e \u53f3\u8fb9\u5bf9\u8c61 \u8bf7\u60a8\u8fd4\u56de\u6b63\u6574\u6570\n                \/\/ \u7ea6\u5b9a2\uff1a\u8ba4\u4e3a\u5de6\u8fb9\u5bf9\u8c61 \u5c0f\u4e8e \u53f3\u8fb9\u5bf9\u8c61 \u8bf7\u60a8\u8fd4\u56de\u8d1f\u6574\u6570\n                \/\/ \u7ea6\u5b9a3\uff1a\u8ba4\u4e3a\u5de6\u8fb9\u5bf9\u8c61 \u7b49\u4e8e \u53f3\u8fb9\u5bf9\u8c61 \u8bf7\u60a8\u4e00\u5b9a\u8fd4\u56de0\n\n\/\/                if(o1.getHeight() &gt; o2.getHeight()){\n\/\/                    return 1;\n\/\/                }else if(o1.getHeight() &lt; o2.getHeight()){\n\/\/                    return -1;\n\/\/                }\n\/\/                return 0; \/\/ \u5347\u5e8f\n                 return Double.compare(o1.getHeight(), o2.getHeight()); \/\/ \u5347\u5e8f\n                \/\/ return Double.compare(o2.getHeight(), o1.getHeight()); \/\/ \u964d\u5e8f\n            }\n        });\n        System.out.println(Arrays.toString(students));\n    }\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u7b2c\u4e00\u90e8\u5206 \u9762\u5411\u5bf9\u8c61\u9ad8\u7ea7 \u4e00\u3001\u9759\u6001 static\u8bfb\u4f5c\u9759\u6001\uff0c\u53ef\u4ee5\u7528\u6765\u4fee\u9970\u6210\u5458\u53d8\u91cf\uff0c\u4e5f\u80fd\u4fee\u9970\u6210\u5458\u65b9\u6cd5\u3002\u6211\u4eec\u5148\u6765\u5b66\u4e60s [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":112,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[3],"class_list":["post-106","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","tag-java"],"_links":{"self":[{"href":"http:\/\/www.sunqizheng1997.com\/index.php\/wp-json\/wp\/v2\/posts\/106","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.sunqizheng1997.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.sunqizheng1997.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.sunqizheng1997.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.sunqizheng1997.com\/index.php\/wp-json\/wp\/v2\/comments?post=106"}],"version-history":[{"count":1,"href":"http:\/\/www.sunqizheng1997.com\/index.php\/wp-json\/wp\/v2\/posts\/106\/revisions"}],"predecessor-version":[{"id":107,"href":"http:\/\/www.sunqizheng1997.com\/index.php\/wp-json\/wp\/v2\/posts\/106\/revisions\/107"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.sunqizheng1997.com\/index.php\/wp-json\/wp\/v2\/media\/112"}],"wp:attachment":[{"href":"http:\/\/www.sunqizheng1997.com\/index.php\/wp-json\/wp\/v2\/media?parent=106"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.sunqizheng1997.com\/index.php\/wp-json\/wp\/v2\/categories?post=106"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.sunqizheng1997.com\/index.php\/wp-json\/wp\/v2\/tags?post=106"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}