蓉杠学习网

j***a语言如何运行,j***a语言如何运行的

大家好,今天小编关注到一个比较意思的话题,就是关于java语言如何运行问题,于是小编就整理了2个相关介绍Java语言如何运行的解答,让我们一起看看吧。

  1. Java程序到底是如何运行的?
  2. jvm:java代码是如何运行的?

J***a程序到底是如何运行的?

使用C语言编译的程序, 会通过编译器, 编译成exe文件, 然后将exe可执行文件交给Windows系统来运行, 为什么不问exe文件是怎么运行的呢? 可能是因为这已经是一种常识了.

1. 内存回收机制: J***a自身的内存管理方式决定了, 每当进行彻底的垃圾回收的时候, 所有的J***a应用程序必须停下来. 这点非常的讨厌, 搞得VM的开发者不得不挖空心思的去设计垃圾回收的算法.

java语言如何运行,java语言如何运行的div>
图片来源网络,侵删)

2. 函数调用: J***a的面向对象设计思想, 导致J***a类库的设计, 充满了许多相关联的, 非常短小的方法, 比如private成员变量的get/set函数. 还有就是J***a的类,至少有一个构造函数, 因此很多情况下, 会产生一些空的构造函数. 函数的调用会产生一些开销. 再就是J***a中函数的动态绑定, 特别是interface的使用, 导致j***a函数调用的效率比较低.

3. J***a的异常机制: J***a规范要求了运行期异常检查. 这对J***a程序的调试和排错有很大帮助, 对J***a的效率,却造成了很大的影响.

4. 同步方法和同步的代码块. 同步方法和同步代码块很容易造成性能的下降, 在j***a这种面向对象设计思想的环境里, 很多方法被设计的很小, 调用很频繁, 如果是同步的方法, 性能下降就非常的明显.

java语言如何运行,java语言如何运行的
(图片来源网络,侵删)

jvm:j***a代码是如何运行的?

一、J***a代码运行流程

A、基本流程

一个J***a项目,包含很多的「.j***a」为后缀源代码文件,除去IDE里直接执行调试,一般来说,都是把代码打成jar包,或者是war包,最后将打包好的jar包或是war包传到线上服务器部署。

java语言如何运行,java语言如何运行的
(图片来源网络,侵删)

部署方式很多,最基本的一种是通过Tomcat容器来部署,也可以自己手动通过j***a命令来运行一个jar包中的代码。

B、编译

上述流程中有一个非常关键的点,「编译」

在j***a代码打包的过程中,一般会把源代码编译成「.class」后缀的字节码文件。只有字节码文件class才能被JVM识别解释运行。

C、JVM进程

对于编译好的class字节码,需要使用诸如j***a -jar之类的命令来运行写好的代码;一旦使用j***a命令,实际上此时就会启动一个JVM进程。

JVM进程会负责运行这些class字节码文件,也就相当于负责运行我们写好的代码。

D、类加载

虚拟机的视角来看,执行j***a代码首先需要将它编译而成的class文件加载到j***a虚拟机中。加载后的j***a类会被存放在方法区中。实际运行时,虚拟机会执行方法区的代码。

在运行过程中,每当调用进入一个j***a方法,j***a虚拟机会在当前的j***a方法栈中生成一个栈帧,用以存放局部变量以及字节码的操作数这个栈帧的大小是提前计算好的,而且j***a虚拟机不要求栈帧在内存空间里连续分布。

在hotspot里面,上述翻译过程有两种形式:第一种是解释执行,即逐条将字节码翻译成机器码并执行;第二种是即时编译(JIT),即将一个方法包含的所有字节码编译成机器码后再执行。

到此,以上就是小编对于j***a语言如何运行的问题就介绍到这了,希望介绍关于j***a语言如何运行的2点解答对大家有用。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.rongung.com/post/34255.html

分享:
扫描分享到社交APP