摘自 Think in java
1、寄存器 这是最快的存储区,它位于处理器的内部,不能人为控制。
2、堆栈 位于RAM,但可以通过堆栈指针从处理器那里获取直接支持。堆栈指针向下移动,就分配新的内存,向上移动,则释放那些内存。这种方式分配内存快速有效,仅次于寄存器。
所以java必须知道存储在堆栈内所有对象的确切生命周期。对象引用 和 基本数据类型会放到堆栈中。
3、堆 一种通过的内存池,也位于RAM。用于存放所有的java对象。堆和堆栈的区别就在于编译器不需要知道数据在堆中存活的时间,但这使得存储分配和清理需要更多的时间。
4、常量存储 常量值通常可以直接放在程序代码内部,这样是安全的。有时,在嵌入式系统中,常量本身会放到ROM(只读存储器中)。
5、非RAM存储 数据可以完全存活与程序之外。基本的例子就是流对象和持久化对象。 其中基于RAM的对象,Java提供了对轻量级持久化的支持,JDBC和Hibernate提供了更加复杂的对在数据库中的对象信息的支持。
时间: 2024-10-25 06:52:40