JVM体系结构篇之JVM的指令集架构模型

JVM指令集整理 看字节码从这里开始。 指令码 助记符 说明 0×00 nop 什么都不做 0×01 aconst_null 将null推送至栈顶 0×02 iconst_m1 将int型-1推送至栈顶 0×03 iconst_0 将int型0推送至栈顶 0×04 iconst_1 将int型1推送至栈顶 0×05 ... 阅读详情

常见的指令集架构有两种一种是基于寄存器的指令集架构,一种是基于栈的指令集架构。JVM采用的是后者。

通过一段代码来分别介绍一下基于栈的指令集合基于寄存器的指令集的区别

public static void method(){
    int a=1;
    int b=2;
    int c=a+b;
    return;
}
基于栈的指令集架构执行的指令

在这里插入图片描述

不算方法返回return一共8行代码,每个指令都是相对于栈顶栈帧和栈顶栈帧操作数栈的操作,无需关心操作数(进行加减乘除的变量,上图中的1、2)的地址,指令中无需包含操作数的地址信息所以指令集更小;而且指令集统用不依赖与硬件,可以移植性高。

基于寄存器的指令集架构执行的指令

首先科普几个问题

  • 寄存器是什么:寄存器是CUP内部少量的高速存储器,用于保存机器指令的操作数。
  • 32位处理器有16个寄存器,每个寄存器有各自的名字:EAX、EBX、ECX、EDX、ESI、EDI、ESP、EBP、ES、CS、SS、DS、FS、GS、EIP、EFLAGS。
mov eax,1  //将操作数1暂存于寄存器eax
add eax,2  //将eax寄存器的值加2

用基于寄存器的指令集架构的每条指令都需要显示指定寄存器的名称(地址),指令集包含地址信息所以指令集更大,而且对CUP硬件的耦合性高可移植性差;但只要两行指令即可完成上面8行代码的操作,相同操作可以用更少的指令完成,而且依赖于硬件所以性能会比基于栈的指令集性能高。

语雀地址:https://www.yuque.com/yangxiaofei-vquku/wmp1zm/ue47cb

《JVM系列》 第一章 -- JVM与Java体系结构 创新的GCIH(GCinvisible heap)技术实现了off-heap,即将生命周期较长的Java对象从heap中移到heap之外,并且Gc不能管理GCIH内部的Java对象,以此达到降低GC的回收频率和提升Gc的回收效率的目的。在项目开发中,每层的实现可以使用不同的语言,接口对每一层开发者都是透明的,各种语言之间的交互不存在任何困难,就像使用自己语言的原生API一样方便,因为它们最终都运行在一个虚拟机之上。目前,有影响力的三大商用虚拟机之一,也号称是世界上最快的Java虚拟机。 阅读详情

相关推荐

01_JVM与Java体系结构

你是否也遇到过这些问题?运行着的线上系统突然卡死,系统无法访问,甚至直接OOM!想解决线上JVM GC问题,但却无从下手。新项目上线,对各种JVM参数设置一脸茫然,直接默认吧然后就GG了。每次面试之前都要重新背一遍JVM的一些原理概念性的东西,然而面试官却经常问你在实际项目中如何调优VM参数,如何解决GC、OOM等问题,一脸懵逼。大部分Java开发人员,除了会在项目中使用到与Java平台相关的各种高精尖技术,对于Java技术的核心Java虚拟机了解甚少。

低调的烂笔头的博客 845

JVM-指令集

1.bipush指令 当int取值-128~127时,JVM采用bipush指令将常量压入栈中 2.sipush指令 当int取值-32768~32767时,JVM采用sipush指令将常量压入栈中。 3.ldc指令 当int取值-2147483648~2147483647时,JVM采用ldc指令将常量压入栈中。 4.两个int类型相加指令iadd 本地变量表: 0 this 1 a 2 b 3 c iload将a,b压栈 iadd将a和b相加 istore将结果指向变量表c 5.调用引用类型的方法

qq_37200262的博客 1716

JVM的架构模型&基于栈式的指令集架构与基于寄存器式的指令集架构的区别

Java编译器输入的指令流基本上是一种基于栈的指令集架构,另外一种指令集架构则是基于寄存器的指令集架构。 举个最简单的例子,分别使用这两种指令集计算“1+1”的结果 //基于栈的指令 iconst_1 iconst_1 iadd istore_0 //基于寄存器指令 mov eax,1 add eax,1 基于栈的指令集主要的优点就是可移植, 缺点是执行速度慢,相同操作指令数要多很多。 寄存器由硬件直接提供,程序直接依赖这些硬件寄存器则不可避免地要受到硬件的约束。 虽然栈架构指令集的代码非常紧凑,但是完

HappySundlut的博客 560

jvm指令集

一、概述: 官方文档:https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html 二、执行模型: 三、数据类型: 上图可以看出 字节码指令大体上可以分为三类,一类是和数据类型有关,第二类是 没有明确地知名操作类型,第三类是和数据类型无关。 四、指令分类: 五、详细介绍指令 (1)加载与存储指令: a、局部变量压栈指令: b、常量入栈指令: c、出栈装入局部变量表指令: (2)算数指.....

Hao_JunJie的博客 620

深入理解JVM虚拟机第三篇:JVM的指令集架构模型和JVM的生命周期

详细介绍了JVM的指令集架构模型概念、分类、优缺点,以及JVM的生命周期,包含虚拟机的启动、虚拟机的运行和虚拟机的终止,并且提供了手动关闭虚拟机的代码。代码入口在System类中

七叔的博客 1万+

cadence——MOS晶体管I-V特性曲线仿真

MOS晶体管I-V特性曲线仿真 目标:使用cadence绘制晶体管的I-V特性曲线(dc仿真) 流程: 新建原理图,将MOS管的栅极电压设为变量Vg,漏极电压设为变量Vd 打开ADEL,点击Variables——Copy From Cellview添加变量;并选择dc仿真,对Vd进行扫描 以Vg作为参变量进行仿真,点击Tools——Parametric Analysis进行设置 选择漏极电流作为输出,进行仿真即可得到I-V特性曲线 ...

skycmq的博客 1万+

科普文:jvm笔记

场景:隔离加载类(中间件,不同的环境避免类的冲突,实现隔离),修改类加载的方式(根据需要去加载非核心的类库),扩展加载源(从数据库等其他地方加载字节码),防止源码泄漏(对字节码文件进行加密,在加载的时候解密)自定义的步骤:继承ClassLoader 重写findClass() ,读入二进制字节流如果没有复杂的需求,可以继承ClassLoader 子类URLClassLoader 不用编写findClass() ,读入二进制字节流7款经典的垃圾收集器串行回收器:Serial、 Serial Old。

为无为,事无事,味无味。 1502

RK3588 Linux启动优化至亚秒级全链路剖析

本文深入探讨RK3588平台Linux系统启动加速技术,涵盖从BL1/ATF安全固件、U-Boot剪裁到内核精简化等全链路优化方案,实现从上电到用户脚本800ms内完成的实战经验。​​文末提供完整解决方案获取方式​​。由于在 ARMv6 之后引入了 TrustZone 模块, 目前市面上 ARMv7 和 ARMv8 之后的系统都会包含了该模块, 这个模块由 BL1 启动, 且在 ATF(ARM Trust Firmware) 固件中, 既安全世界中引导到 BL33 (UBOOT)的系统。

韩若明溪 1776

图解JVM - 15.字节码指令集

整篇文章通过系统化的图解和实例分析,深入剖析了JVM字节码指令集的运作机制。每个技术点都配备了对应的可视化图表和实际字节码示例,既可作为日常开发的参考指南,也能有效应对技术面试的深度考察。建议结合JVM规范文档和实际反编译练习,进一步巩固对字节码指令的理解。

Anarkh_Lee的博客 1247

Scratch(四十一):升级版垃圾分类

哈喽,大家好!之前给大家展示过“Scratch(二十四):垃圾分类”。今天呢,给大家展示的Scratch是`升级版垃圾分类`。接下来,我们一起看一下效果吧。

我可以很大侠的博客 6862

QCC308x/3095收发一体:TX/RX双模一拖二与多编码广播实战解析

本文深度解析高通QCC308x/3095蓝牙音频芯片的TX/RX双模功能与广播应用。芯片支持发射和接收模式下的“一拖二”连接,并能实现LE Audio多设备广播,显著提升多设备音频切换体验与商业广播能力,适用于健身、导览等丰富场景。

g9h0i1的博客 1003

Java虚拟机 - JVM与Java体系结构

Java 自 1995 年由 Sun Microsystems 发布以来,凭借其 跨平台能力、面向对象特性 和 丰富的生态系统,迅速成为全球最流行的编程语言之一。而 Java 虚拟机(JVM)作为 Java 技术的核心引擎,通过“一次编写,到处运行”(Write Once, Run Anywhere)的理念,彻底改变了软件开发的模式。我们本章简单介绍一下Java语言与JVM的结构,之后我们会在专栏文章中,逐步把我们上面介绍的知识点都覆盖到,争取能够做到让大家能够对JVM的知识有一个宏观的认识。

Snow的博客 1446

ROS2实战:构建模块化启动文件(launch file)以驱动复杂机器人系统

本文详细介绍了ROS2中构建模块化启动文件(launch file)的最佳实践,帮助开发者高效管理复杂机器人系统的节点启动。通过功能分解、参数化设计和嵌套启动等技术,实现批量管理、依赖控制和配置统一,显著提升系统稳定性和调试效率。文章包含实战代码示例和工程化建议,特别适合自动驾驶、物流机器人等场景应用。

weixin_28744613的博客 214

《剑指JVM》JVM架构——JVM与Java体系结构——引言篇2

🔥本篇概览:详细讲解了JVM与Java体系结构中的JVM架构篇。🌈⭕🔥

做一个善良的人,做好自己的事,如果愿意,再发一份光。 821

Python爬虫-爬取汽车之家各品牌周销量榜数据,进行数据分析

本文是该专栏的第57篇,后面会持续分享python爬虫干货知识。本文中,笔者已经整理20篇汽车平台相关的爬虫项目案例。对此感兴趣的同学,可以直接翻阅查看。同样,笔者在本文中将继续以汽车之家平台为例子。基于Python爬虫,实现批量爬取“各品牌周销量榜单”的数据。废话不多说,具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码)

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 365

Codex 100个真实案例 - 用AI生成建筑平面图SVG(室内设计师的新武器)

本案例用 Codex 生成一套完整的 Python 脚本,自动绘制 SVG 格式的建筑平面图。我们会设计一个90平两室一厅的户型——客厅、主卧、次卧、厨房、卫生间一应俱全,还会自动摆放家具(沙发、床、餐桌、橱柜)、标注尺寸和面积、绘制水电路走向、生成多种配色方案。最终输出的 SVG 文件可以直接用浏览器打开展示,也可以转成 PNG 交给客户。室内设计师看了都说好!

yueyeguzhuo的专栏 757

Jvm系列-Jvm概述(一)

目录 1,什么是JVM? 2,JVM跨平台及原理 3,JVM的分类 4,JVM的位置 5,JVM的体系结构 6,Java代码的执行流程 7,JVM的架构模型 8,JVM的生命周期 9,三大商业虚拟机 1,什么是JVM? JVM 是 java虚拟机,是用来执行java字节码(二进制的形式)的虚拟计算机。 jvm是运行在操作系统之上的,与硬件没有任何关系。 2,JVM跨平台及原理 跨平台:由Java编写的程序可以在不同的操作系统上运行:一次编写,多处运行。 原理:编译之后的字节码

理科男同学 5万+

dify制作的工作流如何通过API调用

本文介绍了如何通过Python程序调用Dify工作流API实现数据处理功能。文章详细展示了workflow和chatflow的调用方法,包括参数设置和结果输出,并提供了一个完整的API调用工具代码示例。该工具可实现文本处理、成果查重、关键词生成等功能,支持通过Python脚本或Postman进行调用。核心代码包含API请求函数和批量处理函数,通过HTTP请求与Dify服务端交互,实现自动化数据处理流程。

hhue2007的专栏 932

JVM笔记 -- JVM的发展以及基于栈的指令集架构

2011年,JDK7发布,1.7u4中,开始启用新的垃圾回收器G1(但是不是默认)。 2017年,发布JDK9,G1成为默认GC,代替CMS。(一般公司使用jdk8的时候,会通过参数,指定GC为G1) 2018年,发布JDK11,带来了革命性ZGC,性能比较强。 虚拟机介绍 虚拟机,就是虚拟的计算机,可以执行一系列虚拟计算机指令,大体上可以分为系统虚拟机和程序虚拟机。它们运行时,都会受到虚拟机提供的资源的限制。 系统虚拟机:仿真模拟系统的,比如Visual Box,VMware...

秦怀杂货店 698

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

<JVM上篇:内存与垃圾回收篇>01-JVM与Java体系结构

目录1.JVM与Java体系结构1.1. 前言1.2. 面向人群及参考书目1.3. Java及JVM简介1.4. Java发展的重大事件1.5. 虚拟机与Java虚拟机1.6. JVM的整体结构1.8. JVM的架构模型总结1.9. JVM的生命周期 1.JVM与Java体系结构 1.1. 前言 作为Java工程师的你曾被伤害过吗?你是否也遇到过这些问题? 运行着的线上系统突然卡死,系统无法访问,甚至直接OOM 想解决线上JVM GC问题,但却无从下手 新项目上线,对各种JVM参数设置一脸茫然,直接默认吧然

weixin_44484668的博客 385

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【Java高级篇】JVM体系结构概述

JVM体系结构概述1. JVM的位置2. jvm内存结构栈运行原理栈+堆+方法区的交互关系对象分配规则3. 类的加载机制什么是类的加载类的生命周期类加载器Code测试类加载机制4. GC算法 垃圾回收什么事GC对象存活判断GC算法垃圾回收器 关于JVM知识点的面试题 请谈谈你对JVM的理解?java8的虚拟机有什么更新? 什么是OOM?什么是StackOverflowError?有哪些方法分析? JVM的常用参数调优你知道哪些? 谈谈JVM中,对类加载器你的认识? JVM体系总体分四大块: j

输入技术、输出想法 955

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JVM与Java体系结构

介绍JVM的整体架构、生命周期和发展历程

m0_62946761的博客 2835

JVM-入门了解篇

引言:任何软件语言的设计都有对应的硬件设备作为参考,同理我们理解对应知识结构或设计思想也可以参考对应的体系模型进行理解。 计算机体系结构: 计算机处理数据过程: (1)提取阶段:由输入设备把原始数据或信息输入给计算机存储器存起来 (2)解码阶段:根据CPU的指令集架构(ISA)定义将数值解译为指令 (3)执行阶段:再由控制器把需要处理或计算的数据调入运算器 (4)最终阶段:由输出设备把最后运算结果输出 本质就是CPU处理数据并且返回 CPU = 控制器+运算器+存储器 什么问题需要JVM来解决? 如

weixin_46757553的博客 1706

JVM01-JVM与Java体系结构

文章目录1 JVM与Java体系结构 1 JVM与Java体系结构

weixin_43541094的博客 382

第1章:JVM与Java体系结构

JVM(Java Virtual Machine,Java虚拟机) Java程序的跨平台特性主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运行。因此在运行时,Java源程序需要通过编译器编译成为.class文件。众所周知java.exe是java class文件的执行程序,但实际上java.exe程...

weixin_44040023的博客 4005

JVM体系结构 JVM 架构模型 JVM生命周期 JVM 发展历程

1. JVM体系结构 1. JVM体系结构1.前言2. 虚拟机介绍3. JVM 架构模型4. JVM生命周期5. JVM 发展历程 1.前言 作为Java工程师 ,jvm对于 java的重要性不言而喻,但是 我们又对jvm了解多少 Java的跨平台性 java发布的口号 “一处编译到处运行 ” 依赖于jvm,并随着jvm的发展, jvm也不仅仅只是java语言专有的运行虚拟机,相比较java语言本身,jvm更加出色。Groovy、Scala、JRuby、Kotlin等都是Java平台的一部分。 jvm只认

记录点点滴滴 609
上一篇: JVM体系结构篇之java代码执行流程
下一篇: JNI动态注册、静态注册实例及其实现原理分析
躺平程序猿
博客等级 码龄8年 4870粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

躺平程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值