对象的存储在java中分为以下几个类型:
1)寄存器:这里是核心的存储空间。我们是没有办法操作的。
2)栈stack:这里的存取速度快,效率高,但是要求被存储的数据大小和存活时间具有限制,使用弹性小。一般存取的都是对象的句柄,而真正意义上的对象是不存在这里的。句柄说白了就是对象的引用。
3)堆heap:这里是真正意义上的存储空间。这里比栈好在编译器不需要知道在堆中的存储数据的大小。也不知道这个空间需要分配多长时间,弹性好。所以用来存储对象。但是速度要比栈慢很多。
4)静态存储空间static storege:这里是存放被声明为static的特定成员。java对象本身是不会分配在这里的。
5)常量的存储空间:这里存放的是程序中的常量,常量值不会改变,最安全。
6)non-ram:流或者持久化对象。