《Thinking in Java》学习笔记(二)
————万事万物皆对象
作者:孤独萤火虫
对象与reference之间的关系,好比电视和遥控器之间的关系,只要手上握有遥控器,便可以操纵电视。假如你想在房间里走来走去,同时保有对电视的控制,只需要随身带着遥控器,不必背着沉重的电视。
有六个地方可存放数据:
1. 寄存器(Registers):位于处理器内部,速度最快的存储场所,程序员无法碰触,也不会在程序里感觉到它的存在。编译器会根据自身需求适当分配使用。
2. 栈(Stack):位于RAM中,速度仅次于寄存器,必须能够把握所存储数据的实际大小和存活时间。可以将reference存于stack内,但不能将一般对象置于其上。
3. 堆(Heap):也位于RAM中,比stack慢很多,用来置放所有Java对象。
4. 静态存储空间(Static storage):也位于RAM中,存放着程序执行期间一直存在的数据。可以使用要害字static将对象内的特定成员设为静态,但Java对象本身绝无可能置于其中。
5. 常量存储空间(Constant storage):可以放到ROM中,存放常量。
6. Non-RAM存储空间:即使程序不执行,数据也能够继续存在。如:串流化对象(streamed objects)和持久性对象(persistent objects)。Java提供了所谓的轻量级持久性(lightweight persistence)。