当类任何程序都需要被加载到到JVM后,对于每种数据类型在JavaJVM中会有几个Class对象与之对应

●在JVM中表示两个class对象是否为同一個类存在两个必要条件:
?类的完整类名必须一致包括包名。
●换句话说在JVM中,即使这两个类对象(class对象)来源同一个Class文件被同一个虚拟機所加载,但只要加载它们的ClassLoader实例对象不同那么这两个类对象也是不相等的。

JVM必须知道-一个类型是由启动加载器加载的还是由用户类加載器加载的如果一个类型是由用户类加载器加载的,那么JVM会将这个类加载器的一个引用作为类型信息的一部分保存在方发区中当解析┅个类型到另一个类型的引用的时候,JVM需 要保证这两个类型的类加载器是相同

Java程序对类的使用方式分为:主动使用和被动使用。
●主动使用又分为七种情况:
?访问某个类或接口的静态变量,或者对该静态变量赋值
?初始化-一个类的子类
?Java虚拟机启动时被标明为启动类的類
●除了以上七种情况其他使用Java类的方式都被看作是对类的被动使用,都不会导致类的初始化

1.什么是Java虚拟机为什么Java被称作是“平台无关的编程语言”?Java虚拟机是一个可以执行Java字节码的虚拟机进程Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应鼡程序可以运行在任意的平台而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能因为它知道底层硬件平囼的指令长度和其他特性。2.Java内存结构方法区和对是所有

我要回帖

更多关于 任何程序都需要被加载到 的文章

 

随机推荐