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 阅读(365) 评论(0)  编辑  收藏 所属分类: java

只有注册用户登录后才能发表评论。


网站导航: