新闻资讯 > 资讯列表 > 当前资讯

Java运行过程解析

发布时间:2014-02-24 07:27
Tag: Java Runtime class
604 次阅读

Java运行过程解析

编写代码

  首先把我们想要计算机做的事情,通过 Java 表达出来,写成

Java

文件,这个过程就是编写代码的过程。如上图所示的 Hello.java 文件。

  编译

  写完 Java 代码后,机器并不认识我们写的 Java 代码,需要进行编译成为字节码,编译后的文件叫做 class 文件。如上图所示的 Hello.class 文件。

  类装载ClassLoader

  类装载的功能是为执行程序寻找和装载所需要的类。ClassLoader能够加强代码的安全性,主要方式是:把本机上的类和网络资源类相分离,在调入类的时候进行检查,因而可以限制任何“特洛伊木马”的应用。

  字节码(byte-code)校验

  字节码校验的功能是对 class 文件的代码进行校验,保证代码的安全性。Java软件代码在实际运行之前要经过几次测试。JVM 将代码输入一个字节码校验器以测试代码段格式并进行规则检查--检查伪造指针、违反对象访问权限或试图改变对象类型的非法代码。

  注意----所有源于网络的类文件都要经过字节码校验器。字节码校验器对程序代码进行四遍校验,这可以保证代码符合JVM 规范并且不破坏系统的完整性。如果校验器在完成四遍校验后未返回出错信息,则下列各点可被保证:

1、类符合JVM规范的类文件格式

  2、无访问限制异常

  3、代码未引起操作数栈上溢或下溢

  4、所有操作代码的参数类型将总是正确的

  5、无非法数据转换发生,如将整数转换为对象引用

  6、对象域访问是合法的

  解释

  可是机器也不能认识 class 文件,还需要被解释器进行解释,机器才能最终理解我们所要表达的东西。

  运行

  最后由运行环境中的

Runtime

对代码进行运行,真正实现我们想要机器完成的工作。

  说明

  由上面的讲述,大家看到,Java 通过一个编译阶段和一个运行阶段,来让机器最终理解我们想要它完成的工作,并按照我们的要求进行运行。在这两个阶段中,需要我们去完成的就是编译阶段的工作,也就是说:我们需要把我们想要机器完成的工作用 Java 语言表达出来,写成 Java 源文件,然后把源文件进行编译,形成 class 文件,最后就可以在 Java 运行环境中运行了。运行阶段的工作由 Java 平台自身提供, 我们不需要做什么工作。

可能感兴趣的职位

30+万海丁微名片用户的选择
微名片
欢迎关注海丁网精准招聘微信公众账号。it求职/it招聘就上海丁网
可能感兴趣的活动全部>
海丁微名片 - 人才地图 - IT求职 - 海丁介绍 - 客服帮助 - 友情链接 - 网站地图

海丁网 @2011-2014(沪ICP备12001151号)