数据存在哪里Java

计算机中可以存放数据的地方有:内存,硬盘,寄存器。

 

Registers:速度最快的存储场所。因为寄存器位于处理器内部,这一点和其他类的存储媒介都不一样。由于寄存器数量有限,所以编译器会根据本身需求适当的分配寄存器来使用。

 

内存上的数据区域:

Stack:堆栈位于一般的RAM中。处理器器经由其指针(stack pointer)提供直接支持。当程序分配一块新的内存时,statck指针便往后移;释放内存时,指针则往前移回。这种方式不仅很快,效率也高,速度仅次于寄存器。对象的引用存放在stack内,但不能将一般的Java对象也置于其上。

 

Heap:heap是一种通用性质的内存存储空间,用来放置所有的Java对象。Heap胜于Stack之处在于,编译器不需要知道究竟得从heap中分配多少空间,不不要知道从heap上分配的空间究竟需要存在多久。因此,从heap分配存储空间可以获得高度的弹性。从heap分配空间,比从stack分配所耗得时间多了不少。

 

static storage:静态存储空间。静态,指的是在固定位置上。静态存储空间存放着“程序执行期间”一直存在的数据。

 

Constant storage:常量会被置于程序代码里头。因为常量是不会改变的,所以也是安全的。有时常量会和外界隔离开来,所以也可以放到只读内存中。

 

硬盘:

如果数据完全存活于程序之外,那么即使程序不执行,数据也能够继续存在,脱离程序的控制。streamed objects(串流化对象)和persistent objects(持久性对象)便是主要的两个例子。在streamed objects形式中,对象被转换为一连串的bytes。这些bytes通常用来传送到另一部机器。在persistent objects的形式中,对象被存储于磁盘,所以即使程序结束了,这些对象的状态还能够继续保有。此类存储空间的特点在于,他们能够将对象转换为可存储于其他媒介的形式,并在必要的时候将所存储的数据还原成可以存储于RAM中的一般对象。Java提供了所谓“轻量级持久性”。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值