站長資訊網
        最全最豐富的資訊網站

        什么是JVM內存模型?

        本篇文章帶大家初步了解一下JVM內存模型,有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。

        什么是JVM內存模型?

        計算機內存模型

        在程序運行時,CPU通過訪問主存獲取數據,但隨著CPU的快速發展,CPU訪問速度越來越高,硬件無法滿足CPU的條件下,大多內存加入了高速緩存機制,不同CPU都有對應的多級(一般為三)緩存,CPU取數時會先按照一級緩存-二級緩存-三級緩存-主存的順序進行訪問,提高了訪問速度,但同時不同的CPU的緩存內的數據可能是不一樣的,造成CPU與主存不能實現數據同步

        JAVA內存模型

        JAVA內存模型(Java Memory Model,JMM)是符合計算機內存模型規范的,通過設置內存屏障,屏蔽了不同硬件和操作系統的訪問差異的,保證java程序在不同平臺都能做到對內存的訪問效果一致的機制及規范。

        五大內存區域

        1.程序計數器

        每個線程都有程序計數器,程序計數器用來標識當前線程的程序字節碼的行號,java方法運行時,程序計數器保存的是字節碼文件的行號,native方法運行時,程序計數器的內容為空,不同的線程擁有其專屬的程序計數器,為線程所私有

        2.JAVA虛擬機棧

        每個方法在運行時都會創建一個棧幀,包括存儲局部變量表,操作棧,動態鏈接,方法出口等信息。每一個方法被調用的過程就對應一個棧幀在虛擬機棧中從入棧到出棧的過程。

        JAVA虛擬機棧主要用來存儲方法參數,方法內部的局部變量,編譯期間加載的數據類型和返回地址類型,為線程所私有

        3.本地方法棧

        與JAVA虛擬機棧作用相似,不同的是后者服務的是虛擬機運行的java方法(字節碼),本地方法棧服務的是虛擬機調用的native方法,即底層服務,一般用C或C++編寫

        4.堆

        堆是虛擬機加載的最大的一部分內存區域,用來存放對象實例,可以在不連續的內存地址進行存儲,只要邏輯地址連續即可。 分為新生代和老年代,新生代與老年代的比例為1:2(可以通過參數 –XX:NewRatio 來指定)

        5.方法區

        又稱為永久代,用來存放虛擬機加載的類信息,常量,靜態變量,是線程的共享區域,JDK8之后被廢棄,改用元空間

        推薦教程:java教程

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产亚洲一区二区精品| 亚洲国产精品久久久天堂| 国产精品人成在线播放新网站| 亚洲处破女AV日韩精品| 中文字幕精品久久| 国内精品久久人妻互换 | 国产精品麻豆VA在线播放| 精品国产午夜福利在线观看| 精品无码人妻一区二区三区不卡| 欧美精品在线视频| 四虎国产精品永久在线观看| 97精品伊人久久大香线蕉app| 九九热这里只有在线精品视| 精品久久久久久99人妻| 国产精品三级国产电影| 国产精品无码久久四虎| 亚洲精品成人无码中文毛片不卡| 成人国产精品高清在线观看| 国产成人精品久久一区二区三区av | 精品国产污污免费网站入口| 亚洲欧美精品午睡沙发| 国产在线不卡午夜精品2021 | 国产成人精品一区二三区在线观看| 亚洲精品岛国片在线观看| 91精品国产9l久久久久| 欧美精品播放| 影音先锋国产精品国语对白| 日韩精品一区二区亚洲AV观看| 在线人成精品免费视频| 99久久99久久久精品齐齐| 精品中文高清欧美| 国产一区二区精品久久| 国产精品最新国产精品第十页| 久久久久无码精品国产| 久久精品国产亚洲Aⅴ蜜臀色欲| 97精品国产福利一区二区三区| 四虎国产精品成人| 久久精品国产精品亚洲人人 | 国产微拍精品一区二区| 亚洲第一精品在线视频| 99久久99久久久精品齐齐|