java从代码到运行的步骤解析
1 :编写代码
首先把我们想要计算机做的事情,通过 Java 表达出来,写成 Java 文件,这个过程就是编写代码的过程。如上图所示的 文件。
2 :编译
写完 Java 代码后,机器并不认识我们写的 Java 代码,需要进行编译成为字节码,编译后的文件叫做 class 文件。如上图所示的 s 文件。
3 : 类装载 ClassLoader
类装载的功能是为执行程序寻找和装载所需要的类。
ClassLoader能够加强代码的安全性,主要方式是:把本机上的类和网络资源类相分离, 在调入类的时候进行检查,因而可以限制任何“特洛伊木马”的应用。
4 : 字节 码 (byte-code )校验
功能是对 class 文件的代码进行校验,保证代码的安全性。
Java 软件代码在实际运行之前要经过几次测试。JVM 将代码输入一个字节码校验器以测试代码段格式并进行规则检查--检查伪造指针、 违反对象访问权限或试图改变对象类型的非法代码。
注意----所有源于网络的类文件都要经过字节码校验器字节码校验器对程序代码进行四遍校验, 这可以保证代码符合JVM 规范并且不破坏系统的完整性。如果校验器在完成四遍校验后未返回出错信息,则下列各点可被保证:
- 类符合JVM规范的类文件格式
- 无访问限制异常
- 代码未引起操作数栈上溢或下溢
- 所有操作代码的参数类型将总是正确的
- 无非法数据转换发生,如将整数转换为对象引用
- 对象域访问是合法的
5 :解释(Interpreter )
可是机器也不能认识 class 文件,还需要被解释器进行解释,机器才能最终理解我们所要表达的东西。
6 :运行
最后由运行环境中的. Runtime 对代码进行运行,真正实现我们想要机器完成的工作。
7 : 说明
由上面的讲述,大家看到,Java通过一个编译阶段和一个运行阶段,来让机器最终理解我们想要它完成的工作,并按照我们的要求进行运行。
在这两个阶段中,需要我们去完成的就是编译阶段的工作,也就是说:我们需要把我们想要机器完成的工作用 Java 语言表达出来,写成 Java 源文件,然后把源文件进行编译,形成 class 文件, 最后就可以在 Java 运行环境中运行了。 运行阶段的工作由 Java 平台自身提供,我们不需要做什么工作。
-
40个Java多线程问题总结
Java多线程是什么Java提供的并发(同时、独立)处理多个任务的机制。多个线程共存于同一JVM进程里面,所以共用相同的内存空间,较之多进程,多线程之间的通信更轻量级。依我的理解,Java多线程完全就是为了提高CPU的利用率。Java的线程有4种状态,新建(New)、运行(Runnabl...
-
Java 正则表达式
Java是一门编程语言,那么大家知道Java正则表达式是怎样的呢?下面一起来看看!Java正则表达式正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。正则表达式实例一个字符串其...
-
如何学好Java语言编程
决定好想学什么编程语言了吗,现在就让我们开始学习吧。所有你需要做的就是打开一本书,然后开始阅读,是这样的吗?不全是这样的。learn-first我会给出学习第一门编程语言的理想方法布局,你不仅应该学习这个布局方法,还应该享受精通它——如果不能掌握的话。学习第一门...
-
计算机二级考试Java精选训练题
下面是应届毕业生考试网小编搜索整理的计算机二级考试Java精选训练题,希望对大家有所帮助。[简答题]本题中,在下画线上填写代码,指定变量b为字节型,变量f为单精度实型,变量l为64位整型。publicclassjaval{publicstaticvoidmain(String[-]args){b=49;f=8.9f;l=0xfedl...