wangflood

          精心維護一個技術blog,為了工作,也是愛好。

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            14 Posts :: 19 Stories :: 8 Comments :: 0 Trackbacks
          看一段代碼吧。
          package com.wang.test;

          /**
           * 
          @author Sam Wang
           * 
          @since Mar 22, 2011
           
          */
          // 實現了Cloneable接口,java不要求你實現任何方法 it's a marker
          public class TestObject implements Cloneable {

              
          public static void main(String[] args) throws Exception {
                  TestObject test 
          = new TestObject();
                  test.clone();
          // 實現了Cloneable接口的Test對象可以調用Cloneable
                  int[] arr = { 2141234234, };
                  arr.clone();
                  
          boolean is = arr.getClass() == arr.clone().getClass();
                  System.out.println(is);
          // true
                  Object o = new Object();
                  o.clone();
          // Object雖然提供clone方法,但是無法調用。因為是native修飾的。

                  
          // 對于String來說,
                  String str = new String("34534");
                  str.clone();
          // 不行,沒有實現Cloneable接口。
              }
          }
          // 可以想象Cloneable接口只是一個marker.所有的類都從Object繼承,而且protected,
          // 所以所有的類都有clone方法,但是無法沒有marker的話,就不能調用clone方法。
          // 無法了解到int[]的實現,但是int[]可以clone.
          // 但是String的類似于clone的功能的method還少嗎?
          這個混亂的狀態有點像size和length。居然還有變態的面試考List取長度是size(),還是length(),亦或是length,或是size?記得ruby語言就有這種混亂。比java還亂.各種方言版的ruby,混戰。
          玩dota時,大家常說:各種各樣的SB混戰。呵呵。

          posted on 2011-03-30 17:29 wangflood 閱讀(386) 評論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 平顶山市| 含山县| 镇平县| 田东县| 北辰区| 翁源县| 斗六市| 绥中县| 民县| 景泰县| 大城县| 商城县| 壤塘县| 富源县| 韩城市| 易门县| 青岛市| 临安市| 东丰县| 庆城县| 台湾省| 汶川县| 凌源市| 瑞丽市| 珲春市| 威信县| 厦门市| 玉树县| 卫辉市| 宁夏| 东莞市| 东丰县| 安丘市| 合作市| 永康市| 乃东县| 新源县| 乌审旗| 荣成市| 资兴市| 宁乡县|