文档章节

JVM系列二:JVM体系结构

那位先生_
 那位先生_
发布于 2015/07/18 00:38
字数 579
阅读 258
收藏 27

系列一里讲到了Java虚拟机和操作系统的体系结构差别,这一节就简单的讲一下Java虚拟机的内部体系结构 jvm体系结构

从上图可以看出,JVM包括四个模块,分别是

1.类装载子系统:在JVM启动或者运行时将需要的class加载到JVM中

2.执行引擎:负责执行class文件(不一定是文件)中的字节码指令

3.运行时数据区:JVM执行Java程序时,用于保存程序数据的内存区,该区被划分为若干个不同的数据区域模拟实际机器上的存储,记录和调度功能模块

4.本地方法接口:调用C或C++实现的本地方法的代码返回结果(暂时还不熟悉)

模块之间的相互协作如下图所示

JVM体系结构

我们知道,Java源码通过javac编译成class文件,class文件中存储的是字节码,这些字节码就构成了一系列的能被JVM执行的指令操作,所以在Java虚拟机体系中还有一个重要的组成部分,那就是指令集。

在操作系统中,指令集就是在CPU中用来计算和控制计算机系统的一套指令的集合,每一种新型的CPU在设计时都规定了一系列与其它硬件电路相配合的指令系统。

Java虚拟机可以看作是一台抽象的计算机。如同真实的计算机那样,它也有自己的指令集。Java 虚拟机的指令由一个字节长度的、代表着某种特定操作含义的操作码(Opcode)以及跟随其后的零至多个代表此操作所需参数的操作数(Operands)所构成。虚拟机中许多指令并不包含操作数,只有一个操作码。 如果忽略异常处理,那Java虚拟机的解释器使用下面这个伪代码的循环即可有效地工作:

	do {
		自动计算 PC 寄存器以及从 PC 寄存器的位置取出操作码;
	if (存在操作数)  取出操作数;
		执行操作码所定义的操作
	} while (处理下一次循环);

© 著作权归作者所有

那位先生_

那位先生_

粉丝 131
博文 61
码字总数 69487
作品 0
深圳
后端工程师
私信 提问
JVM系列第1讲:Java 语言的前世今生

Java 语言是一门存在了 20 多年的语言,其年纪比我自己还大。虽然存在了这么长时间,但 Java 至今都是最大的工业级语言,许多大型互联网公司均采用 Java 来实现其业务系统。大到国际电商巨头...

陈树义
2018/11/07
0
0
《数据结构与算法系列》合集整理

《数据结构与算法系列》合集整理 整理来自博客园skywang12345,以下摘自作者介绍: “最近抽空整理了"数据结构和算法"的相关文章。在整理过程中,对于每种数据结构和算法分别给出"C"、"C++"...

kaixin_code
2018/12/01
179
0
泥沙砖瓦浆木匠/java-core-learning-example

感谢赞助的ta们 Java 核心系列教程,关于Java核心技术学习积累的例子,是初学者及核心技术巩固的最佳实践。 包括基础语法,OOP,字符串,集合,IO,反射,线程,网络等。 未完成模块:阿里J...

泥沙砖瓦浆木匠
04/02
0
0
JVM规范系列第6章:Java虚拟机指令集

一条 Java 虚拟机指令由一个特定操作的操作码和零至多个操作所使用到的操作数所构成。 虚拟机指令 = 操作码 + 操作数。 其中,操作码值分别为 254(0xfe)和 255(0xff),助记符分别为 impd...

陈树义
2018/12/19
0
0
Java面试高频题精选300道,一份通往阿里的必备指南(pdf文档)

就目前大环境来看,跳槽成功的难度比往年高很多。一个明显的感受:今年的面试,无论一面还是二面,都很考验Java程序员的技术功底。 最近我整理了一份复习用的面试题及面试高频的考点题及技术...

java知识分子
06/12
43
0

没有更多内容

加载失败,请刷新页面

加载更多

jquery底层函数-jQuery.ajaxSetup()

jQuery.ajaxSetup( options )返回: 描述: 为以后要用到的Ajax请求设置默认的值 添加的版本: 1.1jQuery.ajaxSetup( options ) options 类型: PlainObject 一个用来配置Ajax请求的"{键:值}"对,......

前端老手
33分钟前
7
0
Qt编写自定义控件56-波浪曲线

一、前言 波浪曲线控件,其实是之前一个水波进度条控件的一个核心,其实就是利用正弦曲线来生成对应的坐标进行绘制,把这个功能单独提取出来,是为了更详细的研究各种正弦余弦等拓展效果,当...

飞扬青云
39分钟前
6
0
深入理解计算机系统cp1:存储单位与编码

摘要: 理解计算机是如何存储数据的。 原文:深入理解计算机系统cp1:存储单位与编码 作者:Chor Fundebug经授权转载,版权归原作者所有。 1. 存储单位 位:即 bit,表示二进制位,要么是 0 ...

Fundebug
42分钟前
6
0
Python查询比特币实时价格

在本文中我们将学习如何使用使用coinmarketcap提供的比特币行情API,编写Python程序来获取像比特币、莱特币或以太币之类的区块链数字货币的实时行情/实时价格。 1、比特币行情API调用代码 我...

汇智网教程
今天
8
0
爬虫平台Crawlab核心原理--自动提取字段算法

⚠注意: 可配置爬虫现在仅在Python版本(v0.2.1-v0.2.4)可用,在最新版本Golang版本(v0.3.0)还暂时不可用,后续会加上,请关注近期更新 背景 实际的大型爬虫开发项目中,爬虫工程师会被要...

tikazyq
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部