读书会第十二期】《深入理解Java虚拟机》 第1章 Java虚拟机内存管理

网友投稿 592 2022-05-29

运行时数据区域

如图所示主要分为两栈、一区、一堆、一计数器

两栈:虚拟机栈、本地方法栈

虚拟机栈

线程私有,java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。

本地方法栈

本地方法栈与虚拟机栈的作用非常相似,虚拟机栈为执行java方法服务,本地方法栈为虚拟机中使用到的Native方法服务。

一区:方法区

所有线程共享,用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

一堆:堆

内存最大,所有线程共享

一计数器:程序计数器

可以看作是当前线程所执行的字节码行号指示器

举例说明:

虚拟机对象

对象的创建

【读书会第十二期】《深入理解Java虚拟机》 第1章 Java虚拟机内存管理

平时遇到的Exceptions(内存溢出)

栈溢出

堆溢出

堆外溢出

Java 虚拟化

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【高并发】为什么局部变量是线程安全的?
下一篇:SpringCloud系列:Zuul上传文件,中文文件名乱码解决办法
相关文章