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
          主站蜘蛛池模板: 安顺市| 台前县| 南投市| 叙永县| 长沙县| 英吉沙县| 宁明县| 理塘县| 陵水| 拉孜县| 琼结县| 犍为县| 马公市| 延川县| 城固县| 阿坝县| 长泰县| 定结县| 汨罗市| 皮山县| 隆昌县| 博白县| 石家庄市| 中西区| 酉阳| 无棣县| 临潭县| 盘锦市| 堆龙德庆县| 湘阴县| 澄城县| 福建省| 嘉祥县| 清远市| 垣曲县| 邵东县| 梁山县| 南昌市| 衢州市| 武汉市| 芒康县|