**栈空间:**栈空间一般是拿来存储局部变量,对象的引用(一般是存储对象的地址值)
**堆空间:**堆空间一般存储的是对象,即为new出来的东西,包含成员变量等,数组也存在于堆空间
jdk 1.7以后加入了字符串常量池 ,1.7以前字符串常量池再方法区中
**方法区:**为static修饰的类,方法,变量,常量都在这;所以常量的存储在方法区,有个区域被称为常量池;
还有就是运行时常量池也在这个区域(所谓运行时常量池就是当一个.java文件被编译为.class文件经过加载器加载,经过验证准备解释等阶段被加载进内存中,存储在运行时常量池内,所以说每种类只有一份。从这里就可以联想到反射机制)
*
***