日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
堆棧溢出和內(nèi)存泄漏的區(qū)別?(什么是StackOverflowError)

堆棧溢出和內(nèi)存泄漏的區(qū)別?

棧溢出

創(chuàng)新互聯(lián)主營(yíng)銀海網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都App制作,銀海h5成都微信小程序搭建,銀海網(wǎng)站營(yíng)銷推廣歡迎銀海等地區(qū)企業(yè)咨詢

Java的內(nèi)存結(jié)構(gòu)中,棧的大小不是無限的。大量的方法調(diào)用過程,導(dǎo)致不斷壓棧最終將棧內(nèi)存占滿,產(chǎn)生StackOverflowError錯(cuò)誤,程序直接終止運(yùn)行。
產(chǎn)生棧溢出的場(chǎng)景:比如不合理(遞歸太深)的遞歸調(diào)用。

內(nèi)存溢出

創(chuàng)建了大量線程、對(duì)象,導(dǎo)致垃圾回收器來不及回收,分配的堆內(nèi)存被占滿,產(chǎn)OutOfMemoryError錯(cuò)誤。
產(chǎn)生棧溢出的場(chǎng)景:比如死循環(huán)中創(chuàng)建對(duì)象。

內(nèi)存泄漏

當(dāng)很多對(duì)象使用之后已經(jīng)沒有再使用的必要而沒有置為null,導(dǎo)致垃圾回收器無法對(duì)其回收,造成內(nèi)存資源的大量浪費(fèi),給系統(tǒng)帶來很多不穩(wěn)定因素。

jvm工作原理是什么?

JVM中的內(nèi)存分為五個(gè)部分:

(1)方法區(qū):存儲(chǔ)加載的class字節(jié)碼,通過該區(qū)域我們能尋址到類中的方法的入口。除此之外,方法區(qū)還包括運(yùn)行時(shí)常量區(qū)和靜態(tài)常量區(qū)。這個(gè)區(qū)域是所有線程共享的。

(2)堆:存儲(chǔ)new出來的對(duì)象,垃圾回收器主要監(jiān)控和回收的就是這塊區(qū)域。在堆里面不斷創(chuàng)建對(duì)象但是垃圾回收器不回收,就有可能造成OutOfMemoryError錯(cuò)誤。這個(gè)區(qū)域也是線程共享的。

(3)虛擬機(jī)棧:存儲(chǔ)所有被調(diào)用的java方法的上下文。在main方法里面調(diào)用test方法,則在虛擬機(jī)棧里面push進(jìn)test方法上下文,調(diào)用完畢,則pop出test方法的上下文。倘若在main方法里面遞歸調(diào)用main方法,則虛擬機(jī)棧則會(huì)被消耗光資源,造成StackOverflowError錯(cuò)誤。這個(gè)區(qū)域是線程隔離的,也就是說每個(gè)線程都有一個(gè)虛擬機(jī)棧。

(4)本地方法棧:本地方法棧與虛擬機(jī)棧類似,只不過本地方法棧中存儲(chǔ)所有被調(diào)用的本地native方法的上下文。這個(gè)區(qū)域也是線程隔離的。

(5)程序計(jì)數(shù)器:存儲(chǔ)著CPU下一條指令的地址,也就是說記錄著現(xiàn)在程序執(zhí)行到了哪里,執(zhí)行到了那條語句,哪個(gè)指令。這個(gè)區(qū)域也是線程隔離的。

到此,以上就是小編對(duì)于什么是男人無力的行為的問題就介紹到這了,希望這2點(diǎn)解答對(duì)大家有用。


當(dāng)前題目:堆棧溢出和內(nèi)存泄漏的區(qū)別?(什么是StackOverflowError)
文章URL:http://m.5511xx.com/article/dheceip.html