每个运行中的 程序,每一个线程都有它自己的 . 寄存器,也是该线程启动时创建的。.
寄存器的内容总是指向下一条将被执行指令的地址9,这里的地址可以是一个本地指针,也可以
是在方法区中相对应于该方法起始指令的偏移量。
Native method stack
对于一个运行中的 程序而言,它还能会用到一些跟本地方法相关的数据区。当某个线程调
用一个本地方法时,它就进入了一个全新的并且不再受虚拟机限制的世界。本地方法可以通过
本地方法接口来访问虚拟机的运行时数据区,不止与此,它还可以做任何它想做的事情。比如,
可以调用寄存器,或在操作系统中分配内存等。总之,本地方法具有和 ! 相同的能力和权限。
这里出现 ! 无法控制的内存溢出问题 "!/
CLASSLOADER
的可执行文件不同于 <AA, 编译器只产生中间字节码文件 文件,由
虚拟机()解释执行。 发布的程序(, 包)也多半是一堆 文件,
运行时由 加载到 虚拟机中执行。 是 虚拟机的主要组成
部分,由 语言编写,用户可以实现自定义的 来完成特定的功能。下面我们
用例子说明 。
! 规范定义了两种类型的 :(" 和 CB#
。
! 在运行时会产生三个 0("、
和 ,""。(" 是用 AA编写的,我们在 中看不到它,是 +是
! 自带的类装载器,用来装载核心类库,如 D等。,"" 的 . 是
,而 的 . 为 ("。
JAVA GARBAGE COLLECTION
垃圾分代回收算法(1)
基于对对象生命周期分析后得出的垃圾回收算法。把对象分为年青代、年老代、持久代,对不
同生命周期的对象使用不同的算法(上述方式中的一个)进行回收。现在的垃圾回收器(从
E&:E 开始)都是使用此算法的。
4
评论0
最新资源