java的两种运行机制_关于Java运行机制

Java既是编译型语言,也是解释型语言。

首先先查找关于两种语言的特性及运行机制。

编译型语言与解释型语言的区别

编译型语言

什么是编译呢?通过查找资料,大概就是使用专门的编译器,针对特定的平台将高级语言源代码一次性“翻译”成可以被该平台及其执行的机器码,并包装成该平台能够识别的可执行程序的格式。ps:计算机当然只能看不懂我们敲得代码。

解释型语言

解释则是通过专门的解释器对源程序解释成平台需要的机器码并且立即执行,也就是每次执行之前,都需要解释一遍。

细数两者之差别

编译生成的可执行程序可以脱离开发环境,(但是如果要移到另外一个平台上,则需要将源码复制另外平台,并重新编译),而解释型语言程序不能脱离解释器独立运行,但跨平台容易。

编译型语言的执行速度那是相当的快,因为之前高级程序已经被编译成机器语言文件,比如windows下的exe文件,运行可执行程序的时候就不需要再进行编译了,而是直接运行。而解释型语言编写的程序每执行一次,就要翻译一次,效率偏低。

编译型程序可以访问内存的任何区域,相对不安全,而解释型当然在这方面就很安全,很贴心。

编译型程序运行消耗的内存比解释型少一点,而编译器在运行之前要先开相关的解释器,而且会进行许多代码优化,安全检查,消耗资源,占用内存。

但是编译型代码真的好难好难,c语言就是典型的编译型语言,而解释器毕竟智能,你懂我意思吧。

C,C++,Objective-C,Pascal等高级语言都是编译型语言。

Ruby,Python等语言都是解释型语言。

而Java就很奇怪,真的很怪,又编译,又解释。

Java的奇怪之处

Java的编译

Java的编译并不会生成特定平台的机器码,而是与平台无关的字节码,也就是.class文件。

Java的解释

.class文件通过Java虚拟机,即JVM(Java Virtual Machine)翻译成本地的机器码才能执行,这就是解释的过程。

具体机制

经过编译生成的字节码不面向平台,而是JVM,JVM作为一个交换器把一份字节码分别翻译成不同平台所需要的,这就是Java跨平台性体现的关键之处。

下图为执行Java程序的步骤:

23ae15b1191ec41955d0f0b8942134be.png

JDK中的JRE(Java Runtime Environment)提供了javac.exe对编写的.java文件进行编译,形成字节码文件,以及Java.exe加载Java类文件,并逐步对字节码文件进行编译。

c24e5aededce4acb3cbaa26de0c7afe4.png

在此鸣谢:

相关文章

总结

以上是编程之家为你收集整理的关于Java运行机制全部内容,希望文章能够帮你解决关于Java运行机制所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

相关资源:java运行机制
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页