內(nèi)存中的棧(stack)、堆(heap)和靜態(tài)區(qū)(static area)的用法

通常我們定義一個基本數(shù)據(jù)類型的變量,一個對象的引用,還有就是函數(shù)調(diào)用的現(xiàn)場保存都使用內(nèi)存中的??臻g;而通過new關(guān)鍵字和構(gòu)造器創(chuàng)建的對象放在堆空間;程序中的字面量(literal)如直接書寫的100、"hello"和常量都是放在靜態(tài)區(qū)中。??臻g操作起來最快但是棧很小,通常大量的對象都是放在堆空間,理論上整個內(nèi)存沒有被其他進程使用的空間甚至硬盤上的虛擬內(nèi)存都可以被當(dāng)成堆空間來使用。

String str = new String("hello");

上面的語句中變量str放在棧上,用new創(chuàng)建出來的字符串對象放在堆上,而"hello"這個字面量放在靜態(tài)區(qū)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 通常我們定義一個基本數(shù)據(jù)類型的變量,一個對象的引用,還有就是函數(shù)調(diào)用的現(xiàn)場保存都使用內(nèi)存中的棧空間;而通過new關(guān)...
    Alex_1799閱讀 836評論 0 1
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,834評論 18 399
  • 在函數(shù)中定義的一些基本類型的變量和對象的引用變量都在函數(shù)的棧內(nèi)存中分配。 當(dāng)在一段代碼塊定義一個變量時,Java就...
    木有魚丸啦閱讀 646評論 0 0
  • 有些人有文字情結(jié),有作家的夢想;有些人每天就想著寫點什么,并不為什么;有些人迫于工作需要,必須寫點什么;還有些人怕...
    藍錦2017閱讀 156評論 0 6
  • 有人這樣評論:在《紅樓夢》中,寶釵乍看小氣,實則大氣;貌似任性,實則聰慧;文藝不假,精明也是妥妥的。寶釵的性格勝在...
    健的XUYU閱讀 387評論 1 0

友情鏈接更多精彩內(nèi)容