java的堆栈
来源:互联网 发布:长春大学教务处软件 编辑:程序博客网 时间:2024/04/30 08:07
JAVA虚拟机(JVM)的内存可分为:堆、栈和方法区。
堆区:
1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。
2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身
栈区:
1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中
2.每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。
3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。
方法区:
1.又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。
2.方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。
int[] A = {1,2,3} int[] B = {4,5,6,7,8}
这个数组中A/B是对象引用放在方法的栈内存中,数组本身放在堆区,当A=B赋值,把B的地址赋值给A,A也指向B{1,2,3}这个数组没有任何引用对象指向,垃圾回收就会把这个空间回收。
每个方法都有自己的栈空间。
参考:http://blog.sina.com.cn/s/blog_65ca444f01011q14.html
0 0
- 关于JAVA的堆栈
- JAVA堆栈的区别
- JAVA堆栈的区别
- java 堆栈的区别
- Java的堆栈分析
- JAVA的堆栈详解
- JAVA的堆栈详解
- java 的堆栈
- JAVA堆栈的区别
- java 堆栈的区别
- JAVA堆栈的区别
- java 堆栈的区别
- java 堆栈的区别
- java 堆栈的区别
- java 堆栈的区别
- java的堆栈
- java 堆栈的区别
- java 堆栈的区别
- java csv 导入操作
- 计算主格扩展出来的所有奇数列的和
- 单例设计模式
- WebRTC学习之一:开篇
- 平凡而又神奇的贝叶斯方法
- java的堆栈
- SQLITE3的C接口
- css浮动事例
- u-boot常用命令详解(全)(MINI2440)
- 局域网中两台电脑共享键鼠:Synergy
- description编写规范
- 深入理解JAVA虚拟机——总结2:虚拟机类文件&类加载
- Adding 2D physics to your XNA Game Studio game
- 坑:Unity3d项目导出android后崩溃率高