当程序在运行时,对象是怎么进行安排的呢?特别是内存是怎么分配的?下面简单的总结一下:
(1)寄存器。这是最快的存储区,位于处理器内部。但是寄存器的数量是有限的,它是根据需求进行分配的。
(2)堆栈。位于通用的RAM中,创建程序时,Java系统必须知道存储在堆栈的所有的确切的生命周期,以便上下移动堆栈指针。
(3)堆。一种通用的内存池,用于存放所有的Java对象。
(4)常量存储。通常直接存放在程序代码内部。这样做是安全的,因为他们不会被改变。
(5)非RAM存储。如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时也可以存在。其中两个基本的例子是流对象和持久化对象。在流对象中,对象转换成字节流,通常被发送到另一台机器。在“持久化对象”中,对象被存放于磁盘上,因此即使程序结束,它们仍可以保持自己的状态。
|
|