2.1 用引用操纵对象
你拥有一个引用,并不一定需要有一个对象与它关联。
2.2 储存位置
1.寄存器。位于CPU内部,速度最快,Java中不能直接控制。
2.堆栈。速度仅次于寄存器,用于储存对象引用和基本类型的值。Java系统必须知道堆栈内的项的生命周期,以便移动堆栈指针。
3.堆。用于存放所有的Java对象,编译器不需要知道堆里储存的数据的存活时间,因此比堆栈灵活性更高,同时,进行储存分配和清理需要更多时间。
4.常量储存。常量值通常存放在程序代码内部。
2.3 作用域
java对象不具备和基本类型一样的生命周期,当用new创建一个Java对象时,它可以存活于作用域之外。垃圾回收器会监视用new创建的所有对象,并辨别那些不会再被引用的对象,然后释放这些对象的内存空间。