下载此文档

java虚拟机结构机制.doc


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
Java 虚拟机介绍
Java体系结构包括四个独立但相关的技术:
Java程序设计语言
Java class 文件格式
Java 应用编程接口(API)
Java 虚拟机
Java 语言的运行机制
,,接下来由jvm将class文件解释为本地系统宿主环境相对应的机器码运行。Java虚拟机是一台抽象的计算机,其规范定义了每个java虚拟机都必须实现的特性。当然JVM也是根据不同操作系统及硬件标准划分为相应的版本来解决基于各操作系统差异和硬件环境(cpu型号)等因素达到跨平台目的。
编译时环境运行时环境
程序的class文件
Java API的class文件
JVM


程序的源文件
程序的class文件



Java编译器(javac)



Java虚拟机的主要任务是装载class文件并且执行其中的字节码,JVM包含一个类装载器(class loader),它可以从API中装载class文件,API中的那些类只有需要时才会被装载,字节码由执行引擎来执行;JVM在执行字节码时需要经过以下步骤:
由类加载器(class loader),将class文件加载到JVM中这时候需要做一次文件规范的校验。
再由字节码校验器(Bytecode Verifier)检查该文件的代码中是否存在非法操作
通过字节码校验器的验证后就由解释器负责把该class文件解释执行
当然JVM在上述操作过程中还使用了一种叫“沙箱”模型的安全机制,所谓“沙箱”就是
将java程序代码和数据限制在一定的内存空间里执行,不允许程序访问内存空间以外的内存。
具体详解“沙箱”:
步骤一:“双亲委派类加载模型”
双亲委派方式,指的是优先从顶层启动类加载器,自定向下的方式加载类模型,这种方式在“沙箱”安全模型里面做了第一道安全保障;而且这样的方式使得底层的类加载器加载的类和顶层的类加载器的类不能相互调用,哪怕两种类加载器加载的是同一个包里面的类,只要加载的时候不属于同一个类加载器,就是相互隔绝的,这样的操作称为JVM的“安全隔离”
步骤二:字节码校验
可分为四个步骤:
检查class文件的结构正确与否
第一趟扫描的主要目的是保证这个字节序列正确的定义了一个类型,它必须遵从java class文件的固定格式,这样它才能被编译成在方法区中的(基于实现的)内部数据结构
检查是否符合JVM的编译规则
这次检查,class文件检验器不需要查看字节码,也不需要查看和装载任何其他类型。在这趟扫描中,检验器查看每个组成部分,确认它们是否是其所属类型的实例,它们结构是否正确。还会检查这个类本身是否符合特定的条件,它们是由java编程语言规定的。比如,除Object外,所有类都必须要有一个超类,final的类不能被子类化,final方法也没有被覆盖,检查常量池中的条目是合法的,而且常量池的所有索引必须指向正确类型的常量池条目。
检查字节码是否导致JVM崩溃
字节码流代表了java的方法,它是由被称为操作码的单字节指令组成的序列,每一个操作码后都跟着一个或多个操作数。执行字节码时,依次执行操作码,这就在java虚拟机内构成了执行的线程,每一个线程被授予自己的java栈,这个栈是由不同的栈帧构成的,每一个方法调用将获得一个自己的栈帧——栈帧其实就是一个内存片段,其中存储着局部变量和计算的中间结果,用于存储中间结果的部分被称为操作数栈。字节码检验器要进行大量的检查,以确保采用任何路径在字节码流中都得到一个确定的操作码,确保操作数栈总是包含正确的数值以及正确的类型。它必须保证局部变量在赋予合适的值以前不能被访问,而且类的字段中必须总是被赋予正确类型的值,类的方法被调用时总是传递正确数值和类型的参数。字节码检验器还必须保证每个操作码都是合法的,即都有合法的操作数,以及对每一个操作码,合适类型的数值位于局部变量中或是在操作数栈中。这些仅仅是字节码检验器所做的大量检验工作中的一小部分,在整个检验过程通过后,它就能保证这个字节码流可以被
java虚拟机安全的执行。
检查符号引用验证
第四趟扫描可能紧随第三趟扫描发生,也有可能在第三趟扫描之后很久,当字节码被执行时才执行。动态连接是一个将符号引用解析为直接引用的过程。当java虚拟机执行字节码时,如果它遇到一个操作码,这个操作码第一次使用一个指向另一个类的符号引用,那么虚拟机就必须解析这个符号引用。在解析时,虚拟机执行两个基本任务:
——查找被引用的类(如果必

java虚拟机结构机制 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小405 KB
  • 时间2018-02-22