jvm内存分区及各区线程问题
2024-08-24 03:28:33
一.java内存模型图
二.直观分类图
三.各区简单描述
1.堆(heap):主要存放对象的实例也包括数组,是垃圾管理的主要作用区,是线程共享的
2.栈(stack):①虚拟机栈:描述的是 Java 方法执行的内存模型,每个方法在执行的同时会创建一个 Stack Frame (方法运行时的基础数据结构)用于存储局部变量表、操
作数栈、动态连接、方法出口等信息;是线程隔离的
②本地方法栈:本地方法栈和虚拟机栈非常相似,只不过本地方法栈是为Java使用到的Native方法服务的
3.方法区(Method Area):被虚拟机加载的类信息、静态(static)变量,常量(final),即时编译器编译后的代码等数据。运行常量池是方法区的一部分,class文件除了有类
的版本、字段、接口、方法等描述信息之外,还有一项信息常量池保存编译期生成的字面量和符号引用。 线程之间共享的
4.程序计数器(PC):是一块较小的内存空间,是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取 下一条需要执行的字节
码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。(是线程隔离的)
综合有:堆和方法区是线程共享的,栈和程序计数器是线程隔离的
最新文章
- Apache限制某个目录下的PHP文件没有执行权限
- 基础篇-Windows消息机制
- 修改 timezone
- Android Mms 接收信息流程
- 利用手上的UI资源(附免费UI工具包)
- python 数据类型之数值型
- oldboy s21day10
- 如何导出chrome已安装的拓展程序
- 【转】linux下查看磁盘分区的文件系统格式
- 即时消息服务框架(iMSF)应用实例之分布式事务三阶段提交协议的实现
- nginx 下 php 无法执行,虚拟主机 无法使用
- 第一个react
- Hessian 源码简单分析
- bug提单规范
- Jquery回到顶部功能
- [转]使用自定义HttpMessageConverter对返回内容进行加密
- Logback 学习笔记
- 2016-2017-2 20155339 《Java面向对象程序设计》实验三敏捷开发与XP实践实验报告
- Java多线程下单例
- 日志工具——slf4j