java实时数据存储_Java数据存储机制的实现

本文探讨了Java程序中数据存储的六个关键概念,包括寄存器、栈、堆、静态存储、常量存储和非RAM存储。重点介绍了栈的快速存取、堆的动态分配以及静态存储的共享特性,并通过示例解释了栈中数据共享的情况,如多个变量指向同一值。
摘要由CSDN通过智能技术生成

Java程序在执行时须要为一系列的值或者对象分配内存,这些值都存在什么地方?用什么样的数据结构存储?这些数据结构有什么特点?本文试图说明此命题的皮毛之皮毛。

概念

对于Java,有六个不同的、用于数据存储的概念。他们是:

1.寄存器( register),是最快的存储区。位于处理器内部。由于寄存器的数量极其有限,所以寄存器由编译器依据需求进行分配。程序猿无法使用Java代码使用寄存器中的存储空间。或者说:在Java开发的层面上。寄存器的操作已经被封装。

2.栈( stack),位于通用 RAM。

存取速度快,仅次于寄存器。栈指针若向下移动,则分配新的内存;若向上移动,则释放那些内存。

创建程序时候, JAVA 编译器必须知道存储在栈内全部数据的确切大小和生命周期,由于它必须生成对应的代码,以便上下移动栈指针,进而分配和释放内存。由于栈的这样的存储特性,所以某些数据存在栈中,比方对象引用和基础类型的变量值。可是有些数据是不适合存到栈中的。比方对象的实例。

3.堆( heap)。一个执行时数据区,位于 RAM。堆中的空间是动态分配的,所以,不须要知道数据的大小和生命周期。因此,在堆里存储数据有非常大的灵活性。

Java对象的实例和数组放在这里。堆中的过期对象由GC负责回收。

堆的存取速度较慢。

4.静态存储( static storage),RAM中一片固定的位置。存储静态数据,这些数据在程序中用statickeyword修饰。

5.常量存储( constant storage),常量值通常直接存放在程序代码内部,这样做是安全的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值