• av无码天堂一区二区三区不卡 一文看懂JVM內存散播與作用

  • 发布日期:2022-05-19 04:25    点击次数:169

    av无码天堂一区二区三区不卡

    本文轉載自微信公眾號「一個身手員的成長」,作家bingfeng 。轉載本文請聯系一個身手員的成長公眾號。

    那么我們在開始介紹Java內存區域之前,我們先放一張內存區域的圖,纰漏我們后头介紹的時候不错對照著看。

    「須知」av无码天堂一区二区三区不卡,本文是根據JDK8來介紹的。

    Java內存區域圖

    身手計數器

    率先它是線程特有的,它也稱為代碼的行號指引器,字節碼解釋器便是通過改變身手計數器的位置來確定下一滑要執行的代碼av无码天堂一区二区三区不卡,它不存在OOM。

    要是線程正在執行一個Java行径,那么它記錄的是正在執行虛擬機字節碼领导的地址,要是是一個土产货行径那么它的值為空。

    Java虛擬機棧

    它亦然線程特有的,它的聲明周期和線程一致。每個線程創建時都會創建一個虛擬機棧,內部保存了一個個的棧幀,每個棧幀就對應著一次行径的調用。既然泄漏了虛擬機棧内部存放的是一個個的棧幀,那么也不難猜出虛擬機棧内部都存儲了什么東西。

    Java虛擬機棧是存在OOM的av无码天堂一区二区三区不卡,當線程所請求的棧的深度大于虛擬機棧的深度大致虛擬機棧不错動態擴容,當棧擴展時無法申請到足夠的內存時,就會拋出OOM。

    「虛擬機棧內部結構」:

    虛擬機棧內部結構

    「局部變量表」:

    主要存儲行径的參數,通盘的基本類型數據和對象地址,以及复返地址類型(return address)。它以變量槽為最小的存儲單位,Java虛擬機并沒有規定一個變量槽占用几许內存空間,然而規定了一個變量槽不错存放一個32位以內的數據類型。要是存儲的數據類型超過32位, 国产av一区二区三区香蕉比如long、doubleav无码天堂一区二区三区不卡,那么就使用兩個變量槽進行存儲。

    「操作數棧」:

    操作數棧是一個先進后出的操作數棧,當一個行径剛開始執行的時候,一個新的棧幀也會隨之被創建出來,這個行径的操作數棧是空的,它主要用于保存計算過程的中間結果,同時作為計算過程中變量臨時的存儲空間。要是被調用的行径有复返值,那么复返值將會被壓入當前棧幀的操作數棧中。操作數棧并非汲取索引的神气進行數據訪問,而是通過入棧(push)和出棧(pop)操作來完成數據的訪問。

    当你看到这样的信息,可别被唬住了,这是诈骗分子以疫情防控为由头,熟妇高潮一区二区高清视频诱导你填入个人信息和银行卡的诈骗行为。

    「動態鏈接」:

    大白話便是,棧幀中保存了一個行径的援用av无码天堂一区二区三区不卡,當執行行径的時候,不错拿著這個援用到運行時常量池中找到這個行径。

    動態鏈接的作用便是將這些行径的符號援用轉換為調用行径的径直援用。

    「行径复返地址」:

    便是在行径執行結束之后,要复返下一條要執行代碼位置的值,也便是身手計數器的值。

    那么除了行径浅近執行結束退出外,還有另外一種情況便是異常導致的行径退出,那么這種情況下是不會复返任何值的。對于拋出的異常av无码天堂一区二区三区不卡,棧幀中不會做任何記錄,然而會記錄在一個異常表中。

    土产货行径棧

    Java虛擬機棧為虛擬機執行Java行径服務,土产货行径棧則為虛擬機使用到的土产货行径服務。像JVM就有许多C語言寫的行径,這個就需要土产货行径棧來執行。

    Java堆

    Java堆是虛擬機中最大的一塊內存空間,它被通盘的線程分享,在虛擬機啟動時創建。它惟一的标的便是存放對象實例。

    要是面試被問到,通盘的對象實例都是在堆平分派內存嗎?這個時候你一定要回复av无码天堂一区二区三区不卡,不是。

    隨著即時編譯技術的發展進步,尤其是逃遁分析技術的日漸強大,棧上分派、變量替換等優化时间,讓實例在”只在堆“平分派不再成為絕對。

    Java堆是垃圾齐集的主要區域,Java堆中也經常出現重生代、老年代、恒久代等等,這里需要紧密,這些并不是Java堆物理上的內存布局,它是作為垃圾齐集器而劃分一種內存布局。

    行径區

    行径區亦然線程分享的區域,它主要用于存儲被虛擬機加載的類型信息、常量、靜態變量、即時編譯器編譯后的代碼緩存等數據。

    行径區它是不错被垃圾齐集器進行回收的,主要針對類型的卸載和常量池的回收。

    行径區也不错產生OOM,當行径區無法滿足新的內存分派需求時,將拋出OutOfMemoryError異常。

    運行時常量池

    運行時常量池是行径區的一部分。Class文献中除了有類的版块、字段、行径、接口等信息外,還有一項信息是常量池表,它用來存儲編譯期生成的各種字面量和符號援用。

    要是動態鏈接那塊沒看懂,那么看了運行常量池再翻且归望望是不是好透露了。

     av无码天堂一区二区三区不卡