还有一个:
  Class c = Integer.TYPE;这个可以理解
  Class c = int.class;但是这个呢?为什么int也会有一个 .class 呢?
怎么回是,高手指点!

解决方案 »

  1.   

    晕,
    1.数组的length是一个属性而不是方法2. int.class和Integer.TYPE是等价的,
    看看Integer.TYPE的定义:
    public static final Class TYPE = Class.getPrimitiveClass("int");
    而Class.getPrimitiveClass又是一个本地方法,所以也不知道它是怎么实现的了
      

  2.   

    JAVA数组也是对象,有属性与方法,与传统语言的数组不一样
      

  3.   

    数组是对象,继承Object的方法和属性,还有一个自己的属性length,它本身由JVM实现,所以在API中是找不到的
      

  4.   

    楼上说到点了,谢谢,现在就剩下这个问题了 Class c = int.class
    看上面
      

  5.   

    数组length是个属性,不是方法,而且数据不是对象,而是一个集合,不存在方法。至于int.class仅仅是java的语法,表示获得一个描述该类的Class对象,对于基本数据类型,就是获得它们的包装类的Class对象。
      

  6.   

    再次重申一点,数组不是对象,而是对象的集合,没有方法可以访问,目前只知道有一个属性length,
    或者是基本数据的集合。
      

  7.   

    JAVA所有的对象都源于Object,int实际上就是Integer,只不过int在编译器作了特殊的解释,屏蔽了相关方法而已,数组也是一样个人见解,不知对否
      

  8.   

    int不是对象,所以也不会是Integer,也没有任何方法
    Class c1=int.class;//或Class c1=Integer.TYPE;这只是得到int的primitive class
    Class c2=Integer.class;
    System.out.println(c1.equals(c2));//输出false
    数组是对象,你可以调用从Object继承的方法
    Object o=new String[10];//从此行可知它是对象,因为只有一个对象才能引用另一个对象
    System.out.println(o.getClass().getName());//此行输出java.lang.String[]
    这里的getClass()就是调用了数组从Object继承的方法,返回的Class不是String.class,而是一个名称后缀为[]的类
      

  9.   

    ===========================================================
    =int实际上就是Integer,只不过int在编译器作了特殊的解释
    ============================================================汗,int是简单类型的变量而Integer是复合类型的,怎么会实际上就是Integer,可以认为Integer是int的一个封装.===================================================
    =int在编译器作了特殊的解释,屏蔽了相关方法而已
    ===================================================
    JVM还需要做特殊的解释?..int只当作简单类型的变量来处理就OK了,怎么会还需要屏蔽相关方法呢.因为他本身就没有这些方法,他在内存中仅仅表示一个整形数据,没有任何属性和方法,因为他是简单类型的。个人认为和C中的int 类似
      

  10.   

    ===================================================================
    System.out.println(o.getClass().getName());//此行输出java.lang.String[]
    这里的getClass()就是调用了数组从Object继承的方法,返回的Class不是String.class,
    而是一个名称后缀为[]的类????
    ===================================================================
       返回的Class不是String.class,而是一个名称后缀为[]的类????
       
       应该是java.lang.String类型的数组吧