Java虚拟机
程序员老马0987
这个作者很懒,什么都没留下…
展开
-
堆
一个Java程序可以由多个class组成,每个class中创建的对象和数组都被放在堆中,实际上数组也是一个对象。 可以说堆中存储了Java程序中的所有对象。 堆的组成: (1) 句柄表 句柄表中存储了对象池中每一个对象的引用 (2) 对象池 存储了所有的对象 关系如下图:原创 2012-08-06 11:05:44 · 160 阅读 · 0 评论 -
方法区
方法区 方法区中存储了类的基本信息以及类的静态变量。 方法区中内容如下: (1) 类的名称(包名.类名) (2) 该类的父类 (3) 确定存储在方法区中的是一个类还是接口,用一个标志区分 (4) 该类或该接口的权限修饰符 (5) 常量池(这个类中的所有常量) (6) 变量信息(这个类中的所有成员变量名称,变量类型) (7原创 2012-07-30 13:27:24 · 1439 阅读 · 0 评论 -
Java栈
Java栈 当执行一个新线程的时候,Java虚拟机会为这个线程分配对应的Java栈,可以说Java栈就是这个线程的临时数据存储区,如果有多个方法那么将存在多个Java栈,这些Java栈与这些方法一一对应。 一个方法也是一个线程,无论是静态方法(static)还是成员方法,都可以看成一个线程。 Java栈的组成: Java栈由很多栈帧组成,每个栈帧中存储了这个方法的参数、返回值、方法中的变量原创 2012-09-04 09:48:45 · 236 阅读 · 0 评论 -
引用
引用 Java语言中包含3种引用: 1.符号引用 String str=new String(); str即为符号引用,当类装载器对class文件进行装载时,在解析阶段对符号引用进行转换,转换为直接引用。 2.直接引用 直接引用实际上就是指向了对象句柄表中的对应项,对象句柄表中存储了对象在内存中的物理地址以及直接地址之间的映射。 3.物理地址 物理地址存储在原创 2012-09-04 09:45:39 · 161 阅读 · 0 评论