程序語言就是向人和計算機描述計算的記號。性能
程序語言分類(按照級別分類)
按照級別分類
1.低級語言
2.高級語言
(1)面向過程語言
(2)面嚮對象語言優化
規律:越高級程序語言越靠近人的理解方式,可是這樣在計算機運行卻不行,因此須要將程序語言翻譯成計算機所可以識別的語言。
1.編譯
2.解釋this
兩種方式的區別和優缺點
1.編譯會生成中間文件,解釋不須要生成中間文件,邊解釋邊運行
2.編譯比解釋更快
3.解釋檢查代碼是否有錯誤更仔細比編譯,由於解釋是一句一句的解釋。spa
衍生
程序語言的分類
1.編譯型(C,C++等)
2.解釋型(JS等)
3.半編譯半解釋(JAVA等)
Java運行的流程
![]()
前期知識點
JVM內存分配
方法區:類加載到方法區
pc寄存器:存放各個線程執行的位置
Java方法棧:調用方法的時候會生成棧幀,用來存儲局部變量(廣義的,包括this指針和傳遞的方法參數)和操做數。線程
.class字節碼翻譯機器碼運行翻譯
按照二八定律,20%的代碼用了80%的運算時間,因此這20%的代碼可不能夠用更快的方式來運行,因此即時編譯器運勢而生。
分類:
1.解釋器解釋
2.即時編譯器編譯指針
1.c1編譯器:client編譯器,對啓動性能要求高的,優化簡單,編譯簡單 2.c2編譯器:server編譯器,對峯值性要求高的,優化複雜,編譯時間長 3.Graal編譯器