运行时类型识别(run-time type identification ,RTTI)的概念上看非常简单:当只有一个指向对象基类的引用时RTTI机制可以让你找到这个对象的确切概念。
Class是RTTI的核心。类是程序的一部分,每个类都有一个Class对象,每当编写并且编译一个新类,就会产生一个Class对象(被保存在一个同名的.class文件中)。为了生成Class对象,运行这个程序的JVM,"类加载器"的子系统。
类加载器子系统实际上可以包含一条类加载器链,但是只有一个原生类加载器。(why)。原生类加载器加载饿时所谓的可信类,包括JAVA API类,他们通常是从本地磁盘加载的。
所有的类,都是在第一次使用时,第一次加载到JVM中的。当程序创建第一个对类的静态成员的引用时,就会加载类,(构造方法也是累的静态方法)。因此,new 一个对象,也会被当做对类的静态成员的引用。
JAVA 程序在运行之前,并非完全加载,其各个部分都是在需要时才加载的。
类加载器首先检查这个类的Class 对象是否已经加载,如果尚未加载,默认的类加载器就会根据类名查找.class文件
本文转自 randy_shandong 51CTO博客,原文链接:http://blog.51cto.com/dba10g/223863,如需转载请自行联系原作者