JAVA内存存储数据的位置

有5个地方可以存储数据

1.寄存器

因为寄存器位于不同于其他存储区的地方—处理器内部,所以这是最快的存储区。正因为它的大小极其有限,所以它会按照需求分配,在程序中,你不能对它进行任何操作,甚至感受不到它的存在。

2.堆栈

堆栈位于RAM(随机访问存储器)中,通过堆栈指针来处理内存,堆栈指针向下移动,则分配新的内存,如果向上移动,则释放内存,这是一种快速有效的分配存储方式。
JAVA系统必须知道它们的确切生命周期,以便上下移动堆栈指针。所以这一个约束会限制程序的灵活性。所以一般会把对象引用放在堆栈,但是JAVA对象不会放在这里。

3.堆

位于RAM区,是一种通用的内存池,用于存放所有的JAVA对象,堆不同于堆栈的好处是:编译器不关心存储的数据会存活多长时间,你只需要new一个对象,会自动在堆中储存分配,不需要时自动销毁。但是由于动态分配内存都是在程序运行时进行的操作,所以牺牲了一定的时间效率。

4.常量储存

常量值会通常放在程序内部,不可改变,保证其封装性,通常他会被放在jvm的方法区中。

5.非RAM存储

一种是流,用于与设备和另一台机器的交互。
还有一种是持久化对象,放在磁盘上,不需要时将这种对象以某种方式转化为磁盘上的事物,需要用试再转化成对象。例如JDBC,Hibernete都提供了这样的支持,它们还进一步扩展,实现了更佳复杂的功能

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值