java 棧和堆區(qū)別詳細介紹
java 棧和堆區(qū)別
1, 垃圾回收機制僅僅作用于堆內存,與棧內存無關;
2, 棧:stack 棧的存取速度比堆快,效率高 保存局部變量和對象的引用值
3, 堆:保存較大的變量
4, 棧有一個很重要的特殊性,就是存在棧中的數據可以共享
編譯器處理int a = 3 時,首先會在棧中創(chuàng)建一個變量為a的引用,然后查找棧中是否存在3這個值,如果不存在,就將3存放進來;
處理b = 3時,也是這樣,因為之前將3存放進來了,所以此時編譯器只需將創(chuàng)建b這個變量再指向3就行了(有利于節(jié)省空間)。
這個時候就出現a和b同時指向3的情況,但不影響他們的使用。如果此時又定義a = 4;,則需將4存放進內存,由a指向4,a值的修改不會影響到b值。
內存的劃分: 1,寄存器。 2,本地方法區(qū)。 3,方法區(qū)。 4,棧內存。 存儲的都是局部變量。 而且變量所屬的作用域一旦結束,該變量就自動釋放。 5,堆內存。 存儲是數組和對象(其實數組就是對象) 凡是new建立在堆中。 特點: 1,每一個實體都有首地址值。 2,堆內存中的每一個變量都有默認初始化值,根據類型的不同而不同。整數是0,小數0.0或者0.0f,boolean false char '\u0000' 3,垃圾回收機制。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
Spring Boot使用AOP在指定方法執(zhí)行完后執(zhí)行異步處理操作
這篇文章主要介紹了Spring Boot使用AOP在指定方法執(zhí)行完后執(zhí)行異步處理操作,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2024-06-06
MyBatisPlus-QueryWrapper多條件查詢及修改方式
這篇文章主要介紹了MyBatisPlus-QueryWrapper多條件查詢及修改方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
java基于Apache FTP點斷續(xù)傳的文件上傳和下載
本篇文章主要介紹了java基于Apache FTP點斷續(xù)傳的文件上傳和下載,利用FTP實現文件的上傳和下載,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2016-11-11
如何解決通過spring-boot-maven-plugin package失敗問題
這篇文章主要介紹了如何解決通過spring-boot-maven-plugin package失敗問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04

