寄存器
最快的存储区,数量有限,不能直接控制。
堆栈
通过堆栈指针可以从处理器那里获得直接支持。堆栈指针若向下移动,则分配那些内存;若向上移动,则释放那些内存。创建程序时,Java系统必须要知道存储在堆栈内所有项的确切生命周期,以便上下移动堆栈指针。仅存放对象的引用,不存放Java对象。
堆
存放所有的Java对象,不需要知道存储的数据在堆里存活多上时间。当执行创建对象的代码时,会自动在堆里进行存储分配。用堆进行分配和清理可能比用堆栈进行存储分配需要更多的时间。
常量存储
常量在程序代码内部。
非RAM存储
如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时也可以存在。流对象和持久化对象。
特例-基本类型
基本类型对象小、简单,存放在堆栈内,更加高效。