天天看點

2.2019年周陽老師JVM·第二部分

文章目錄

  • ​​方法區​​
  • ​​棧​​
  • ​​堆·棧·方法區的互動關系​​

方法區

2.2019年周陽老師JVM·第二部分

方法區(亮色):所有線程共享,存在垃圾回收。

2.2019年周陽老師JVM·第二部分

類的結構資訊:模闆。

2.2019年周陽老師JVM·第二部分

類裝載器,把class檔案代表的Class裝載到了方法區。

2.2019年周陽老師JVM·第二部分

天上飛的是理念(方法區),落地的是實作(永久代,元空間)。

棧管運作,堆管存儲。

引入:當我們出異常的時候,是列印棧的運作軌迹,如下:

2.2019年周陽老師JVM·第二部分
2.2019年周陽老師JVM·第二部分

工作與學校的差別,如上。

2.2019年周陽老師JVM·第二部分

java中,方法就可以了解為棧幀。一個一個的棧幀,可以了解為一個一個的方法被壓棧。

方法被壓棧,方法的入參,出參,方法内的局部變量,也被壓棧了。

2.2019年周陽老師JVM·第二部分
2.2019年周陽老師JVM·第二部分

父幀存儲的是父幀的方法索引,這種指向的關系,可以了解為表現在pc寄存器裡面。棧是可以被壓爆:棧溢出。方法的加載把棧給撐爆了。這算是錯誤,并不是異常!

2.2019年周陽老師JVM·第二部分

看一下異常的繼承樹:

2.2019年周陽老師JVM·第二部分

棧溢出屬于error:看下方的繼承樹。

2.2019年周陽老師JVM·第二部分
2.2019年周陽老師JVM·第二部分

堆·棧·方法區的互動關系

2.2019年周陽老師JVM·第二部分

hotspot,是sun公司實作的jdk的接口,實作了規範。

繼續閱讀