j***a语言***用执行方式,j***a语言***用什么方式执行
kodinid
2
大家好,今天小编关注到一个比较有意思的话题,就是关于java语言***用()执行方式的问题,于是小编就整理了4个相关介绍Java语言***用()执行方式的解答,让我们一起看看吧。
- 为什么JAVA语言可以在浏览器上执行?
- Java语言中编译执行和解释执行的区别?
- java中,负责对字节代码解释执行的是?
- jvm:java代码是如何运行的?
没有浏览器可以直接运行j***a,浏览器支持的脚本语言是 javascript,和 j***a 没有一毛钱关系。
有个很古老的东东,叫 j***a applet,在浏览器插件支持的情况下,可以从网页启动 j***a 程序,但只是启动,程序并不在浏览器内部运行。 目前主流的浏览器逐渐放弃这种方式,因为太过古老,而且会带来安全性问题。
编译执行和解释执行是不同语言之间的特性,所有的j***a都是编译执行的。 如果不是编译执行,其实已经完全不用j***a的编译器。那么只是一个使用j***a语法的另一种语言而已。
编译执行是指把代码先编译成机器码。然后按顺序运行,如果编译中有任何异常,都无法继续运行。
j***a的编译就是把j***a转换成class。而解释执行则是运行到哪一行代码就执行哪一行代码。如果其他代码有错误但没有运行到,一般不会影响。
比较起来,编译执行速度要快的多。而解释执行则在于比较灵活。可以动态修改。甚至可以在代码运行到指定语句之前,修改该代码。
j***a中,负责对代码解释执行的是?
拒绝冗长回答 ,大道至简是这样的我们在编写j***a的源代码,会被j***ac转换成字节码文件(.class)在运行时j***a虚拟机(JVM)内嵌的解释器将字节码文件转换成机器码j***a源文件 -> class字节码 -> 机器码
jvm:j***a代码是如何运行的?
从虚拟机的视角来看,执行j***a代码首先需要将它编译而成的class文件加载到j***a虚拟机中。加载后的j***a类会被存放在方法区中。实际运行时,虚拟机会执行方法区的代码。
在运行过程中,每当调用进入一个j***a方法,j***a虚拟机会在当前线程的j***a方法栈中生成一个栈帧,用以存放局部变量以及字节码的操作数。这个栈帧的大小是提前计算好的,而且j***a虚拟机不要求栈帧在内存空间里连续分布。
在hotspot里面,上述翻译过程有两种形式:第一种是解释执行,即逐条将字节码翻译成机器码并执行;第二种是即时编译(JIT),即将一个方法包含的所有字节码编译成机器码后再执行。
一、J***a代码运行流程
A、基本流程
一个J***a项目,包含很多的「.j***a」为后缀的源代码文件,除去IDE里直接执行调试,一般来说,都是把代码打成jar包,或者是war包,最后将打包好的jar包或是war包传到线上服务器部署。
部署方式很多,最基本的一种是通过Tomcat容器来部署,也可以是自己手动通过j***a命令来运行一个jar包中的代码。
B、编译
上述流程中有一个非常关键的点,「编译」。
在j***a代码打包的过程中,一般会把源代码编译成「.class」后缀的字节码文件。只有字节码文件class才能被JVM识别并解释运行。
C、JVM进程
对于编译好的class字节码,需要使用诸如j***a -jar之类的命令来运行写好的代码;一旦使用j***a命令,实际上此时就会启动一个JVM进程。
JVM进程会负责运行这些class字节码文件,也就相当于负责运行我们写好的代码。
D、类加载
到此,以上就是小编对于j***a语言***用()执行方式的问题就介绍到这了,希望介绍关于j***a语言***用()执行方式的4点解答对大家有用。
标签: 执行
j***a
编译
版权声明:本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。