java类本来就是抽象的,抽象的东西是没有实体的。当用Class类来描述java类,这时的java类相对于Class类来说,是它的实体对象。是对象就应该是一个实际存在的东西在程序中的映射,但是java类本生是抽象的东西,我们怎样把一个抽象的东西变成一个在计算机中实际存在的对象呢?我们用java类在内存中的字节码来代替java类作为Class的实例对象,因为java类的字节码在内存中是确实存在的(一个类被类加载器加载到内存中,占用一片存储空间,这个空间里面的内容就是类的字节码,不同的类的字节码是不同的,所以它们在内存中的内容是不同的,这一个个的空间可分别用一个个的对象来表示,这些对象显然具有相同的类型,这说明字节码可以被一个类来描述,同时内存中的各个字节码可以成为该类的对象),java类的内容是以字节码的形式在内存中的,它拥有java类在程序中的所有功能,或者说java类在程序中的功能都是通过它实现的,比如new对象,所有它能代替它的类成为Class的对象。 |