首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

深入显出JAVA类加载和JVM

2012-09-28 
深入浅出JAVA类加载和JVM我们在电脑上写好的一个Java文件(*.java)是怎样被JVM(Java虚拟机)加载和使用的呢?

深入浅出JAVA类加载和JVM

我们在电脑上写好的一个Java文件(*.java)是怎样被JVM(Java虚拟机)加载和使用的呢?这样一个原理性的问题,如果要追根溯源,恐怕我说个三天三夜也说不完。我们本文的目的就如标题所讲--------深入浅出,力求简洁明了,你懂的。

1.有关JVM

JVM是Java语言的核心机制之一。英文全称Java Virtual Machine。是Java程序的字节码(*.class)的运行环境。同样也是Java语言跨平台运行的必要条件。可以说,正是由于JVM的存在,才造就了Java语言跨平台的特性。

此话怎讲?JVM是java应用程序和操作系统(Unix,WinXP等)的中间层。java应用程序面对的是运行在具体操作系统上的JVM。我们不妨将JVM想象成翻译,我们(java应用程序)对翻译(JVM)说话,翻译会将话翻译给相应的外国人(具体的操作系统)。至于中间怎么翻译,我们可以不用理会。

*.class-------------------->类加载器----------------(a)--------------->字节码校验器-------------(b)---------->类解释器-----------(c)-------->操作系统平台


注意,由上图我们能看出,类加载器在翻译过程中首先出场,然后是字节码校验器,最后类解释器登场,完成翻译工作。

对应注释,我们来详细了解下整个过程。

(a)类加载器读取java字节代码,并转换成java.lang.class类的实例。每个java类都维护这一个指向它的类加载器的引用。我们可以通过getClassLoader获取。

(b)字节码校验器检查.class文件内部结构,检查是否符合语言特征的编译规则。

(c)类解释器翻译成各相应平台的机器语言。

同时,JVM还在运行过程中进行着java安全性检查,比如类型安全的引用转化,GC,数组边界检查,NullPointer检查等。

总结来说,就是JVM屏蔽了底层运行平台的差别,实现了一次编译,随处运行。所以,Java是一种解释型语言。




热点排行