1. 程式人生 > >Java後端面試題總結(2)

Java後端面試題總結(2)

  • Out of Memory
  • 程式計數器是唯一一個在Java虛擬機器規範中沒有沒有規定任何oom情況的區域。
  • 在Java虛擬機器規範中,對於Java虛擬機器棧,規定了2種異常,1)若執行緒請求的棧深度大於虛擬機器所允許的深度,則丟擲Stack Overflowerror異常 2)若虛擬機器可以動態擴充套件,若擴充套件時無法申請到足夠的記憶體空間,則丟擲oom異常。
  • Java虛擬機器棧為執行Java方法,本地方法棧為虛擬機器使用native方法服務,本地方法棧也會丟擲Stack Overflowerror和oom。
  • Java堆可以處於物理上連續的記憶體空間,只要邏輯上是連續的即可。可固定,可擴充套件。若堆中沒有記憶體完成例項分配,並且堆也無法再擴充套件,則會丟擲oom。
  • 直接記憶體不是執行時資料區的一部分。堆上的OOM測試