最近老有人問jvm,恕我直言,完蛋了,不會,慢慢學吧,開始第一個學習,後續補充,走起。。。html
我看的他的http://www.javashuo.com/article/p-poxahysy-cd.html算法
--------------------------------------------------我擦,這都是些啥。虛擬機內存模型中定義的訪問操做與物理計算機處理的基本一致!緩存
JVM的邏輯內存模型以下:jvm
一、程序計數器學習
做用能夠看作是當前線程所執行的字節碼的行號指示器spa
二、Java 虛擬機棧線程
它的生命週期與線程相同。虛擬機棧描述的是Java 方法執行的內存模型:每一個方法被執設計
行的時候都會同時建立一個棧幀(Stack Frame ①)用於存儲局部變量表、操做棧、動態3d
連接、方法出口等信息。每個方法被調用直至執行完成的過程,就對應着一個棧幀在htm
虛擬機棧中從入棧到出棧的過程。
三、本地方法棧
虛擬機棧爲虛擬機執行Java 方法(也就是字節碼)服務,而本地方法棧則
是爲虛擬機使用到的Native 方法服務,就是c寫的那些native
四、Java 堆
Java 堆(Java Heap)是Java 虛擬機所管理的內存中最大的
一塊。Java 堆是被全部線程共享的一塊內存區域,在虛擬機啓動時建立。此內存區域的
惟一目的就是存放對象實例,幾乎全部的對象實例都在這裏分配內存.
Java 堆是垃圾收集器管理的主要區域,所以不少時候也被稱作「GC 堆」
收集器基本都是採用的分代收集算法,因此Java 堆中還能夠細分爲:新生代和老年代;
再細緻一點的有Eden 空間、From Survivor 空間、To Survivor 空間等
------後邊我得開一篇,這裏搞不了了,裝逼之地老是須要深刻研究,看到這裏我就想說這tm,哎就差在這裏
五、方法區
用於存儲已被虛擬機加載的類信息、常量、靜態變量、即時編譯器編譯後的代碼等數據。雖
然Java 虛擬機規範把方法區描述爲堆的一個邏輯部分,可是它卻有一個別名叫作Non-
Heap(非堆),目的應該是與Java 堆區分開來
不少人願意把方法區稱爲「永久代」(Permanent Generation)
--------------------------------------其餘的區我不認,由於不懂,懂了再寫,愛咋咋的
如今個人理解,好比這個http://www.javashuo.com/article/p-pyxvlzha-ea.html
我本身的學習博客,這個看了容易跟着我跑偏,持續更新