【JVM】.class文件如何在JVM中运行的?

news2025/1/11 9:10:26

一、先认识JVM的组成

java虚拟机整体包括:类加载系统运行时数据区执行引擎垃圾回收器

 (1)方法区线程共享,存储Class信息、常量、静态变量等等;

        jdk1.6~1.7时称为永久代,存储常量、Class信息等;

        jdk1.8时称为元空间,只存Class信息。

(2)堆区线程共享,分配实例对象。jdk1.7后字符串也存在堆中。

(3)虚拟机栈:线程私有(与线程同寿),每个方法都对应一个栈帧,方法中的操作等都在栈帧中进行。存储信息如下:

(4)本地方法栈:线程私有,存储native修饰的方法信息;

(5)程序计数器:线程私有,记录指令执行的位置。

二、.class文件的运行过程

(1)【类加载子系统】将.class文件转化成二进制字节流,并加载到运行时数据区(.class信息存在【方法区】);

(2)【执行引擎】从main()方法开始执行代码,【程序计数器】记录当前执行到哪一行;

(3)执行方法时,会在【虚拟机栈】中操作:将方法的变量依次存入栈帧中并根据操作进行出栈入栈等操作;

(4)如果方法中调用了本地方法,则会调用在【本地方法栈】中进行类似于步骤(3)的操作;

(5)如果方法中创建了对象,则对象一般会分配到【】上存储(此处指“一般”是因为有时jvm根据逃逸分析判断类可以被拆分时,会将类进行标量替换,并不会创建对象)。

(6)当堆上的对象不再使用时,【垃圾回收器】会清理堆上的对象的空间以备下次使用。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

js常见面试题整理

1:JavaScript 有哪些数据类型 答: JavaScript 的数据类型分为原始类型和对象类型。 原始类型有 7 种,分别是: BooleanNumberBigIntStringNullUndefinedSymbol 对象类型(也称引用类型)是一个泛称&#x…

vue3 中使用indexDb

1.indexDb.js const indexDB window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB; class IndexDBCache {// 构造函数constructor() {this._db null; //数据库this._transaction null; //事务this._request null;this._dbName "loginInfoDb"; …

API ‘variantOutput.getPackageLibrary()‘已过时的解决方法

一个发布到maven central的android库项目,为了方便管理,在build.gradle文件中加入了打包处理的一段脚本: //生成aarlibraryVariants.all { variant ->def name "library-${versionMajor}.${versionMinor}.${versionPatch}.aar"…

VUE 3.0 + NGINX + Hls.js + OBS -- 直播推拉流、流视频播放

🛴🛴前言: 该 Demo 基于 OBS推流 Nginx Vue 3.0 Nplayer.js hls.js ,目的只是实现流媒体播放,以及简易推拉流直播。 文章目录 前端组件 NPlayer.js安装 nplayer.js 流视频播放页面元素初始化播放器清晰度控件样式…

D*算法详解 (D星算法 / Dynamic A*算法/ Dstar算法)(死循环解决)

所需先验知识(没有也无大碍,只是了解的话会对D*的理解有帮助):A*算法/ Dijkstra算法 何为D*算法 Dijkstra算法是无启发的寻找图中两节点的最短连接路径的算法,A*算法则是在Dijkstra算法的基础上加入了启发函数h(x)&am…

js正则中的match()

在前端开发中,正则表达式是一大利器。所以我们这次就来讨论下match()方法。 match本身是JavaScript语言中字符串对象的一个方法,该方法的签名是 match([string] | [RegExp]) 它的参数既可以是一个字符串,也可以是一个正则表达式。该方法绝…

windows 达梦数据库服务连接时提示:登录服务器失败,错误号6001,错误消息:网络通信异常 之数据库服务不存在的处理方式

在windows客户端上连接部署在windows操作系统上的达梦数据库, 使用DM管理工具连接数据库 正确输入用户名与密码之后点击确定按钮之后出现: 登录服务器失败,错误号6001,错误消息:网络通信异常 现象 如下图所示&#…

银行从业资格证 个人理财 各种年金计算公式总结

变量说明: C C C :每期投入的现金流 r r r:利率(收益率/贴现率) n n n :计息期数; F V FV FV:终值 P V PV PV:现值 推导计算过程用到等比数列求和公式 S n a 1 ∗ 1 −…

【算法训练(day7)】区间和并,离散化数组模板

目录 一.区间和并 二 .离散化数组 一.区间和并 问题:给定 n个区间 [li,ri],要求合并所有有交集的区间。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。例如:[1,3][1,3] 和 [2,6][2,6] 可以合并为一个区间 [1,6][1…

htmlCSS-----CSS介绍与样式书写

目录 前言: 1. CSS是什么 2. CSS书写样式 (1)行内样式 (2)内部样式 3.外部样式 4.三者之间的比较 前言: 前面我们学习了HTML的相关标签和框架写法,那我们在了解这些标签用法了之后就要学会怎么去通过相关方法来使得界面美化处理&#xf…

06 Redis分布式锁

常见面试问题 Redis除了拿来做缓存,你还见过基于Redis的什么用法?Redis 做分布式锁的时候有需要注意的问题?如果是 Redis 是单点部署的,会带来什么问题?那你准备怎么解决单点问题呢?集群模式下&#xff0c…

LeetCode刷题集(七)(2315.统计星号)

😦学习目标:拿下LeetCode2315.统计星号题目 😤 学完本章节知识即可掌握本题! 学习内容:LeetCode2315.统计星号 😤题目:给你一个字符串 s ,每 两个 连续竖线 ‘|’ 为 一对 。换言之&…

知识图谱涉及技术点分析

文章目录 数据从哪里来为什么通常将知识图谱划分到NLP领域?常用NLP技术点分析只是NLP任务吗?graph embedding知识融合业务还是算法?知识图谱组成 数据从哪里来 是手动提取关系吗?数据很多,关系确难涉及大量NLP技术关系…

Ansible基础五——条件语句、循环语句、handlers、任务失败处理

文章目录 一、 循环语句1.1 单量循环1.2 多量循环1.3 老版本用法1.4 loopregister 二、条件判断2.1 根据变量状态判断2.2 根据变量是否存在判断2.3 根据事实判断2.4 多条件判断2.4.1 and用法2.4.2 or用法 2.5 循环判断2.6 根据上个任务结果判断 三、handlers处理程序四、任务失…

5月《中国数据库行业分析报告》正式发布,首发时序、实时数据库两大【全球产业图谱】

为了帮助大家及时了解中国数据库行业发展现状、梳理当前数据库市场环境和产品生态等情况,从2022年4月起,墨天轮社区行业分析研究团队出品将持续每月为大家推出最新《中国数据库行业分析报告》,持续传播数据技术知识、努力促进技术创新与行业生…

ubuntu20安装xrdp以及解决黑屏问题

1、安装xrdp sudo apt-get install xrdp 2、将xrdp用户加入到如下用户组 sudo adduser xrdp ssl-cert 3、重启xrdp sudo service xrdp restart 4、打开windows远程面,连接,如果出现黑屏 sudo -s sudo vim /etc/xrdp/startwm.sh 加入如下内容&#xff…

攻防世界-web-Web_php_unserialize

1. 题目描述:查看以下代码,获取flag 2. 思路分析 从代码中不难看出,这里共有三个地方需要绕过 2.1 __wakeup函数:若在对象的魔法函数中存在的__wakeup方法,那么之后再调用 unserilize() 方法进行反序列化之前则会先…

数据分析概述

数据分析概述 数据的性质数据的概念数据与信息的区别和联系 数据的类型按照度量尺度分按时间状况分 什么是数据分析数据分析的重要性数据分析的内容数据分析作用 数据分析的基本流程典型的数据分析的流程 数据分析方法对比分析法分组分析法定量数据分布分析——具体事例 结构分…

上海亚商投顾:沪指高开高走 地产股迎来久违反弹

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 三大指数今日高开高走,沪指午后涨近1%,深成指、创业板指涨超1.2%,上证50盘中大…

惠更斯定理和格林定理

惠更斯原理和格林定理 惠更斯原理显示了表面上的波场如何决定表面 S S S外的波场。惠更斯在17世纪启发性地表达了这一概念。但这个想法的数学表达是由于19世纪的乔治格林。这一概念可以在数学上表达为标量波和矢量波。矢量波情形的推导与标量波情形是同态的。但是标量波情况下…