随笔-0  评论-2  文章-61  trackbacks-0

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 阅读(131) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: