java虚拟机是什么?Java虚拟机基本结构是怎样的?

KLQ 2020-08-31 16:18:05 java常见问答 7347

很多人一定都听过java虚拟机,那么这究竟是个什么东西呢?它是用来做什么的?它的基本结构又是怎样的?下面一起来了解一下吧、

一、什么是java虚拟机?

虚拟机其实就是一种抽象化的计算机,可以看做是一台虚拟的机器,它是一款软件,通过在实际的计算机上面,仿真模拟各种计算机功能来实现。

java虚拟机有着自己非常完善的硬体架构。

java虚拟机屏蔽了和具体操作系统平台有关的信息,这样的方式,使得java程序只要生成在java虚拟机上运行的目标代码(也就是我们常说的字节码),就能够在多种平台上不加修改地运行。

虚拟机可以分成系统虚拟机和程序虚拟机,java虚拟机就是典型的程序虚拟机,它是专门为执行单个计算机程序而设计的。

二、java虚拟机基本结构介绍

通过下面的两个图片,我们可以来了解一下java虚拟机的基本结构。

java虚拟机是什么

下面对图中的内容做一下单独的介绍:

1、类加载子系统

负责从文件系统或者是网络中加载class信息,加载的信息放到一起被叫是方法去的内存空间。

2、方法区

也就是存放常量池信息、类信息、数字常量、常量信息、字符串字面量等

3、java堆

在java虚拟机启动时,建立java堆。是java程序最主要的内存工作区域。

4、直接内存

java的NIO库允许java程序使用直接内存,从而提高性能,一般来说,直接内存速度要比java堆好。

5、java栈

每个虚拟机线程都有着一个私有的栈,一个线程的java栈在线程创建的时候被创建,java栈中保存着局部变量、方法参数、还有java的调用方法和返回值等。

6、本地方法栈

本地方法栈和java栈非常的相似,但是两者还是有着很大的区别的,其中,最大的区别在于,本地方法栈用于本地方法调用。

java虚拟机允许java直接调用本地方法。

7、垃圾回收系统

垃圾回收系统是java的核心,是必不可少的,java有一套自己进行垃圾清理的机制,开发者不需要去进行手动清理。

8、PC寄存器

PC寄存器是每个线程私有的空间,java虚拟机会为每个线程创建PC寄存器,在任何时候,一个java线程总是在执行一个方法,这个方法被叫做当前方法,假如,当前方法不是本地方法,那么PC寄存器就会执行当前正在被执行的指令,假如,当前方法是本地方法,那么,PC寄存器的值为undefined。

9、执行引擎

执行引擎是虚拟机最核心的东西,执行引擎负责执行虚拟机的字节码。

一般用户先编译成机器码后执行。

java虚拟机基本结构

以上就是对于java虚拟机的介绍了,你都了解了吗?

更多关于java虚拟机的常见问题,请继续关注奇Q工具网来了解吧。

推荐阅读:

Java虚拟机安装教程都有什么?该如何下载?

Java虚拟机规范都有什么?

Java虚拟机原理是什么?工作原理有哪些?