Java学习:001 数据存储的位置
数据存储的位置
有5个地方
寄存器
最快的存储区-->处理器内部。
但寄存器的数量极其有限,所以寄存器根据需求进行分配(Java),(C、C++允许向编译器建议寄存器的分配方式),
堆栈
位于通用RAM(随机访问存储器),这是一种快速有效的分配存储的方法,仅次于寄存器。Java系统必须知道存储在堆栈内的所有项的确切生命周期,以便于上下移动堆栈指针。(堆栈指针,向下移动,分配新的内存,向上移动,释放内存)。
堆
一种通用的内存池(也位于ARM区),用于存放所有的JAVA对象。编译器不需要知道存储的数据在堆里存活多长时间,因此,在堆里分配存储有很大的灵活性,但,用堆进行存储分批和清理可能比用堆栈进行存储分配需要更多的时间
常量存储
通常直接存放在程序代码内部
非RAM存储
如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时,也可以存在。其中两个基本的例子是流对象和持久化对象。在流对象中,对象转化为字节流,通常被发送给另一台机器。在持久化对象中,对象被存放于磁盘上,因此,即使程序终止,它们仍可以保持自己的状态。这种存储方式的技巧在于:把对象转化成可以存放在其它媒介上的事物,在需要时,可以恢复成常规的,基于RAM的对象。Java提供了对轻量级持久化的支持,而诸如JDBC和Hibernate这样的机制,提供了更加复杂的堆在数据库中存储和读取对象信息的支持
我看的旧书,不知道是否过时
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具