任何语言所编写的程序,其中的各类型的数据都需要一个存储位置,Java中数据的存储位置分为以下5种:
1.寄存器
这是最快的存储区域,因为它位于处理器内部,但是数量非常的有限。所以寄存器根据需求自动进行分配,不能直接人为控制。
2.栈内存
位于通用RAM当中,通过堆栈指针可以从处理器获得直接支持。堆栈指针向下移动,则分配新的内存;向上移动,则释放那些内存。这种存储方式速度仅次于寄存器。
3.堆内存
一种通用的内存池,也位于RAM当中,用于存放所有的JAVA对象,其中存放的数据由JVM自动进行管理。
4.常量池
常量通常直接存储在程序代码内部(常量池)。这样做是很安全的,因为它们的值在初始化时就已经被确定,并且不会被改变。常量池在java用于保存在编译期已确定的,已编译的class文件中的一份数据。
5.非RAM存储区
如果数据完全存活于程序之外的话,那么它可以不受程序的任何控制,在程序没有运行时也可以存在。