那位java高手具体说说什么是Class对象?

解决方案 »

  1.   

    每个类都有一个class对象。换言之,每当编写并且编译了一个新类,就会产生一个class对象(被保存在一个同名的.class文件中)。在运行时,当我们想生成这个类的对象时,运行这个程序的Java虚拟机首先检查这个类的class对象是否已经加载。如果尚未加载,JVM就会根据类名查找.class文件,并将其载入,一旦某个类的class对象被载入内存,它就被用来创建这个类的所有对象。
      

  2.   

    问问:
    package com.wsy;
    class B {
     }
    public class A {
    public static void main(String[] args){
    B b = new B();
    Class c =b.getClass();
    System.out.print(b.getClass().getName());
    }
    }结果是:com.wsy.B
    b.getClass()产生一个b的Class对象(是new B()?)然后代码有Class c =b.getClass();相当于Class c =new B()这是如何实例化的,这好像不是向上转型啊?望高手详解谢
      

  3.   

    我认为并未有CLASS C实例  只是指向CLASS B 罢了。
      

  4.   

    Class   c   =b.getClass(); 
    object c still hold the reference of b.