程序运行时,对象是怎么放置的,内存是怎么分配的?下面是笔记
有五个不同的地方可以存储数据:
1、寄存器 这是最快的存储区,因为它位于处理器内部,但寄存器的数量及其有限,寄存器根据需求分配,不能直接对它控制。
2、堆栈 位于通用RAM(随机访问存储器)中,通过堆栈指针可以从处理器那里得到支持,但Java对象并不存储于其中。
3、堆 一种通用内存池也位于RAM 区,用于存放所有Java对象,堆不同于栈的好处是:编译器不知道存储的数据在堆中存活多久,所以堆中进行存储分配和清 理要比栈中分配清理的时间要长
4、常量存储 常量值通常直接存储在程序代码内部
5、非RAM存储 如果数据完全存活于程序之外,在程序不运行时可以存在
|