1. 程式人生 > >解釋記憶體中的棧(stack)、堆(heap)和靜態儲存區的用法。

解釋記憶體中的棧(stack)、堆(heap)和靜態儲存區的用法。

String str = new String(“hello”);
答:通常我們定義一個基本資料型別的變數,一個物件的引用,還有就是函式呼叫的現場儲存都使用記憶體中的棧空間;而通過new關鍵字和構造器建立的物件放在堆空間;程式中的字面量(literal)如直接書寫的100、“hello”和常量都是放在靜態儲存區中。棧空間操作最快但是也很小,通常大量的物件都是放在堆空間,整個記憶體包括 硬碟上的虛擬記憶體都可以被當成堆空間來使用。
上面的語句中 str 放在棧上,用 new 創建出來的字串物件放在堆上,而“hello”這個字面量放在靜態儲存區。