6种数据的保存


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


有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的对象






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值