一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 淺談java內存管理與內存溢出異常

淺談java內存管理與內存溢出異常

2021-01-21 12:11Wilange Java教程

下面小編就為大家帶來一篇淺談java內存管理與內存溢出異常。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

說到內存管理,筆者這里想先比較一下java與c、c++之間的區別:

在c、c++中,內存管理是由程序員負責的,也就是說程序員既要完成繁重的代碼編寫工作又要時常考慮到系統內存的維護

在java中,程序員無需考慮內存的控制和維護,而是交由jvm自動管理,這樣就不容易出現內存泄漏和溢出的問題。然而,一旦出現內存泄漏和溢出方面的問題,如果不了解jvm的內存管理機制就很難找到錯誤所在。

1.jvm運行時數據區

jvm在運行java程序的時候會將它所管理的內存劃分為若干個不同的區域,這些區域不僅有自己的用途,還有創建和銷毀的時間。一般來說包含以下幾個運行時數據區:

淺談java內存管理與內存溢出異常

其中的橙色區域是各個線程私有的,即每個線程都會有自己的一份,而綠色區域是各個線程共享的。

2.java對象的創建

淺談java內存管理與內存溢出異常

類加載檢查

當jvm掃描到new關鍵字時,首先會去檢查這個指令的參數是否能夠在常量池中定位到一個類的符號引用,并且檢查這個類的符號引用代表的類是否已被加載、解析和初始化過。如果沒有,就必須先執行相應的類加載過程。

內存分配

當類加載檢查通過后,jvm需要為新生對象分配內存,即是把一塊確定大小的內存從java堆中劃分出來。常用的劃分方法有兩種:指針碰撞(要求堆內存絕對規整)、空閑列表(堆內存并不規整)。

內存初始化

jvm需要將分配到的內存空間都初始化為零值(不包括對象頭),這就保證了對象的實例字段在java代碼中可以不賦初始值就直接使用,也就是說程序能夠訪問到這些字段的數據類型所對應的零值。

對象初始化

執行<init>方法,將對象按照程序員的意愿進行初始化。

3.對象的訪問定位

對象創建好了,我們還希望能夠快速的訪問到這些對象,這就需要jvm棧上的reference(引用)數據來找到堆中的具體對象,而目前使用最多的訪問方式有“句柄方式”和“直接指針”兩種。

使用句柄方式訪問的話,就需要在堆中劃分一部分內存來作為句柄池,reference變量中存儲的就是對象的句柄地址,而句柄中包含了對象實例數據和類型數據各自的具體地址信息。

淺談java內存管理與內存溢出異常

使用直接指針訪問的話,reference變量中存儲的直接就是對象地址,但是需要考慮如何放置類型數據的相關信息。

淺談java內存管理與內存溢出異常

4.內存溢出異常

jvm運行時數據區除了pc寄存器之外,其他的內存區域都有可能發生內存溢出的異常情況。pc寄存器是唯一一個在jvm規范中沒有規定任何outofmemoryerror(oom)情況的區域

堆溢出

java中的堆用于存儲對象實例,如果不斷地創建對象,并且保證gc roots到對象之間有可達路徑以避免gc的回收處理,那么在對象的數量達到最大堆的容量限制后就會發生堆溢出的異常情況。

棧溢出(包括jvm棧和本地方法棧)

1.如果線程請求的棧深度大于jvm所允許的最大深度,將拋出stackoverflowerror異常;

2.如果jvm在擴展棧時無法申請到足夠的內存空間,將拋出outofmemoryerror異常。

此外,還有方法區溢出、常量池溢出、本機內存溢出等等。

以上這篇淺談java內存管理與內存溢出異常就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/Wilange/archive/2017/10/17/7654964.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 美女靠逼动漫 | 亚洲色大成网站www久久九九 | 国产福利免费看 | 男男gaygays黑人 | 欧美视频一区二区三区四区 | 精品欧美日韩一区二区三区 | 午夜神器老司机高清无码 | 天天狠天天透天干天天怕处 | 国产美女屁股直流白浆视频无遮挡 | 天天综合天天综合 | 国语刺激对白勾搭视频在线观看 | 亚洲第一区在线观看 | 91gmail国产 | 四虎精品成人免费影视 | 动漫美女被吸乳羞羞小说 | 国产成人免费片在线观看 | 免费人成在线观看视频播放 | 女仆色网址 | 欧美三级一区 | 午夜欧美精品久久久久久久 | 免费看日产一区二区三区 | 国产欧美精品一区二区三区 | 亚洲天堂中文字幕 | 顶级尤物极品女神福利视频 | 国产婷婷成人久久av免费高清 | 慢慢娇淫 | 国产在线伊人 | 天堂网www在线中文天堂 | 久久91精品国产91 | 日韩美女强理论片 | 暖暖视频日本 | 欧美黑人性猛交╳xx╳动态图 | 爱情岛永久成人免费网站 | 色综合天天综合网看在线影院 | 日韩精品一区二区三区毛片 | 久久er99热精品一区二区 | 国产午夜久久精品 | juliaann主妇疯狂 | freehd182d动漫| 福利视频一区二区三区 | 国产精品毛片高清在线完整版 |