Java 数据存储

Java 的数据有六种存储位置:寄存器区、栈区、堆区、静态存储区、常量存储区、非RAM存储区

为什么 Java 数据存储有这么多种方式?统一用一种方式不更简单吗?

大家应该都去过书店或图书馆,里面的书都是按照一定的类别摆放的,相同类别的书放在一起,目的是便于查找。Java 的数据存储也是这样的,将相同类别的数据存放在同一个区中,这样就提高了数据的存储效率。

寄存器区

这是最快的存储区,因为它是直接放在处理器(CPU)内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象

栈区

简称栈,位于内存中,速度仅次于寄存器区,用于存放局部变量、函数参数、当前状态和函数调用信息等

堆区

位于内存中,用于存放所有用 new 创建的 Java 对象

静态存储区

位于内存中,用于永久存放所有用 static 关键字标识的变量

常量存储区

位于内存中,用于存放常量

非RAM存储区

位于硬盘中,用于保存和传送数据,如 Java 的流对象或持久化对象

注意:所有 Java 对象都存放在堆区中,引用对象变量存放在栈区中
posted @ 2020-08-23 08:16  Binge-和时间做朋友  阅读(121)  评论(0编辑  收藏  举报