真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java中內(nèi)存分配的情況有哪些

本篇文章給大家分享的是有關(guān)Java中內(nèi)存分配的情況有哪些,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

成都創(chuàng)新互聯(lián)公司技術(shù)團(tuán)隊(duì)10余年來(lái)致力于為客戶(hù)提供成都做網(wǎng)站、網(wǎng)站建設(shè)、高端網(wǎng)站設(shè)計(jì)、全網(wǎng)整合營(yíng)銷(xiāo)推廣、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過(guò)多年發(fā)展,公司擁有經(jīng)驗(yàn)豐富的技術(shù)團(tuán)隊(duì),先后服務(wù)、推廣了上千余家網(wǎng)站,包括各類(lèi)中小企業(yè)、企事單位、高校等機(jī)構(gòu)單位。

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

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

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

堆里面的東西,都有一個(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ù)類(lèi)型和堆中對(duì)象的引用。一個(gè)對(duì)象的大小是不可估計(jì)的,或者說(shuō)是可以動(dòng)態(tài)變化的,但是在棧中,一個(gè)對(duì)象只對(duì)應(yīng)了一個(gè)4btye的引用(堆棧分離的好處:))。

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

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

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

Java中內(nèi)存分配的情況有哪些

堆:程序員向操作系統(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é)銷(xiāo)毀,否則則導(dǎo)致內(nèi)存泄露。

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

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

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

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

Java中內(nèi)存分配的情況有哪些

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

Java中內(nèi)存分配的情況有哪些

對(duì)象作為返回值

Java中內(nèi)存分配的情況有哪些

static變量

Java中內(nèi)存分配的情況有哪些

繼承

Java中內(nèi)存分配的情況有哪些

以上就是Java中內(nèi)存分配的情況有哪些,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


文章名稱(chēng):Java中內(nèi)存分配的情況有哪些
鏈接地址:http://weahome.cn/article/gocphs.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部