本帖最后由 李健09 于 2013-7-25 09:23 编辑
堆区:
存储的全部是对象实例,在虚拟机启动时创建,一个堆区(heap)被所有线程共享,每个对象都包含一个与之对应的class的信息以便获得操作指令,堆中不存放基本类型和对象引用,只存放对象本身(实例)
栈区:
每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用指向,对象都存放在堆区中;每个栈中的数据(原始类型和对象引用)都是私有的,栈与栈之间不能访问.
栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。
方法区:(代码区,共享区)
又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class(类信息),static(静态变量)和常量,就是编译器编译后的代码,方法等语句
堆,对象的初始化-->把初始化的堆的地址给栈-->栈的基础数据,对象的引用指向,操作指令-->方法区,通过共享出来的方法执行操作指令
|