《Java编程思想》学习记录仪二 -- 2.2.1 java中存储域及特点(第二章一切都是对象)

来源:互联网 发布:金盛集团网络登录平台 编辑:程序博客网 时间:2024/05/16 00:51

程序运行时,对象的放置、内存的分配,主要涉及到五个不同的存储区域:


1)寄存器这是所有存储区域中最快的,因为他位于处理器内部。

但是寄存器数量有限,所以寄存器一般是根据需求进行分配的。Java中程序员不能直接控制(但是,C和C++允许程序员向编译器建议寄存器的分配方式)。

2)堆栈。位于RAM-- Random- Access Memory(随机访问存储器)中。

堆栈指针若向下移动,则分配新内存;向下移动,则释放内存。创建程序时,Java系统必须知道所有在堆栈中存储对象的生命周期,这一约束限制了程序的灵活性。因此Java设计者没有将Java对象存储域其中,只是将基本变量和引用变量存放于此。

3)一种通用的内存池(也位于RAM区)用于存放所有的Java对象

4)常量存储。常量值通常存储于程序代码中,十分安全。在嵌入式系统中,常量本身对和其他部分隔离,被存放入ROM(只读存储器)中

5)非RAM存储。即数据存活于程序之外,不受程序控制。比如:流对象持久化对象。在流对象中,对象转化成字节流,进行通信。在“持久化对象”中,对象呗存储于磁盘上。因此,Java提供了对轻量级持久化的支持。


总结:

堆中存放一切对象,栈中存放引用和基本变量 || 常量存储于代码 || 对象亦可被记录于其他媒介的事务上

0 0
原创粉丝点击