java 中的堆栈
java程序在运行时,在内存中划分了5片区域进行数据存储,分别是:
- 堆(1. 实例化对象及数组是存放在堆中的,用完之后靠垃圾回收机制不定期回收 2. jvm只有一个堆区并被所有线程共享,不存放基本数据类型和对象引用,只存放对象本身,几乎所有的实例化对象和数组都在堆中分配)
- 栈(1. 每个线程都包括一个栈区,局部变量和对象的引用都是放在栈中,用完就消失 2. 每个栈的数据都是私有的,其它栈不能访问 3. 栈分为三部分:基本类型变量区,执行环境上下文,操作指令区)
- 方法区(1. 又叫静态区,被所有线程共享 2. 存储类信息,静态变量等)
- 本地方法栈
- 寄存器
