美文网首页
java代码是如何被机器识别的

java代码是如何被机器识别的

作者: 小人物不说大话 | 来源:发表于2020-03-25 18:08 被阅读0次

java代码是如何被机器识别的

java代码是如何被机器识别的?

首先,Java作为一门高级程序语言,其语法非常复杂,直接将 Java 代码丢给机器,机器是无法识别 Java 代码的。所以,对于Java语言来说,首先是使用编译器将我们的 Java 源码(.java文件)编译成字节码文件(.class文件),之后再使用虚拟机(JVM)将字节码翻译成机器码,最后机器码才能被机器识别并执行。

请看下图:

(免费学习视频教程推荐:java视频教程

解释如下:

其实 JVM 是无法直接运行字节码文件的,JVM 需要将字节码翻译成机器码才可以运行对应的代码逻辑。在 HotSpot 虚拟机中,有两种翻译形式:第一种是解释执行,即逐条将字节码翻译成机器码并执行;第二种是即时编译(Just-In-Time compilation,JIT),即将一个方法中包含的所有字节码编译成机器码后再执行。这两种方式各有优劣。

解释执行的优势是无须等待编译,立刻可以运行。而即时编译的优势在于实际运行速度更快。在 HotSpot 虚拟机中默认采用混合模式,综合了解释执行和即时编译两者的优点。它会先解释执行字节码,而后将其中反复执行的热点代码,以方法为单位进行即时编译。

Java 虚拟机执行 Java 字节码的时候,首先会将字节码文件加载到内存中,之后将加载后的 Java 类存放到方法区(Method Area)中。实际运行时,虚拟机会执行方法区中的代码。

在运行过程中,每次进入一个 Java 方法,Java 虚拟机会在当前线程的 Java 方法栈中生成一个栈帧,用以存放局部变量以及字节码操作数。当退出当前执行方法时,无论正常返回还是异常返回,Java 虚拟机都会弹出当前线程的当前栈帧,将其丢弃。

相关文章教程推荐:java快速入门

相关文章

  • java代码是如何被机器识别的

    java代码是如何被机器识别的 java代码是如何被机器识别的? 首先,Java作为一门高级程序语言,其语法非常复...

  • 3. JVM类加载器

    我们写的.Java源代码,机器是不是别的。源代码打包会经过java编译器生成.class文件,JVM虚拟机是通过加...

  • JVM

    一、JVM、JRE、JDK JVM,java虚拟机,将.class文件翻译成机器能识别的代码 JRE,java运行...

  • java编译期和运行期

    何为运行期?何为编译期? 编译期是指编译器将源代码翻译为机器能识别的代码,java为编译为jvm认识的字节码文件。...

  • 多线程面试题集锦

    Java 代码最终是被翻译成机器码执行的,机器码才是真正可以和硬件电路交互的代码。 什么是阻塞式方法? 阻塞式方法...

  • Class.forName和classloader的区别

    如图所示,这是java JVM 类装载过程,Java是如何加载到jvm里面然后被识别的呢,其实分为三步: 装载:(...

  • Java代码是如何在机器上运行的?

    概览 计算机能识别的是机器指令码,简称机器码。机器码是二进制的,计算机可以直接识别,但与人类的语言差别太大,不容易...

  • Java的反射机制和 OC 对比

    一 Java反射机制概述 我们都知道程序在运行的时候要经过编译期和运行期,编译期就是编译器吧源代码翻译成机器能识...

  • Java 代码编译和执行的整个过程

    首先问一个问题,Java代码是如何运行的? 写好一份.Java代码被打包成jar包或war包,打包过程中,被编译成...

  • Java中运行javascript代码(二) 更安全运行js代码

    《Java中运行javascript代码(一)》介绍了如何在Java运行js代码,可是如果js代码是用户输入的,就...

网友评论

      本文标题:java代码是如何被机器识别的

      本文链接:https://www.haomeiwen.com/subject/zsmxuhtx.html