1. 程式人生 > >jvm優化(一)

jvm優化(一)

方法 守護線程 run 參數 main JD 自己 class roo

什麽是jvm?

java程序自己獨立運行環境,包括堆棧、寄存器和java字節碼的指令集。

jvm上可以運行的語言

  • Java
  • Scala
  • Groovy

jvm、jdk和jre

jvm:jvm是jre的一部分

jre:java運行環境,包含jvm

jdk:包含

  • jre
  • jvm
  • 常用的一些開發工具,javac、java和jconsol等等

生命周期

  main方法是jvm實例運行的起點,main作為程序初始線程的起點,任何其他線程都由該線程負責啟動,main線程是非守護線程。

  jvm實例消亡的方法:

  • 所有的非守護線程都終止時
  • System.exit()

組成

  • 類加載器子系統(class loader)
  • 執行引擎子系統
  • 運行時數據區(runtime data area)
  • Native接口

運行流程

  1. 首先將java源代碼通過javac指令編譯成字節碼文件
  2. 字節碼文件通過class loader進行加載
  3. 將類的權限修飾類名成員變量修飾成員變量方法修飾方法參數方法返回值等等放入運行時數據區的方法區;將new出來的對象放入中,類的靜態變量放入常量池中;將對象索引放入VM棧裏;調用本地方法放入本地方法棧PC寄存器根據線程數分配,用於存放代碼讀取行數
  4. 執行引擎根據運行時數據區調用本地庫接口和本地方法庫

jvm優化(一)