6种数据的保存

来源:互联网 发布:base64decoder 源码 编辑:程序博客网 时间:2024/05/29 09:14


程序运行时,对数据保存到哪儿要心中有数。


有6个地方可以保存数据:


1.寄存器

寄存器是CPU内的组成部分。

由于寄存器位于和其他所有保存方式不同的地方,所以他是最快的保存区域。

 寄存器的数量十分有限,所以他是根据需要由编译器来分配的,所以我们没啥控制权,也不可能在程序中找到他的踪迹。


2.堆栈 

(驻留于内存区域)

RAM ( random access memory )随机存取存储器。

是与CPU直接交换数据的内部存储器,也叫主存,内存。

读写速度快,常作为操作系统和程序的临时数据存储媒介。

可以通过堆栈指针来处理。

指针向下移,创建新的内存。指针向上移,释放旧的内存。

速度仅次于寄存器。

创建时,Java编译器必须准确的知道堆栈内保存数据的长度和存在的时间,这影响了程序的灵活性。

所以java对象不存在这,但是有些java数据,特别是对象句柄,要存在这里面。


3.堆(Heap)

也叫内存堆

一种常规用途的内存池,也在RAM区域,其中保存了java对象。

与堆栈不同,堆最吸引人的地方在于,编译器不必知道要从堆里分配多少内存,也不必知道存储的数据要在堆里存在多长时间

灵活性大。适合new对象。

在堆中分配空间需要花时间。


4.静态存储

static

位于固定位置,也在RAM里

程序运行期间,静态存储的数据将随时等候调用

可以用static关键字之处一个对象的特定元素是静态的。

但是java对象本身永远都不会置入静态存储空间


5.常数存储

常数一般直接置于程序代码内部。

这样做安全,因为永远不会变。

有的需要严格的保护,可以将他们当道只读存储器ROM中。


6.非RAM存储

完全独立于一个程序之外 -- 程序不运行的时候任然存在,并且在程序的控制范围之外。

比如:

流式对象 -- 字节流

固定对象 -- 保存在磁盘中

特点:能存在于其他媒体中。一旦需要,可以将他们恢复成普通的、基于RAM的对象






原创粉丝点击