JVM内存结构---程序计数器,Java栈,堆,方法去,本地方法栈
2016-10-14 09:57
351 查看
程序计数器也叫PC寄存器,用于保存当前正常执行的程序的内存地址。 当A线程被中断时, 程序计数器会记录A线程被中断的内存地址。这样当A现场恢复执行时,就能从之前中断的指令地址,继续执行。
Java栈(JAVA虚拟机栈),它是和线程关联在一起的。 每当创建一个线程,JVM就会为这个线程创建一个对应的Java栈。 一个Java栈会包含有多个栈帧(Frames),这些栈帧是与java方法关联的,每运行一个java方法,就创建一个栈帧。 栈帧中会含有一些内部变量,操作栈和方法返回值等信息。
注意:由于Java栈是与Java线程对应起来的,所以Java栈中的数据线程独立的,所以我们不用关心同步的问题。 这就是为什么说,局部变量不存在线程不安全的问题的原因。
堆,用于存储Java对象,存储在堆中的对象,会复制所有非静态属性。堆是被所有Java线程所共享的,存在同步问题。
方法区,用于存储类结构信息。 常量池,域,方法数据,方法体,构造函数,包括类中的专用方法,实例初始化,接口初始化都存储在这个区域。 方法区是属于Java堆中的永久区。
本地方法栈,是为JVM运行Native方法准备的空间。
参考书籍: 《深入分析Java Web技术内幕》
相关文章推荐
- JVM6:Jvm程序计数器,Java栈,本地方法栈,本地方法接口
- JVM 内存基础概念之程序计数器与 Java 虚拟机栈和本地方法栈
- jvm内存模型中-栈,方法区,程序计数器是线程安全的
- 转:JAVA常见错误处理方法 和 JVM内存结构
- JVM内存结构,堆栈和方法区分别存储的内容
- JAVA常见错误处理方法 和 JVM内存结构
- [二]Java虚拟机 jvm内存结构 运行时数据内存 class文件与jvm内存结构的映射 jvm数据类型 虚拟机栈 方法区 堆 含义
- jvm_内存溢出_虚拟机栈和本地方法栈溢出
- 【自动内存管理机制】(1)Java内存区域(方法区、虚拟机栈、本地方法栈、堆、程序计数器)与内存溢出异常
- jsp内存数据下载到本地--弹出的文件保存框时 两次调用action中下载方法问题
- JVM内存结构分析
- 方法区(method) )、栈区(stack)和堆区(heap)之JVM 内存初学
- JVM内存状况查看方法和分析工具
- 详解JVM内存结构组成
- Java中的OutOfMemoryError和JVM内存结构
- JVM内存结构系列:HotSpot内存结构最清晰
- java jvm内存结构(回顾)
- Java中的OutOfMemoryError和JVM内存结构
- Android以最省内存的方式读取本地资源的方法
- JVM内存状况查看方法和分析工具