建设农业网站,东莞大岭山网站制作,最专业企业营销型网站建设,建设上海公司网站Java一次编译#xff0c;到处运行是如何实现的
转自#xff1a;https://cloud.tencent.com/developer/article/1415194 #xff08;排版微调#xff09;
JAVA编译运行总览
Java是一种高级语言#xff0c;要让计算机执行你撰写的Java程序#xff0c;也得通过编译程序的…Java一次编译到处运行是如何实现的
转自https://cloud.tencent.com/developer/article/1415194 排版微调
JAVA编译运行总览
Java是一种高级语言要让计算机执行你撰写的Java程序也得通过编译程序的编译。但是Java编译程序并不直接将Java源代码编译为相依于计算机平台的0、1序列而是将其编译为字节码。
Java源代码的扩展名为.java经过编译程序编译之后生成扩展名为.class的字节码。如果想要执行字节码文件目标平台必须要安装JVM(java虚拟机)JVM会将字节码翻译为相依与平台的计算机指令即0、1序列。但是一定要记着不同平台要安装专属该平台的JVM。这就好比你讲中文(.java)Java编译程序帮你翻译为英文(.class)这份英文文件到各个国家之后再由当地看得懂英文的人(JVM)翻译为当地语言(机器指令)。 所以JVM担任的职责之一就是当地翻译员将字节码文件翻译为当时平台看得懂的0、1序列有了JVM你的Java程序就达到了“编译一次到处运行”的跨平台目的。所以到这里。我们就知道了java程序跨平台性好的根本原因就是java虚拟机JVM存在的原因。 JAVA编译运行分解过程
第一步Java源代码——.CLASS文件字节码是java的第一次编译。生成的这个.class文件就是可以到处运行的文件。 第二步Java字节码——到目标机器代码执行是由JVM执行引擎来完成JAVA的第二次编译。 JVM
到处运行的隐含条件——这里的“到处”的前提是“装有JVM”。
看完编译过程在这里说“到处运行”就毫不费力了。因为第二次编译就是在JVM中执行的也就是在任何一个装有“JVM”的操作系统中完成的。JAVA提供了各种不同平台上的虚拟机制所以可以实现“到处”。
对JVM的重要认知就是
对Java程序而言只认识一种操作系统这个系统就是JVM字节码文件(扩展名为.class的文档)就是JVM的可执行文件。
Java程序理想上并不理会真正执行哪个平台只要知道如何执行于JVM就可以了至于JVM实际上如何与底层平台沟通那是JVM自己的事。由于JVM实际上相当于Java程序的操作系统JVM就负责了Java程序的各种资源管理。
JVM就是Java程序的操作系统JVM的可执行文件就是.class文件。
Java虚拟机屏蔽了操作系统之间的差异但是不同的系统使用的虚拟机不同。