JVM基本知识——运行空间

JVM(**Java Virtual Machine)**即Java虚拟机,是负责读取java字节码,并在实际的硬件环境中运行。

JVM可以分为三部分:类装载器(ClassLoader)子系统、内存空间、执行引擎

内存空间(运行时数据区)

方法区和堆是线程共享的

本地方法栈:保存执行方法信息,执行java方法是使用栈,native方法使用本地方法栈

方法区:存储被虚拟机加载的类信息、常量、静态变量。1.7的永久代和1.8的元空间都是方法区的实现

虚拟机栈:存储局部变量表,线程私有,线程每执行一个方法就会在栈中创建一个栈阵,调用方法执行入栈、方法返回执行出栈

堆:堆是内存最大的一部分,存储着所有对象的实例,为对象分配内存。是垃圾回收的主要区域。堆在物理存储上是不连续的,但是在逻辑上是连续的

程序计数器:记录方法执行的jvm指令地址(native方法则为空,因为用c,不需要编译),

相关推荐
weixin_444012935 小时前
c++如何将std--vector直接DUMP到二进制文件_指针地址直写【附代码】
jvm·数据库·python
woxihuan1234566 小时前
Go语言中--=运算符详解:位右移赋值操作的原理与应用
jvm·数据库·python
m0_690825826 小时前
如何备份被破坏的数据表_强制跳过错误的导出尝试
jvm·数据库·python
m0_733565467 小时前
JavaScript中Reflect-ownKeys获取所有键名的优势
jvm·数据库·python
2301_815901978 小时前
C#怎么使用协变和逆变 C#泛型中的in和out关键字协变逆变是什么意思怎么用【语法】
jvm·数据库·python
m0_463672208 小时前
SQL优化SQL关联查询中的排序字段_减少临时空间占用与内存开销
jvm·数据库·python
iuvtsrt8 小时前
存储过程如何处理海量数据的批处理_循环提交与分段LIMIT结合
jvm·数据库·python
yexuhgu8 小时前
SQL如何检查字符串是否存在:INSTR与LOCATE函数使用
jvm·数据库·python
2301_783848658 小时前
SQL如何用SQL子查询实现关联报表生成_嵌套逻辑关联多表
jvm·数据库·python
2501_901006479 小时前
Golang怎么用gRPC Gateway_Golang gRPC Gateway教程【经典】
jvm·数据库·python