美文网首页
Java一次编译到处执行

Java一次编译到处执行

作者: LcoderQ | 来源:发表于2022-11-01 16:46 被阅读0次

转载于:https://blog.csdn.net/weixin_44966641/article/details/121770777

JAVA程序运行的总体流程

  Java是一种高级语言,要让计算机执行你撰写的Java程序,也得通过编译程序的编译。但是Java编译程序并不直接将Java源代码编译为相依于计算机平台的0、1序列,而是将其编译为字节码。
  Java源代码的扩展名为.java,经过编译程序编译之后生成扩展名为.class的字节码。如果想要执行字节码文件,目标平台必须要安装JVM,JVM会将字节码翻译为相依与平台的计算机指令,即:0、1序列。但是一定要记着:不同平台要安装专属该平台的JVM。这就好比你讲中文(.java),Java编译程序帮你翻译为英文(.class),这份英文文件到各个国家之后,再由当地看得懂英文的人(JVM)翻译为当地语言(机器指令)。


image.png

  所以JVM担任的职责之一就是当地翻译员,将字节码文件翻译为当时平台看得懂的0、1序列,有了JVM,你的Java程序就达到了“编译一次到处运行”的跨平台目的。所以到这里。我们就知道了java程序跨平台性好的根本原因就是java虚拟机JVM存在的原因。


image.png

JAVA编译运行分解过程

第一步:Java源代码——.CLASS文件字节码,是java的第一次编译。生成的这个.class文件就是可以到处运行的文件。


image.png

第二步:Java字节码——到目标机器代码;执行是由JVM执行引擎来完成,JAVA的第二次编译。


image.png

JVM

到处运行的隐含条件——这里的“到处”的前提是“装有JVM”。

看完编译过程在这里说“到处运行”就毫不费力了。因为第二次编译就是在JVM中执行的,也就是在任何一个装有“JVM”的操作系统中完成的。JAVA提供了各种不同平台上的虚拟机制,所以可以实现“到处”。

对Java程序而言,只认识一种操作系统,这个系统就是JVM.字节码文件(扩展名为.class的文档)就是JVM的可执行文件。

Java程序理想上,并不理会真正执行哪个平台,只要知道如何执行于JVM就可以了,至于JVM实际上如何与底层平台沟通,那是JVM自己的事。由于JVM实际上相当于Java程序的操作系统,JVM就负责了Java程序的各种资源管理。

JVM就是Java程序的操作系统,JVM的可执行文件就是.class文件。

Java虚拟机屏蔽了操作系统之间的差异,但是不同的系统使用的虚拟机不同。

相关文章

  • JVM底层和GC原理

    1 java一次编译到处运行是怎样实现的 java语言是一种高级语言,想要让计算机执行就需要通过编译。而j...

  • java编译

    “一次编译、到处运行” 说“一次编译、到处运行”的是Java语言跨平台的特性,Java的跨平台特性与Java虚拟机...

  • JAVA资深工程师成长-技能框架(2) -JVM原理

    目录 JVM虚拟机模型 程序它的执行流程 JVM基本结构与内存空间 一次编译,到处运行 java程序经过一次编译之...

  • Java平台特性

    Java 一次编辑,到处运行 一次编译,到处运行说的是Java语言的特性,Java的跨平台特性与Java虚拟机的存...

  • 2018-09-11 java慕课笔记

    学习笔记 java是一种面向对象的高级语言 语言的执行不依赖于任何平台,一次编译到处运行 使用java需要配置环境...

  • JVM 初识

    Java 虚拟机简介 Java 号称 「一次编译,到处运行」的主要源于 JVM (Java Virtual Mac...

  • Java解释执行与编译执行

    问题 Java语言是解释执行还是编译执行 答案 Java是解释执行和编译执行共同存在的 过程 Java源代码文件首...

  • Java的运行原理

    java程序执行过程: .java→.class→机器码java编译器 (编译) → 虚拟机(解释执行) → 解...

  • java_小结

    Java的特点 跨平台:一次编译,到处运行半编译半解释:JVM把 .java编译成一种中间格式的字节码文件 .cl...

  • 1. Java介绍

    Java:一种语言 Java之父:Gosling Java特点:面向对象,跨平台(操作系统)【一次编译,到处运行】...

网友评论

      本文标题:Java一次编译到处执行

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