【jvm】jvm整体结构(hotspot)

目录

        • 一、说明
        • 二、java代码的执行流程
        • 三、jvm的架构模型
          • 3.1 基于栈式架构的特点
          • 3.2 基于寄存器架构的特点

在这里插入图片描述

一、说明

  • 1.hotspot vm是目前市场上高性能虚拟机的代表作之一
  • 2.hotspot采用解释器与即时编译器并存的架构
  • 3.java虚拟机是用来解释运行字节码文件的,入口是字节码文件
  • 4.类装载子系统将字节码文件加载到内存中,生成一个大的class对象,这个过程中会涉及到加载、链接、初始化
  • 5.方法区和堆可以多个线程共享
  • 6.虚拟机栈、本地方法栈和程序计数器是每个线程独有一份
  • 7.执行引擎分为解释器、JIT及时编译器和垃圾回收器
  • 8.字节码加载到内存中后会用到解释器来解释运行,对于反复执行的热点代码会利用及时编译器提前编译出来
  • 9.java代码编译成class文件叫编译器的前端,及时编译器提前编译代码叫编译器的后端
  • 10.垃圾回收器实现垃圾的自动回收
  • 11.操作系统只能识别机器指令,字节码指令不等同于机器指令,字节码文件能够被解释执行需要执行引擎把字节码指令翻译成机器指令

二、java代码的执行流程

  • 1.java程序通过编译(这个过程有词法分析、语法分析、语法/抽象语法树、语义分析、注解抽象语法树和字节码生成器)生成字节码文件,编译过程有任何一个环节失败了都不能生成字节码文件,每个字节码文件对应着一个类
  • 2.字节码文件通过jvm虚拟机执行,经过类加载器、字节码校验器、执行引擎解释器翻译字节码(解释执行)和JIT编译器(编译执行)成为机器指令被操作系统执行
  • 3.主流的虚拟机都采用解释执行和编译执行并行的方式,解释器用来保证响应时间,逐行对字节码指令进行解释执行;JIT编译器针对于反复执行的热点代码再编译成机器指令,同时把这个机器指令放入方法区缓存起来,下次可以直接调用,保证执行的性能

三、jvm的架构模型

  • 1.java编译器输入的指令流基本上是一种基于栈的指令集架构,另一种指令集架构是基于寄存器的指令集架构
  • 2.hotspot虚拟机除了pc寄存器之外,没有其它寄存器,任何操作都需要入栈和出栈的操作,因此hotspot虚拟机是基于栈的指令集架构
  • 3.由于跨平台性的设计,java的指令都是根据栈来设计的。不同平台cpu架构不同,因此不能设计为基于寄存器架构
  • 4.优点是跨平台,指令集小,编译器容易实现
  • 5.缺点是性能下降,实现同样的功能需要更多的指令
3.1 基于栈式架构的特点
  • 1.设计和实现更简单,适用于资源受限的系统
  • 2.避开了寄存器的分配难题:使用零地址指令方式分配
  • 3.指令流中的指令大部分是零地址指令,其执行过程依赖于操作栈。指令集更小,编译器容易实现
  • 4.不需要硬件支持,可移植性更好,更好实现跨平台
3.2 基于寄存器架构的特点
  • 1.典型应用是x86的二进制指令集:例如传统的PC以及Android的Davlik虚拟机
  • 2.指令集架构则完全依赖硬件,可移植性差
  • 3.性能优秀和执行更高效
  • 4.花费更少的指令去完成一项操作
  • 5.大部分情况下,基于寄存器架构的指令集往往都以一地址指令、二地址指令和三地址指令为主,而基于栈式架构的指令集是以零地址指令为主

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/79166.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式系统:ACID与CAP

ACID: 在计算机科学中,ACID是数据库事务的一组特性,旨在保证数据的有效性,即使在出现错误、断电和其他意外情况下也能保持数据的一致性。在数据库的上下文中,满足ACID属性的一系列数据库操作(可以被视为对数据的单一逻…

Vue实战技巧:从零开始封装全局防抖和节流函数

前言 你是否曾经遇到过用户频繁点击按钮或滚动页面导致反应迟钝的问题?这是因为事件被连续触发,导致性能下降。在本文中,我将为大家介绍 vue 中的防抖和节流策略,并展示如何封装全局的防抖节流函数,以避免频繁触发事件…

Tensorflow2-初识

TensorFlow2是一个深度学习框架,可以理解为一个工具,有谷歌的全力支持,具有易用、灵活、可扩展、性能优越、良好的社区资源等优点。 1、环境的搭建 1.1 Anaconda3的安装 https://www.anaconda.com/ Python全家桶,包括Python环境和…

Scratch 之 大地图引擎怎么做?

引子 简单的介绍一下,一些游戏引擎是有一个隐形小地图存在的,这个隐形小地图通常用来侦测碰碰撞和移动。那么,一个大地图引擎的背景肯定是很大的(一般来说大小都超过200),如果我们要做出一个枪战作品,那就迟早会发现一…

Layui实现OA会议系统之会议管理模块总合

目录 一、项目背景 二、项目概述 1. 概述 2. 环境搭建 3. 工具类引用 4. 功能设计 4.1 会议发布 4.2 我的会议 4.3 会议审批 4.4 会议通知 4.5 待开会议 4.6 历史会议 4.7 所有会议 5. 性能优点 5.1 兼容性好 5.2 可维护性和可扩展性 5.3 轻量灵活 5.4 模块化设计…

图 ML 中的去噪扩散生成模型

Denoising Diffusion Generative Models in Graph ML | by Michael Galkin | Towards Data Science (medium.com) 一、说明 AI DDPM 代表【"Adaptive Importance Density Power Mixture Model" 】即“自适应重要性密度幂混合模型”,是一种用于密度估计的机…

8.物联网操作系统之事件标志组

。事件标志组定义 FreeRTOS事件标志组介绍 FreeRTOS事件标志组工作原理 一。事件标志组定义 信号量信号量只能实现任务与单个事件或任务间的同步。但是某些任务可能会需要与多个事件或任务进行同步,此时就可以使用事件标志组来解决。事件标志组能够实现某个任务与…

LeetCode--HOT100题(23)

目录 题目描述:206. 反转链表(简单)题目接口解题思路代码 PS: 题目描述:206. 反转链表(简单) 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 LeetCode做题链接&…

Python头歌合集(题集附解)

目录 一、Python初识-基本语法 第1关:Hello Python! 第2关:我想看世界 第3关:学好Python 第4关:根据圆的半径计算周长和面积 第5关:货币转换 二、turtle简单绘图 第1关:英寸与厘米转换 第2关&#xff1…

服务器的shell脚本

shell脚本语句可以执行linux的操作语句。 linux相当于网页,shell相当于java。可以解释编写执行逻辑。 shell的开头以:#!bin/sh 定义解析方式,不同的linuxe内核解释方式不同。大多数内核支持sh(bash)方式。 执行sh文件可…

Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取相机当前数据吞吐量(C#)

Baumer工业相机堡盟工业相机如何通过BGAPISDK里函数来获取相机当前数据吞吐量(C#) Baumer工业相机Baumer工业相机的数据吞吐量的技术背景CameraExplorer如何查看相机吞吐量信息在BGAPI SDK里通过函数获取相机接口吞吐量 Baumer工业相机通过BGAPI SDK获取…

落地数字化管理,提升企业市场竞争力

数字化企业管理方案是一种利用数字技术和信息系统来提升企业管理效率和运营效果的策略。 潜在的数字化企业管理方案 1、企业资源规划(ERP)系统:建立一个集成的ERP系统来统一管理企业的各项业务流程,包括采购、销售、库存管理、财…

计算机网络(6) --- https协议

计算机网络(5) --- http协议_哈里沃克的博客-CSDN博客http协议https://blog.csdn.net/m0_63488627/article/details/132089130?spm1001.2014.3001.5501 目录 1.HTTPS的出现 1.HTTPS协议介绍 2.补充概念 1.加密 1.解释 2.原因 3.加密方式 对称加…

IntelliJ IDEA 如何优雅的添加文档注释(附详细图解)

IntelliJ IDEA 如何优雅的添加文档注释(附详细图解) 📌提要✍✍类注释✍✍方法注释 📌提要 在开发过程中,最常用的注释有两种:类注释和方法注释,分别是为类和方法添加作者、日期、版本号、描述等…

GNSS基本原理

大家都知道,GNSS卫星之所以能够对地球上的终端(例如手机、汽车、轮船、飞机等)进行定位,依靠的是三维坐标系。 找至少4颗卫星,分别计算各个卫星与终端之间的距离△L(这个距离也被称为“伪距”)&…

电脑免费修改IP地址详解

在如今高度网络化的时代,因为或这或那的原因,产生了修改电脑IP地址的需求。了解如何修改电脑的IP地址可以帮助我们实现目的。本文将为大家详细讲解电脑修改IP地址的步骤和操作技巧,希望能帮助大家轻松掌握。 IP地址(Internet Prot…

谈谈网络安全

目录 1.概念 2.发展现状 3.主要问题 1.概念 网络安全是指保护计算机网络和其中的数据免受未经授权访问、损坏、窃取或破坏的过程和技术。网络安全涉及预防和检测潜在的威胁和漏洞,并采取措施保护网络的机密性、完整性和可用性。 网络安全的概念包括以下几个方面&am…

Spring Boot集成Mybatis-Plus

Spring Boot集成Mybatis-Plus 1. pom.xml导包 <!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--mysql驱动--><dependency><groupId>mysql<…

DSV-080-2NCP-N-MM两位两通常闭先导式电磁阀

该插装阀具有正向关断作用&#xff0c;设计用于负荷保持状态。 动作状况 断电时&#xff0c;DSV -080-2NCP-*-M*为止回阀&#xff0c;允许介质从1到2&#xff0c;同时阻止介质从2到1。 通电时&#xff0c;提升阀提升&#xff0c;打开从 2到1的通通道。 手动关闭选择:按下按…

轻量化YOLOv5改进 | 结合repghost结构冲参数化网络,实现轻量化和加速推理,

RepGhost: A Hardware-Efficient Ghost Module via Re-parameterization 论文总结本文改进repghost 核心代码测试参数量和计算量🔥🔥🔥 “引入RepGhostNet以加速CNN网络推理” “网络宽度的自定义调整:无缝嵌入YOLOv5” “通过结构重参数化优化网络性能” “实现高效和…