堆栈和堆
堆栈位于RAM(随机访问存储器) 可以通过堆栈指针来获取系统的支持 读取速度仅次于寄存器(位于处理器内部) 程序在创建的时候 java系统必须知道存储在堆栈内所有项的确切生命周期以方便上下移动指针 特别是对象引用 就处于堆栈中
堆 也是位于RAM中 和堆栈的区别在于 里面存储的是java对象 并且在存储的时候 java系统不需要知道里面的对象的生命周期 new一个对象的时候 自动在堆中进行内存分配 比堆栈灵活 但是在清理空间的时候也自然比堆栈慢上许多
常量 常量一般存储于程序的内部 以保证不会被改变
非RAM存储 数据完全存储在程序之外 所以不会受到程序的控制 在程序没有运行的时候也可以存在 最典型的两个就是 流对象和持久化对象 持久化对象存放于磁盘上 所以程序即使被终止 也可以保持自己的状态 所以有个技巧 把对象转化成其他媒介上 在需要的时候 可以恢复成常规的基于RAM的对象