对于java虚拟机和编译器的理解

对于java虚拟机和编译器的理解

java的两个层面

对于大家所说的java,有两个层面的意思。一个是java作为编程语言,另一方面是作为程序运行环境java

java- >字节代码- >本地代码

同其他编译语言一样,java是将java语法记述的源代码编译后运行
不过,编译后生成的并不是cpu使用的本地代码(段后解释),而是叫做字节代码的程序,.class文件

  • 机器语言的程序成为本地代码。

  • 程序员书写的为源代码。

  • 通过对源代码进行编译,就可以得到本地代码。

  • 一般应用软件包下收录的不是源代码而是本地代码,即编译后的代码。

而要运行字节代码程序就要为其打造一个环境,我们把这个环境成为java虚拟机

java虚拟机是一边把java字节代码逐一转换为本地代码,一边运行的。

编译器- >虚拟机- >CPU

编译器会将程序员编写的源代码.java转换成字节代码,而java虚拟机则会把字节代码变换为x86系列cpu使用的本地代码,然后由x86系列cpu负责实际的处理。

所说的虚拟机,百科上这样解释:通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。

在浅显的认知中,利用虚拟机,我们可以在mac的操作系统上运行windows的应用。例如,VirtualBox for mac是一款开源虚拟机软件,可以利用该软件在Mac OS平台上运行Windows软件。

java虚拟机

从操作系统方面来看,java虚拟机是一个应用;而从java应用方面来看,java虚拟机是运行环境。

不同的操作系统会有不同专用的java虚拟机。就好比mac系统下的应用和Android系统下的应用不一定兼容。

猜你喜欢

转载自blog.csdn.net/weixin_43865875/article/details/108113863
今日推荐