編譯器是否爲公共成員函數和私有成員函數分配了不同的內存區域,或者它們是否分配在同一個內存區域中?在哪裏分配(即堆,堆棧...)?成員函數的Java內存分配
我的意思是說,OOP的概念就像濫用成員函數只是在編寫代碼時和之後纔有限......我的意思是在編譯爲字節碼後,在內存表示中沒有不同,因此如果我是地方錯..
編譯器是否爲公共成員函數和私有成員函數分配了不同的內存區域,或者它們是否分配在同一個內存區域中?在哪裏分配(即堆,堆棧...)?成員函數的Java內存分配
我的意思是說,OOP的概念就像濫用成員函數只是在編寫代碼時和之後纔有限......我的意思是在編譯爲字節碼後,在內存表示中沒有不同,因此如果我是地方錯..
在Java成員函數存儲在堆棧
實例變量,對象存儲在堆
局部變量保存在棧
-1:有關函數被存儲在堆棧上的部分是無稽之談;那有什麼意思? –
的類/方法或任何其它meta-data
存儲由JVM中稱爲區域:Non-Heap Memory
對象,包括實例/類成員變量期間在堆運行時間被存儲。
其他兩個答案中的混淆會上升,因爲方法成員存儲在堆棧中,當函數在框架中運行時,一旦方法完成就會被銷燬。
方法區域是堆區域的一部分..方法區域在邏輯上是堆的一部分,但Java虛擬機實現可能選擇不進行垃圾收集或壓縮。 – user2632528
我不這麼認爲:http://javapapers.com/core-java/java-jvm-memory-types/ – alfasin
感謝您的鏈接.. – user2632528
這是一個奇怪的問題。你真的*試圖理解什麼? – jason
從存儲的角度來看,公共功能與私人功能沒有區別。 –
沒有區別。實例變量及其指向的對象存儲在堆中。 – Bnrdo