java存储 简析

本文介绍了Java运行时内存的管理方式,包括寄存器、栈、堆等存储区域的特点及用途,以及常量和非RAM存储的概念。重点阐述了不同存储区在程序执行过程中的角色及其对性能的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:说明

java运行期间所有内容都存储在电脑上,并在不同阶段,将不同代码由磁盘导入内存并执行。那么我们就有必要知道电脑的存储大体是怎么分配的,在程序运行到某个阶段,我们哪些内容是放在磁盘上的,哪些内容是加载在内存的哪个地方的。本文目前仅简单介绍内存的分类

二:存储的几个地方

1.寄存器:

寄存器是最快的存储区,他位于处理器内部,根据需求进行分配,java不能控制寄存器存储的分配方式

2.栈:

位于RAM中,通过堆栈指针从处理器那里获取直接有效的支持,效率仅次于寄存器。由于编译器需要知道知道栈内的所有项的确切生命周期以便于分配和释放内存,因此灵活性受限制,所以一般仅用于存放对象引用

3.堆:

位于RAM中,用于存放所有java对象,灵活性比较高。new创建的对象一般创建在堆中,当然存储分配和清理效率较栈低

4.常量:

一般存在于程序代码内部。在嵌入式系统中,因为常量会和其他部分分隔开,所以一般会选择存放在ROM中

5.非RAM存储:

完全存活于程序之外的数据如:持久化对象(磁盘)和流对象(字节流文件)。实际工作中一般用jdbc,hibernate,mybatis等完成持久化交互工作。

三:小结

java代码一般按需分批载入内存执行,持久化对象(数据库)中有部分对象(如游标)也会被分配在内存中执行。内存执行速度快于磁盘,但需要很好的控制内存使用避免内存泄漏。数据库数据存放在磁盘中,读写数据库慢于直接读写磁盘慢于内存读写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值