java内存分区 jdk1.7之前
来源:互联网 发布:西蒙网络面板接线图 编辑:程序博客网 时间:2024/06/08 17:50
1、堆
基本所有对象都在堆上被创建,而对象的声明在栈中,它存着堆上的引用。例如 Object object = new Object();
object为对象的声明,存在虚拟机栈里面,新建的object对象存在于堆上面,包括类的成员变量。
2、虚拟机栈
虚拟机栈是线程私有的,不会出现线程安全问题,在sun公司提供的hotspot中和本地方法栈为一个栈,每次调用方法需要执行一个Frame(帧栈)的入栈到出栈的过程,每一个栈帧都有自己的局部变量表、操作数栈和指向当前方法所属的类的堆上对象的引用。
3、本地方法栈
和虚拟机栈是一样的,只是里面执行的是jvm本地方法,申明为native的方法。
4、程序计数器
记录了每一个线程当前执行的代码行,线程私有的。
5、方法区(非堆)
jdk7版本:存的是类型信息,包括class被加载后的类名,属性,方法,静态变量等
jdk8版本:移除永久代,相当于吧方法区变成了放在元空间中进行类的加载,静态成员变量和常量池移动至java堆中。
6、常量池(方法区里面)
存的是final的值,常量,就是在编译的时候就已经确定的值。
7、关于线程安全问题
阅读全文
0 0
- java内存分区 jdk1.7之前
- java内存分区
- Java虚拟机内存分区
- java中的内存分区
- Java内存分区
- Java内存分区
- JAVA内存分区
- java-jvm-内存分区
- java虚拟机内存分区
- Java内存分区
- 02 Java 并发 JDK1.5之前的多线程
- java虚拟机的内存分区
- Java内存区域划分、内存分配原理(基于jdk1.7 源自 《深入理解java虚拟机》)
- 把之前安装的jdk1.7换成1.6之后在dos命令Java -version 死活1.7问题解决
- Java内存管理(一)--内存分区
- 切换java-javac jdk1.7-jdk1.6
- java jdk1.7与jdk1.8 区别
- java jdk1.7 search
- Mybatis学习笔记(十八)【spring和mybatis整合】
- 算法导论读后感-之同时查找最大数与最小数
- vim最简约配置
- 回顾去哪儿的这些年,最让我骄傲的是收获了这9点管理心得
- 让eclipse支持C++11特性
- java内存分区 jdk1.7之前
- 编程实现简单的计算器功能
- 微信公众号推送模板消息
- C语言:可变参数编程
- 深度优先搜索和广度优先搜索
- Android Systrace
- MongoDB基本管理命令
- 我们来聊聊String、StringBuffer与StringBuilder
- Android下利用ToolBar+SearchView实现仿微信搜索框效果