美文网首页Java从入门到实践
Java虚拟机——字节码、机器码和JVM

Java虚拟机——字节码、机器码和JVM

作者: Sunflow007 | 来源:发表于2020-03-07 17:54 被阅读0次
4.jpg

前言:

本文是Java虚拟机系列第一篇,主要讲解Java虚拟机的概念,字节码、机器码、编译器、解释器的概念

1.Java虚拟机(JVM)

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令(机器码)执行。这就是Java的能够“一次编译,到处运行”的原因。
上面这段话摘自百度百科——https://baike.baidu.com/item/JVM/2902369?fr=aladdin 这段话概括性比较强,也包含了本篇文章的主干知识点:
1.JVM/Java虚拟机
2.机器码、字节码
3.编译器和解释器

2.机器码和字节码

首先,我们知道一段程序要想在电脑上运行,必须“翻译”成电脑能够听懂的,由0,1组成的二进制代码,这种类型的代码即称为机器码,机器码是计算机可以直接执行的、速度最快的代码。
在Java中,编写好的程序即通常的.java文件需要经过编译器编译成.class文件,这段.class文件是一段包含着虚拟机指令、程序和数据片段的二进制文件,即字节码,为什么叫字节码?因为这种类型的代码以一个字节8bit为最小单位储存。

3.编译器和解释器

编译器
编译是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级语言或机器语言)的翻译过程。
解释器
将相对高级的程序代码解释成电脑可以直接运行的机器码。

以Java为例:
电脑是不能直接执行Java程序的,一个.java程序要想被执行,首先需要编译器将高级的.java程序文件编译成.class字节码片段,字节码经过JVM(解释器)的处理后生成电脑可以直接执行的机器码,至此java程序才能得以正确运行。

相关文章

  • 2020-10-13 一键查看Java字节码

    何为 Java 字节码? Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定...

  • 使用 javap 命令查看 Java Class 文件的字节码内

    何为 Java 字节码? Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定...

  • android 虚拟机

    java:.java文件编译成.class文件的字节码,最终将字节码提供给jvm翻译成机器码。 android:....

  • Java虚拟机—Class文件结构

    前言: 在前几篇文章中: Java虚拟机——字节码、机器码和JVMJava虚拟机——类加载机制和类加载器Java虚...

  • Java并发底层实现原理

    Java代码在编译后变成字节码,字节码被类加载器加载到JVM,JVM解析执行字节码,转化为机器码在CPU上执行,J...

  • java核心技术-java基础

    通过javac将java源码转化为字节码,通过jvm内嵌的解释器将字节码转换为机器码。

  • 详解 JVM 字节码(2)

    什么是字节码,为什么需要字节码编译 JVM 编译成机器码, 我们看一看 Java 编译过程 java 源码 编译为...

  • Java的特性

    基础特性 跨平台是通过 JVM 实现的 Java代码先被编译成字节码,再由 JVM 把字节码编译成机器码 四大特征...

  • JVM---内存管理

    一、介绍: JVM 是用于识别.class ,jar等字节码文件,将字节码翻译成操作系统可以识别的机器码的虚拟机,...

  • DVM执行 java 程序的工具

    jvm 执行字节码原理:java 程序运行时,是由一个 java 虚拟机来解释 java 字节码的,它将这些字节码...

网友评论

    本文标题:Java虚拟机——字节码、机器码和JVM

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