堆、栈、方法区
[b]堆存对象的[/b],是动态分配的,被所有线程共享的
[b]栈是存放基本类型的变量和对象的引用变量[/b]。
1、每个线程包括一个栈区,每个栈中数据是私有,其他栈不能访问到。
2、栈分为三个部分:局部变量区、栈帧信息、操作指令区。
3、方法执行时候生成栈,确定栈空间大小,栈以帧为单位,每个方法就是一个帧,压栈出栈。存在栈中的数据可以共享。
方法区:被所有线程共享,[b]存储方法的元数据、类的元数据、常量等[/b]
不错的两篇关于java内存分配的文章
http://xiebh.iteye.com/blog/132748
http://www.blogjava.net/mlzry0612/articles/223420.html
[b]堆存对象的[/b],是动态分配的,被所有线程共享的
[b]栈是存放基本类型的变量和对象的引用变量[/b]。
1、每个线程包括一个栈区,每个栈中数据是私有,其他栈不能访问到。
2、栈分为三个部分:局部变量区、栈帧信息、操作指令区。
3、方法执行时候生成栈,确定栈空间大小,栈以帧为单位,每个方法就是一个帧,压栈出栈。存在栈中的数据可以共享。
方法区:被所有线程共享,[b]存储方法的元数据、类的元数据、常量等[/b]
不错的两篇关于java内存分配的文章
http://xiebh.iteye.com/blog/132748
http://www.blogjava.net/mlzry0612/articles/223420.html