java的内存可分为3个区(area):堆(heap)、栈(stack)和方法区(method)
		堆区中存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到数据执行指令。个人理解)
		栈区:每个线程包含一个栈区,栈中只保存原始类型数据和对象和对象引用(不是对象),对象都存放在堆区中
		每个栈中的数据(原始类型和对象引用)都是私用的,其他栈能访问。
		栈分为3个部分:变量区、执行环境上下文、操作指令区(存放操作指令)。
		jvm只有一个堆区(heap)被所有线程共享,堆中不存放原始类型和对象引用,只存放数据
		方法区(method area):又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。
		个人理解:方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量,程序在运行期间只加载一次
		 
		另外还可以把java内存分为动态区和静态区
		
				
						
								|  堆空间  (类实例)                                                                   
   都是动态产生,动态回收                                                          所以叫"动态区"  | 
						
						
								|   类(指令代码)、静态变量等 
 (不重复的,在整个应用程序中是唯一的)       所以叫"静态区"  | 
						
				
		
		
	posted on 2006-12-22 09:07 
comchyi 阅读(137) 
评论(0)  编辑  收藏