【Java】JVM(一)、Java内存区域
2024-10-13 00:51:20
一、程序计数器(Program Counter Register)
当前执行字节码的行号指示器,可以通过修改该计数器的值来实现字节码指令(分支,循环,跳转等), 每个线程都都有一个程序计数器, 属于线程的私有变量, 独立存储, 互不影响。
ps. 如果当前执行的是Java方法,该计数器记录的事正在执行的指令地址。如果当前执行的事Native方法(本地方法,与平台有关,由于Java无法访问操作系统的底层信息,所以需要借助C语言,移植平台时候需要重写)该计数器为空。
二、Java虚拟机栈(VM Stack)
和计数器一样属于线程私有的, 主要存储临时变量,每个Java方法执行过程时会创建一个栈帧(虚拟机栈中的一个变量), 存储运行时产生的临时变量,(局部变量,操组数栈、动态链接、方法出口), 一个方法从开始到结束对应虚拟机栈中的一次入栈和出栈的过程。
三、本地方法栈(Native Method Stack)
本地方法栈为虚拟机中用到的Native方法服务。
四、Java堆(Java Heap)
存放对象实例,是所有线程共享的区域。
五、方法区(Method Area)
各个线程共享的内存区域,主要存储(虚拟机加载的类信息,常量、即时编译器编译后的代码等数据)
六、运行时常量池(Runtime Constant Pool)
常量符号的存储
最新文章
- SQL server 常用语句
- iOS学习之iOS沙盒(sandbox)机制和文件操作(二)
- 视频分享:过五关斩六将——我要做IT面霸!
- postgrel 调试
- IE兼容性问题列表及解决办法
- Java API —— Date类
- 尝试设计LFSR加密器,并用CAP4验证随机性
- Contest 20140708 testA &;&; testC
- 一步一步学数据结构之n--n(Prim算法)
- HDU Exponentiation 1063 Java大数题解
- Mac下使用charles遇到的问题以及解决办法
- FTP文件上传到HDFS上
- 创建您的 ActiveReports Web端在线报表设计器
- LayUI左侧菜单无法保持选中状态
- Entity Framework 自动生成代码 如何用继承
- Minieye杯第十五届华中科技大学程序设计邀请赛网络赛 部分题目
- python 批量替换文件名
- 软件架构设计学习总结(18):MVC三层架构在各框架(jsp+servlet + Struts1+ Struts2+ springMVC)中的特征
- Linux内核分析(第四周)
- hdu2087 剪花布条 暴力/KMP