关于Java中数据对象的存储位置,直接引用《Thinking in java》中的介绍。如下:
1.寄存器。快速存储区。java中不能直接控制或感知此区域。但是C和C++可以建议程序对寄存器的分配方式,尤其是C语言,可以直接对寄存器进行部分操作。
2.堆栈。RAM。存储java中的对象引用和基本数据类型,但不存储java对象。程序直接通过对堆栈的操作进行线程或进程的运行。
3.堆。存储所有java对象。java中的静态变量和java方法一样存储于方法区(静态区),而方法区既可以在堆上又可以在栈上(非java栈)。
4.常量存储。常量值直接放在代码内部。
5.非RAM存储。存储流对象(java IO)和持久化对象(JDBC Hibernate)。