欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java內(nèi)存分配多種情況的用法解析

 更新時(shí)間:2019年11月06日 09:35:40   作者:何去何從gw  
這篇文章主要介紹了Java內(nèi)存分配多種情況的用法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了Java內(nèi)存分配多種情況的用法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

Java內(nèi)存五大區(qū)

棧:用于保存函數(shù)內(nèi)部的局部變量,函數(shù)形參,一旦超出作用域,就刪除

堆:凡是new出來的東西都是存放在堆里,也可以說可變對(duì)象(非基本數(shù)據(jù)類型)都是保存在這里面。

堆里面的東西,都有一個(gè)內(nèi)存(16進(jìn)制),棧中存放的就是這個(gè)16進(jìn)制的內(nèi)存值。

堆里面存放的東西都用默認(rèn)值:

整數(shù):默認(rèn)值0

浮點(diǎn)數(shù):默認(rèn)0.0

布爾:默認(rèn)false

字符:默認(rèn)'\u0000‘

引用:默認(rèn)null  

本地方法棧:與操作系統(tǒng)有關(guān)

方法區(qū):存儲(chǔ).class相關(guān)信息,包含方法的信息

寄存器:與CPU相關(guān)

堆中存的是對(duì)象。棧中存的是基本數(shù)據(jù)類型和堆中對(duì)象的引用。一個(gè)對(duì)象的大小是不可估計(jì)的,或者說是可以動(dòng)態(tài)變化的,但是在棧中,一個(gè)對(duì)象只對(duì)應(yīng)了一個(gè)4btye的引用(堆棧分離的好處:))。

為什么不把基本類型放堆中呢?因?yàn)槠湔加玫目臻g一般是1~8個(gè)字節(jié)——需要空間比較少,而且因?yàn)槭腔绢愋停圆粫?huì)出現(xiàn)動(dòng)態(tài)增長(zhǎng)的情況——長(zhǎng)度固定,因此棧中存儲(chǔ)就夠了,如果把他存在堆中是沒有什么意義的(還會(huì)浪費(fèi)空間,后面說明)。可以這么說,基本類型和對(duì)象的引用都是存放在棧中,而且都是幾個(gè)字節(jié)的一個(gè)數(shù),因此在程序運(yùn)行時(shí),他們的處理方式是統(tǒng)一的。

引用數(shù)據(jù)類型因?yàn)榇笮〔还潭?,所以?huì)存在堆內(nèi)存中,棧內(nèi)存中存的是堆內(nèi)存的地址,每次讀取值時(shí),先找到棧內(nèi)存中的內(nèi)存地址,在通過內(nèi)存地址,找到在堆內(nèi)存中的對(duì)應(yīng)的對(duì)象。

棧內(nèi)存和堆內(nèi)存的關(guān)系圖示

堆:程序員向操作系統(tǒng)申請(qǐng)一塊內(nèi)存,當(dāng)系統(tǒng)收到程序的申請(qǐng)時(shí),會(huì)遍歷一個(gè)記錄空閑內(nèi)存地址的鏈表,尋找第一個(gè)空間大于所申請(qǐng)空間的堆結(jié)點(diǎn),然后將該結(jié)點(diǎn)從空閑結(jié)點(diǎn)鏈表中刪除,并將該結(jié)點(diǎn)的空間分配給程序。分配的速度較慢,地址不連續(xù),容易碎片化。此外,由程序員申請(qǐng),同時(shí)也必須由程序員負(fù)責(zé)銷毀,否則則導(dǎo)致內(nèi)存泄露。

棧:由程序自動(dòng)向操作系統(tǒng)申請(qǐng)分配以及回收,速度快,使用方便,但程序員無法控制。若分配失敗,則提示棧溢出錯(cuò)誤。注意,const局部變量也儲(chǔ)存在棧區(qū)內(nèi),棧區(qū)向地址減小的方向增長(zhǎng)。

內(nèi)存泄漏:我們申請(qǐng)了一塊內(nèi)存空間,在使用完后,沒有即使釋放。它的一般表現(xiàn)方式是程序運(yùn)行時(shí)間越長(zhǎng),占用內(nèi)存越多,最終用盡全部?jī)?nèi)存,整個(gè)系統(tǒng)崩潰。由程序申請(qǐng)的一塊內(nèi)存,且沒有任何一個(gè)指針指向它,那么這塊內(nèi)存就泄露了。

內(nèi)存泄漏解決辦法:良好的編碼習(xí)慣,使用了內(nèi)存分配的函數(shù),一旦使用完畢,要記得要使用其相應(yīng)的函數(shù)釋放掉。malloc和delete搭配使用,new和free搭配使用

調(diào)用對(duì)象,內(nèi)存分配情況

調(diào)用兩個(gè)對(duì)象,內(nèi)存分配情況

對(duì)象作為返回值

static變量

繼承

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java 對(duì)象參數(shù)去空格方式代碼實(shí)例

    java 對(duì)象參數(shù)去空格方式代碼實(shí)例

    這篇文章主要介紹了java 對(duì)象參數(shù)去空格方式代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • java實(shí)戰(zhàn)案例之用戶注冊(cè)并發(fā)送郵件激活/發(fā)送郵件驗(yàn)證碼

    java實(shí)戰(zhàn)案例之用戶注冊(cè)并發(fā)送郵件激活/發(fā)送郵件驗(yàn)證碼

    現(xiàn)在很多的網(wǎng)站都提供有用戶注冊(cè)功能,當(dāng)我們注冊(cè)成功之后就會(huì)收到封注冊(cè)網(wǎng)站的郵件,郵件里包含了我們的注冊(cè)的用戶名和密碼及激活賬戶的超鏈接等信息,這篇文章主要給大家介紹了關(guān)于java實(shí)戰(zhàn)案例之用戶注冊(cè)并發(fā)送郵件激活/發(fā)送郵件驗(yàn)證碼的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • Java中的static關(guān)鍵字全面解析

    Java中的static關(guān)鍵字全面解析

    這篇文章主要介紹了Java中的static關(guān)鍵字全面解析的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • 一文搞懂Spring AOP的五大通知類型

    一文搞懂Spring AOP的五大通知類型

    本文將詳細(xì)為大家介紹Spring AOP的五種通知類型(前置通知、后置通知、返回通知、異常通知、環(huán)繞通知),感興趣的朋友可以了解一下
    2022-06-06
  • Java中的OkHttpClient 工具類

    Java中的OkHttpClient 工具類

    這篇文章主要介紹了Java中的OkHttpClient工具類,具有很好的參考價(jià)值,希望杜大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • java方法重載示例

    java方法重載示例

    方法重載是以統(tǒng)一的方式處理不同數(shù)據(jù)類型的一種手段,這篇文章主要介紹了java方法重載示例,需要的朋友可以參考下
    2014-03-03
  • Mybatis中使用萬能的Map傳參實(shí)現(xiàn)

    Mybatis中使用萬能的Map傳參實(shí)現(xiàn)

    在編程中,有可能遇到我們的實(shí)體類或者數(shù)據(jù)庫(kù)中表的字段或參數(shù)過多的情況,那這時(shí)候用Map傳參是比較理想的選擇,本文就詳細(xì)的介紹一下如何使用,感興趣的可以了解下
    2021-07-07
  • 在eclipse中使用SVN的方法(圖文)

    在eclipse中使用SVN的方法(圖文)

    這篇文章主要介紹了在eclipse中使用SVN的方法(圖文),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • idea perttier的使用和縮進(jìn)改為4不成功問題及解決

    idea perttier的使用和縮進(jìn)改為4不成功問題及解決

    這篇文章主要介紹了idea perttier的使用和縮進(jìn)改為4不成功問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java簡(jiǎn)單工廠模式定義與用法實(shí)例分析

    Java簡(jiǎn)單工廠模式定義與用法實(shí)例分析

    這篇文章主要介紹了Java簡(jiǎn)單工廠模式定義與用法,結(jié)合實(shí)例形式分析了java簡(jiǎn)單工廠模式的相關(guān)定義與使用技巧,并給出了原理類圖進(jìn)行總結(jié),需要的朋友可以參考下
    2019-07-07

最新評(píng)論