版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35002313/article/details/81071268
有五个不同的地方可以存储数据对象
1.寄存器
这是最快的存储区,来源于处理器内部,但是(寄存器的数量极其有限),不能直接控制,也不可以感觉到寄存器存在的任何迹象
2.堆栈
String str="hello";
随机访问存储器,但通过堆栈指针可以直接从处理器获得支持 ,指针往下移动分配新的内存,往上移动,则释放那些内存.Java程序必须知道存储再堆栈内所有对象引用的确切声明周期, 但是Java对象并不存在于其中
3.堆
String str=new String();
通用的内存池, 用来存储所有的Java对象 ,与堆栈内存不同的是,堆内存不用知道数据在堆里存活的时间, 在堆内存分配器中具有较强的灵活性,当需要一个对象时,使用new一个对象,坏处就是用堆内存存储和清理可能比用堆栈内存分配需要更多的时间
4.常量存储
常量值通常直接存放在程序代码内部
5.非RAM存储
如果程序完全存活于程序之外,它可以不受程序的任何控制