{"id":2309,"date":"2022-09-08T01:12:10","date_gmt":"2022-09-07T17:12:10","guid":{"rendered":"http:\/\/47.101.202.111\/?p=2309"},"modified":"2022-09-08T17:21:02","modified_gmt":"2022-09-08T09:21:02","slug":"%e6%b5%85%e6%8b%b7%e8%b4%9d%e5%92%8c%e6%b7%b1%e6%8b%b7%e8%b4%9d","status":"publish","type":"post","link":"http:\/\/139.196.114.170\/?p=2309","title":{"rendered":"\u6d45\u62f7\u8d1d\u548c\u6df1\u62f7\u8d1d"},"content":{"rendered":"<h3>\u6d45\u62f7\u8d1d<\/h3>\n<p>\u6d45\u62f7\u8d1d\u662f\u4f7f\u7528\u9ed8\u8ba4clone()\u65b9\u6cd5\u5f97\u5230\u4e00\u4e2a\u6210\u5458\u503c\u5b8c\u5168\u4e00\u81f4\u7684\u7c7b\u5bf9\u8c61<\/p>\n<p>\u62f7\u8d1d\u5bf9\u8c61\u6210\u5458\u8d4b\u65b0\u503c\u4fee\u6539\u6301\u6709\u7684\u5f15\u7528\u5730\u5740\uff0c\u5bf9\u8c61\u6210\u5458\u4fee\u6539\u5f15\u7528\u5bf9\u8c61\u5b9e\u9645\u4fee\u6539\u5185\u5b58\u5730\u5740<\/p>\n<pre lang=\"java\">\npublic class Copy implements Cloneable {\n    private int iNum;\n    public Integer INum;\n    public Reference Ref;\n    public String str;\n\n    \/\/ getters and setters\n\n    @Override\n    protected Object clone() throws CloneNotSupportedException {\n        return super.clone();\n    }\n\n    public static void main(String[] args) throws CloneNotSupportedException {\n        test1();\n        test2();\n        test3();\n        test4();\n        test5();\n    }\n}\n<\/pre>\n<h4>\u6d45\u62f7\u8d1d\u65f6\u5728\u5806\u4e2d\u751f\u6210\u4e00\u4e2a\u65b0\u5bf9\u8c61<\/h4>\n<p>\u53ef\u89c1\u5982\u4e0b\u4e24\u4e2a\u5bf9\u8c61\u7684\u5185\u5b58\u5730\u5740\u4e0d\u540c\uff0csource\u548cclone\u5f15\u7528\u7684\u662f\u4e0d\u540c\u7684\u5bf9\u8c61<\/p>\n<pre><code class=\"language-java \">public Copy() {}\n\nprivate static void test1() throws CloneNotSupportedException {\n    Copy source = new Copy();\n    System.out.println(source);\n    Copy clone = (Copy) source.clone();\n    System.out.println(clone);\n}\n<\/code><\/pre>\n<pre><code>copy.Copy@1b6d3586\ncopy.Copy@4554617c\n<\/code><\/pre>\n<h4>\u6d45\u62f7\u8d1d\u57fa\u672c\u7c7b\u578b\u6210\u5458\u4ec5\u62f7\u8d1d\u503c<\/h4>\n<p>\u6d45\u62f7\u8d1d\u65f6\uff0c\u57fa\u672c\u7c7b\u578b\u6210\u5458\u53d8\u91cf\u4ec5\u590d\u5236\u503c\u5230\u81ea\u5df1\u7684\u5185\u5b58\u7a7a\u95f4<\/p>\n<pre><code class=\"language-java \">public Copy(int iNum) {\n    this.iNum = iNum;\n}\n\nprivate static void test2() throws CloneNotSupportedException {\n    Copy source = new Copy(1);\n    Copy clone = (Copy) source.clone();\n    System.out.println(source.iNum + \"|\" + clone.iNum);\n\n    source.setiNum(2);\n    System.out.println(source.iNum + \"|\" + clone.iNum);\n\n    clone.setiNum(2);\n    System.out.println(source.iNum + \"|\" + clone.iNum);\n}\n<\/code><\/pre>\n<pre><code>1|1\n2|1\n2|2\n<\/code><\/pre>\n<h4>\u6d45\u62f7\u8d1d\u5f15\u7528\u7c7b\u578b\u6210\u5458\u4ec5\u62f7\u8d1d\u5f15\u7528<\/h4>\n<p>\u5bf9\u8c61\u4e2d\u7684\u5f15\u7528\u7c7b\u578b\u6210\u5458\u5728\u6d45\u62f7\u8d1d\u65f6\uff0c\u4ec5\u62f7\u8d1d\u5185\u5b58\u5730\u5740\uff08\u5373\u5f15\u7528\uff09\uff0c\u82e5\u4fee\u6539\u5185\u5b58\u5730\u5740\uff08\u5373\u4fee\u6539\u5f15\u7528\u5bf9\u8c61\u5185\u5bb9\uff09\u5c06\u540c\u65f6\u5f71\u54cd\u539f\u5bf9\u8c61\u548c\u62f7\u8d1d\u5bf9\u8c61<\/p>\n<pre><code class=\"language-java \">public Copy(Reference ref) {\n    Ref = ref;\n}\n\npublic static void test3() throws CloneNotSupportedException {\n    Reference reference = new Reference(\"s0\");\n    Copy source = new Copy(reference);\n    Copy clone = (Copy) source.clone();\n    System.out.println(source.Ref + \"|\" + clone.Ref);\n\n    source.getRef().setString(\"s1\");\n    System.out.println(source.getRef().getString() + \"|\" + clone.getRef().getString());\n\n    clone.getRef().setString(\"s2\");\n    System.out.println(source.getRef().getString() + \"|\" + clone.getRef().getString());\n}\n<\/code><\/pre>\n<pre><code>copy.Reference@74a14482|copy.Reference@74a14482\ns1|s1\ns2|s2\n<\/code><\/pre>\n<h4>\u539f\u5bf9\u8c61\u548c\u62f7\u8d1d\u5bf9\u8c61\u4fee\u6539\u5f15\u7528\u4e92\u4e0d\u5f71\u54cd<\/h4>\n<p>\u5bf9\u8c61\u4e2d\u7684\u5f15\u7528\u7c7b\u578b\u6210\u5458\u53d1\u751f\u5f15\u7528\u4fee\u6539\u65f6\uff0c\u5b9e\u9645\u66f4\u6539\u7684\u662f <strong>\u5bf9\u8c61\u81ea\u5df1\u6301\u6709\u7684\u5f15\u7528\u5185\u5b58\u5730\u5740<\/strong>\uff0c\u56e0\u6b64\u76f8\u4e92\u4e0d\u5f71\u54cd<\/p>\n<pre><code class=\"language-java \">public static void test4() throws CloneNotSupportedException {\n    Copy source = new Copy(new Integer(0));\n    Copy clone = (Copy) source.clone();\n    System.out.println(source.getINum() + \"|\" + clone.getINum());\n\n    source.setINum(new Integer(1));\n    System.out.println(source.getINum() + \"|\" + clone.getINum());\n\n    clone.setINum(new Integer(2));\n    System.out.println(source.getINum() + \"|\" + clone.getINum());\n}\n<\/code><\/pre>\n<pre><code>0|0\n1|0\n1|2\n<\/code><\/pre>\n<h4>\u6d45\u62f7\u8d1d\u4e0d\u53ef\u53d8\u6210\u5458\u5bf9\u8c61\u7684\u89e3\u91ca<\/h4>\n<p>\u4e0d\u53ef\u53d8\u5bf9\u8c61\u7684\u4fee\u6539\u7ed3\u679c\u662f\u65b0\u5bf9\u8c61\uff0c\u6307\u5411\u65b0\u5f15\u7528\uff0c\u6240\u4ee5\u4e92\u4e0d\u5f71\u54cd<\/p>\n<pre><code class=\"language-java \">public Copy(String str) {\n    this.str = str;\n}\n\npublic static void test5() throws CloneNotSupportedException {\n    String s0 = new String(\"s0\");\n    Copy source = new Copy(s0);\n    Copy clone = (Copy) source.clone();\n    System.out.println(source.str + \"|\" + clone.str);\n\n    source.setStr(s0 + \"a\");\n    System.out.println(source.str + \"|\" + clone.str);\n\n    clone.setStr(clone.getStr() + \"b\");\n    System.out.println(source.str + \"|\" + clone.str);\n}\n<\/code><\/pre>\n<pre><code>s0|s0\ns0a|s0\ns0a|s0b\n<\/code><\/pre>\n<h3>\u6df1\u62f7\u8d1d<\/h3>\n<p>\u6df1\u62f7\u8d1d\u662f\u751f\u6210\u4e00\u4e2a\u4e0e\u539f\u5bf9\u8c61\u5185\u5b58\u7ed3\u6784\u5b8c\u5168\u76f8\u540c\uff0c\u4f46\u6210\u5458\u53d8\u91cf\u5b8c\u5168\u65e0\u5173\u7684\u65b0\u5bf9\u8c61\u3002\u610f\u5473\u7740\u6df1\u62f7\u8d1d\u7684 <strong>\u5f15\u7528\u7c7b\u578b\u6210\u5458\u5747\u6307\u5411\u72ec\u7acb\u7684\u65b0\u5bf9\u8c61\uff0c\u4e0e\u539f\u5f15\u7528\u6307\u5411\u5730\u5740\u4e0d\u540c<\/strong><\/p>\n<h4>\u5b9e\u73b0\u65b9\u6cd5<\/h4>\n<p>1\uff09\u989d\u5916\u5f00\u8f9f\u5185\u5b58\u7a7a\u95f4\uff0c\u9010\u9879\u590d\u5236\u586b\u5199\u503c<br \/>\n2\uff09\u5728\u6d45\u62f7\u8d1d\u57fa\u7840\u4e0a\uff0c\u9012\u5f52\u7684\u5c06\u6240\u6709 <strong>\u5f15\u7528\u7c7b\u578b\u6210\u5458\u4e5f\u8fdb\u884cclone()\u62f7\u8d1d<\/strong><br \/>\n3\uff09\u91c7\u7528 <strong>\u5e8f\u5217\u5316\u65b9\u6cd5<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6d45\u62f7\u8d1d \u6d45\u62f7\u8d1d\u662f\u4f7f\u7528\u9ed8\u8ba4clone()\u65b9\u6cd5\u5f97\u5230\u4e00\u4e2a\u6210\u5458\u503c\u5b8c\u5168\u4e00\u81f4\u7684\u7c7b\u5bf9\u8c61 \u62f7\u8d1d\u5bf9\u8c61\u6210\u5458\u8d4b\u65b0\u503c\u4fee\u6539\u6301\u6709\u7684\u5f15\u7528\u5730\u5740 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/139.196.114.170\/?p=2309\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">\u201c\u6d45\u62f7\u8d1d\u548c\u6df1\u62f7\u8d1d\u201d<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[25],"tags":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/139.196.114.170\/index.php?rest_route=\/wp\/v2\/posts\/2309"}],"collection":[{"href":"http:\/\/139.196.114.170\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/139.196.114.170\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/139.196.114.170\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/139.196.114.170\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2309"}],"version-history":[{"count":4,"href":"http:\/\/139.196.114.170\/index.php?rest_route=\/wp\/v2\/posts\/2309\/revisions"}],"predecessor-version":[{"id":2318,"href":"http:\/\/139.196.114.170\/index.php?rest_route=\/wp\/v2\/posts\/2309\/revisions\/2318"}],"wp:attachment":[{"href":"http:\/\/139.196.114.170\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2309"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/139.196.114.170\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2309"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/139.196.114.170\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2309"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}