java常见存储空间

1,寄存器(Registers)

这是速度最快的存储场所,程序员不仅无法直接触碰寄存器,也没办法在程序里面感受到寄存器的存在

2,栈(Stack)

位于一般的RAM中,处理器经由stack pointer提供直接支持。当程序分配一块新的内容的时候,stack指针便往后移。释放内存的时候,指针就往前移回。由于JAVA编译器有责任产生这种“将stack指针前后移动”的代码,所以它必须掌握程序中“存在stack指针中所有数据的大小和存活时间”。由于这个限制,尽管我们可以将preference存放在stack中,但是却不能将一般的对象存放在stack中。

3,堆(Heap)

Heap是一种通用性质的内存存储空间(也存在与RAM++),用来置放所有的java对象,Heap胜过Stack之处是,编译器不需要知道从Heap分配的空间需要多大,也不需要知道空间存活时间,因此,heap分配内存有高度的弹性。当需要产生对象的时候,只需在程序中new,那么执行的时候,便会自动heap分配空间。

4,静态存储空间(Static storage)

静态指的是“在固定位置上”(也是在RAM中),中间存放着“程序执行期间”一直存在的数据。可以用static关键字,将对象内的某个特定成员设为静态,但是java对象本身是不可能在静态区中,

5,常量存储空间(Constant storage)

常量值不会变,所以是安全的。也可以放到只读内存ROM中,

6,Non-RAM存储空间

没有见过

猜你喜欢

转载自blog.csdn.net/sinat_38430122/article/details/82922942