JVM 之 Class文件结构
JVM 之 Class文件结构 本文写作目的: 1)为了加深自己学习的理解,2)帮助正在学习研究JVM的同仁,3)与任何热爱技术的达人交流经验,提升自己 以此为本,文章会尽量写的简洁,尽量保证理解的正确性,如有任何理解不到位或错误的地方,希望朋友们及时指出,严厉拍砖。 开始之前我们需要先了解一些基本的概念,这些概念是学习整个JVM原理的基础。 1)JVM虚拟机规范主要规范了Class文件结构,虚拟机内存结构,虚拟机加载,解析,执行Class文件的行为方式,以及一系列的字节码指令集。 2)Class文件理论上说是一种数据结构,该 数据结构有着严格的格式规范,该规范在字节粒度上规定了组成该数据结构的格式标准。 3)Class文件本质上是一组二进制字节流,是被JVM解析执行的数据源,每个字节都有着不同的含义,可能表示字符,数字,也可能表示执行某种操作的一个字节码指令。 4) JVM (Java 虚拟机)是解析执行Class文件的核心引擎,是整个Java系统的运行时环境,是跨平台的基石。 5)我们的Java代码需要被编译器编译成完整,正确的Class文件才能被JVM正确的执行。 6)编译器并非JVM的一部分,不同的语言可以提供不同的编译器,其作用是将该语言的代码编译为正确的Class文件,如Scala,JRuby等等。 7)JVM是完全开放的跨平台的