中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java的內存溢出異常和內存區域介紹

發布時間:2020-05-25 14:14:58 來源:億速云 閱讀:279 作者:鴿子 欄目:編程語言

1.1  程序計數器

 

?  用途

每個線程都有一個程序計數器,用于記錄該線程當前所執行字節碼的行號。

natice方法由于不是java方法,因此當執行native方法時計數器為空。

?  創建時間

    線程啟動的同時

?  銷毀時間

    線程銷毀的同時

?  特點

線程私有,唯一一個java虛擬機規范中沒有規定OutOfMemeryError的內存區域。生命周期與線程相同。

 

1.2 虛擬機棧

 

?  用途:

每個方法執行的時都會創建一個棧幀用于存儲局部變量表(顧名思義,就是存儲該方法的局部變量對象的引用),操作數棧,動態鏈接,方法出口等信息。每一個方法從執行到完成就對應一個棧幀在虛擬機棧從入棧到出棧的過程。

?  創建時間:

線程啟動的同時

?  銷毀時間:

線程銷毀的同時

?  特點:

線程私有。每一個方法從執行到完成就對應一個棧幀在虛擬機棧從入棧到出棧的過程。虛擬機棧服務于java方法。

?  溢出異常:

    StackOverflowError:當線程請求的棧深度大于虛擬機所允許的深度時,拋出該異常。

 OutOfMemeoryError:如果虛擬機棧可以動態擴展,那么當動態擴展時無法申請到足夠的內存,就會拋出該異常。

?  內存大小設置方式:-Xss

    如-Xss256K: 就是設置每個線程的運行時棧的大小為 256K

    固定了棧內存大小后,當方法的局部變量表內容越多,棧幀越大,棧深度越小。

?  簡單的棧幀出入棧模型

Java的內存溢出異常和內存區域介紹Java的內存溢出異常和內存區域介紹

1.3 本地方法棧

?  用途:

    本地方法棧的作用與虛擬機棧的作用相似,但是本地方法棧是為虛擬機中使用到的Native方法服務的。

?  創建時間

    線程啟動的同時。

?  銷毀時間

    線程銷毀的同時。

?  特點:

    服務于Native方法。

?  溢出異常:

    StackOverflowError:當線程請求的棧深度大于虛擬機所允許的深度時,拋出該異常。

 OutOfMemeoryError:如果虛擬機棧可以動態擴展,那么當動態擴展時無法申請到足夠的內存,就會拋出該異常。

1.4 java

?  用途:

    用于存放對象。

?  創建時間:

    虛擬機啟動時。

?  銷毀時間:

    虛擬機銷毀時。

?  特點:

    1 各線程共享;

    2 是垃圾收集器管理的主要區域。java堆可以處于物理上不連續的內存空間,只要邏輯上是連續的即可。

?  溢出異常:

          OutOfMemeoryError:如果在堆中沒有完成實例分配,并且堆也無法再擴展時,將會拋出該異常。

?  內存大小設置方式:

    -Xmx 設置最大堆內存。

    -Xms 設置初始堆內存。

1.5方法區

?  用途:

用于存儲已被虛擬機加載的類信息、常量、靜態變量、即時編譯器編譯后的代碼等數據。

?  創建時間

    虛擬機啟動時。

?  銷毀時間

    虛擬機銷毀時。

?  特點:

      所有線程共享。

HotSpot虛擬機1.8及以上版本,已將方法區從從永久代移出,取而代之使用的是元空間,元空間使用的是本地內存。

?  溢出異常:

          OutOfMemeoryError:當方法區無法滿足內存分配需求時,將拋出該異常。

?  參數設置

    "-XXMaxMetaspaceSize" JDK8):指定類元數據區的最大內存大小;

    "-XXMetaspaceSize" JDK8):MetaspaceSize表示metaspace首次使用不夠而觸發FGC的閾值;

    "-Xnolassgc":關閉CLASS的垃圾回收功能,就是虛擬機加載的類,即便是不使用,沒有實例也不會回收。

    "-verbose:class""-XX:TraceClassLoading""-XX:TraceClassUnloading":查看類加載和卸載信息;

 

1.6運行時常量池

?  用途:

    編譯期生成的各種字面量和符號引用。

?  特點:

    屬于方法區中的一部分。

    相對于Class文件的常量池,運行時常量池具有動態性,運行期間新的常量也會被放入池中。該特性被開發人員利用較多的是String類的intern()方法。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

和田县| 鄂托克前旗| 九寨沟县| 富民县| 和林格尔县| 汉川市| 临潭县| 敦化市| 东台市| 大安市| 岱山县| 屏边| 封开县| 政和县| 报价| 红原县| 凤庆县| 淮安市| 双牌县| 洛南县| 津市市| 正安县| 清原| 衡水市| 明溪县| 景德镇市| 信阳市| 罗甸县| 乐至县| 兴仁县| 秭归县| 本溪市| 鄯善县| 剑川县| 上蔡县| 福州市| 双鸭山市| 大田县| 民乐县| 屯昌县| 沙洋县|