JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)
1堆(heap)
存储的全部是对象,new 出来的放到堆中。每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)
jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用。
2栈(stack)
一个线程一个栈,栈中只保存原始类型数据和对象和对象引用
每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。
栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。
3方法区(method) 也叫静态区
被所有的线程共享。方法区包含所有的class和static变量。整个程序中永远唯一的元素