学习JVM:内存划分
2014-10-04 00:19
162 查看
JVM内存划分:
程序计数器+java栈+java堆+本地方法栈+方法区
程序计数器:每个线程都有自己的程序计数器,记录当前运行的字节码地址,运行本地方法时为Null;线程切换时保存改状态以便切回来时能继续执行
java栈:java栈存放局部变量,对象引用,returnAddress类型(指向一条字节码地址),栈帧(方法的信息);方法运行时会创建栈帧,栈帧包括局部变量表、操作栈、动态链接(对独立文件的引用)、方法出口;方法完成时栈帧出栈。
局部变量表在编译后确定大小,保持不变。
java堆:存放对象实例,但并不等同于对象实例全部放在java堆中:JVM有标量替换(将复杂对象分解成多个基本对象(可看作标量)并跟踪其状态)等优化过程。
方法区:存放类型信息,静态变量,常量池
本地方法栈:和java栈类似,但服务于本地方法。
程序计数器+java栈+java堆+本地方法栈+方法区
程序计数器:每个线程都有自己的程序计数器,记录当前运行的字节码地址,运行本地方法时为Null;线程切换时保存改状态以便切回来时能继续执行
java栈:java栈存放局部变量,对象引用,returnAddress类型(指向一条字节码地址),栈帧(方法的信息);方法运行时会创建栈帧,栈帧包括局部变量表、操作栈、动态链接(对独立文件的引用)、方法出口;方法完成时栈帧出栈。
局部变量表在编译后确定大小,保持不变。
java堆:存放对象实例,但并不等同于对象实例全部放在java堆中:JVM有标量替换(将复杂对象分解成多个基本对象(可看作标量)并跟踪其状态)等优化过程。
方法区:存放类型信息,静态变量,常量池
本地方法栈:和java栈类似,但服务于本地方法。
相关文章推荐
- JVM学习01——Java内存区域划分及内存溢出
- JVM内存大小设置[JAVA学习笔记]
- JVM 深入笔记(1)内存区域是如何划分的?
- jvm 内存整理 -----学习
- java学习之路--static,this,代码块,内存的划分等--java实战经典第五章
- JVM内存划分
- JVM学习笔记(1、 基本结构;2、Java代码编译和执行的整个过程3、内存管理和垃圾回收 4、 内存调优 )
- JVM学习---JAVA内存
- JVM学习笔记-内存溢出
- 方法javaJVM学习笔记-内存处理
- JVM内存结构学习整理
- JVM 深入笔记(1)内存区域是如何划分的
- JAVA深入学习之浅析JVM 内存
- JVM学习之:内存的分配以及回收
- jvm内存JVM学习笔记-引用(Reference)机制
- JVM 深入笔记(1)内存区域是如何划分的?
- 【原创】通过 jstat -gcutil 来学习JVM 内存分配策略与 GC 发生时机
- 深入学习JVM内存设置原理和调优
- JVM学习之-JVM内存结构
- JVM学习---JAVA内存