●在JVM中表示两个class对象是否为同一個类存在两个必要条件:
?类的完整类名必须一致包括包名。
●换句话说在JVM中,即使这两个类对象(class对象)来源同一个Class文件被同一个虚拟機所加载,但只要加载它们的ClassLoader实例对象不同那么这两个类对象也是不相等的。
JVM必须知道-一个类型是由启动加载器加载的还是由用户类加載器加载的如果一个类型是由用户类加载器加载的,那么JVM会将这个类加载器的一个引用作为类型信息的一部分保存在方发区中当解析┅个类型到另一个类型的引用的时候,JVM需 要保证这两个类型的类加载器是相同的
Java程序对类的使用方式分为:主动使用和被动使用。
●主动使用又分为七种情况:
?访问某个类或接口的静态变量,或者对该静态变量赋值
?初始化-一个类的子类
?Java虚拟机启动时被标明为启动类的類
●除了以上七种情况其他使用Java类的方式都被看作是对类的被动使用,都不会导致类的初始化