Java虚拟机及跨平台原理
Java Virtual Machine(JVM) 是可运行java字节码的假象计算机,java的跨平台性是相对其他编程语言而言的,用C语言的编程和执行过程来同java的编程和执行过程进行对比:
同C语言一样,首先也要编写java源程序,然后由java编译器将java源程序编译为JVM可执行的代码,即java字节码,java源程序编译后生成的字节码文件就相当于C源程序编译后的windows上的exe可执行文件,JVM相当于计算机系统(操作系统+硬件环境),在windows上运行的是exe文件,在JVM运行的是java字节码文件(.class文件)。
Windows执行exe可执行文件的过程,就是从exe文件中取出一条条的计算机指令,交给CPU去解释执行。JVM执行java字节码的过程,也是JVM从字节码文件中取出一条条的字节码指令交给“CPU”去执行。执行java字节码的“CPU”可以是硬件,也可以是某个系统上运行的一个软件,这个软件称为java字节码解释程序(也就是JVM)。
总结:
解释器 = JVM 的“CPU”
① .exe文件直接在windows操作系统下运行,即CPU上运行的是机器码。
② .class字节码文件是在JVM虚拟机下运行,即解释器上运行的是Java字节码。
③ 什么什么器就是一个程序,即所谓的java编译器就是java编译程序(jdk的bin目录下的javac.exe),java解释器就是一个特定平台下的解释程序(jdk的bin目录下的java.exe)。
④ 只要实现了特定平台下的解释程序,java字节码就能通过解释器程序在该平台下运行,这是java跨平台的根本。
时间: 2024-11-06 09:42:34