摘要: 1、對象的存儲:Java中所有對象的存儲空間都是在堆中分配的,但是這個對象的引用卻是在堆棧中分配,也就是說在建立一個對象時從兩個地方都分配內存,在堆中分配的內存實際建立這個對象,而在堆棧中分配的內存只是一個指向這個堆對象的指針(引用)而已。堆的特點是靈活性,但為此犧牲了高效性,可以在運行時動態地分配存儲;堆棧的特點是高效性,但缺乏靈活性,在編譯時刻必須知道所要分配的空間大小。堆像個大饅頭,可以根據你的食量隨便吃,吃飽了算;堆棧像是吃大鍋飯,每個人都是定食定量的,你必須告訴廚子你的飯量,廚子據此做飯,然后你們就排隊打飯吧。它們沒有孰優孰劣之分,各自不同特點有不同的應用。
閱讀全文