作者:孤獨螢火蟲
對象與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)。
新聞熱點
疑難解答