Understanding JVM: Class Structure
发布时间
阅读量:
阅读量
研究概述与背景介绍
在日常使用DOS界面时,我们通常需要首先执行javac命令,该操作的直接作用是生成对应的class文件,而只有基于这个class文件,才能真正运行程序并获取结果。显然,这得益于Java虚拟机的存在。那么,Java虚拟机是否只能编译.java格式的源文件呢?答案是否定的。截至目前,Java虚拟机已具备语言无关性的特性。实现这一特性的核心在于虚拟机与字节码存储格式之间的关系。Java虚拟机不再与包括Java语言在内的任何编程语言绑定,而是仅与特定的二进制文件——“class”文件相关联。在class文件中包含了Java虚拟机指令集、符号表以及一些辅助信息。可以明显看出,Java之所以能够实现跨平台运行,并非由于Java语言本身的平台无关性,而是因为其底层所依赖的Java虚拟机具备平台无关性。事实上,任何具有功能性的编程语言都可以被转换为能够被Java虚拟机识别的有效class文件。例如,在将Java源代码直接编译为class文件的同时,像JRuby这样的其他语言编译器同样能够将程序代码转化为相应的class文件。由此可以看出,Java虚拟机并不关心生成class文件所使用的具体编程语言。
Class类文件结构
Class文件本质上是由以8字节为基本单位的二进制流组成,其中各类数据项依照固定顺序紧密排列,彼此之间不设置任何分隔符,这种
全部评论 (0)
还没有任何评论哟~
