> ### 編譯器
* **前端編譯器**,`javac`, 把`*.java`文件轉變成`*.class`文件的過程。
* **后端運行期編譯器**,`JIT`(Just In Time Compiler),把字節碼轉換成機器碼的過程。
* **靜態提前編譯器**,`AOT`(Ahead Of Time Compiler),直接把`*.java`文件編譯成機器代碼的過程。
<br/>
> `javac`
* 處理`java`語法糖,泛型、自動拆裝箱、遍歷循環、變長參數
<br/>
> 解釋器與編譯器
* 此處編譯器是指`JIT`
* 主流的Java虛擬機采用解釋器與編譯器并存的架構
* 當程序需要迅速啟動和執行的時候,解釋器可以首先發揮作用,省去編譯時間,立即執行。在程序運行后,編譯器逐漸發揮作用,把越來越多的代碼編譯成本地代碼,這樣可以獲取更高的執行效率。
* `-Xint`強制虛擬機運行于解釋模式,這時編譯器不工作
* `-Xcomp`強制虛擬機運行于編譯器模式,這時解釋器不工作,但是解釋器任然會在編譯器無法進行時介入工作
* 在運行過程中會被即時編譯器編譯的**熱點代碼**有兩類:
* 被多次調用的方法
* 被多次執行的循環體
- asD
- Java
- Java基礎
- Java編譯器
- 反射
- collection
- IO
- JDK
- HashMap
- ConcurrentHashMap
- LinkedHashMap
- TreeMap
- 阻塞隊列
- java語法
- String.format()
- JVM
- JVM內存、對象、類
- JVM GC
- JVM監控
- 多線程
- 基礎概念
- volatile
- synchronized
- wait_notify
- join
- lock
- ThreadLocal
- AQS
- 線程池
- Spring
- IOC
- 特性介紹
- getBean()
- creatBean()
- createBeanInstance()
- populateBean()
- AOP
- 基本概念
- Spring處理請求的過程
- 注解
- 微服務
- 服務注冊與發現
- etcd
- zk
- 大數據
- Java_spark
- 基礎知識
- Thrift
- hdfs
- 計算機網絡
- OSI七層模型
- HTTP
- SSL
- 數據庫
- Redis
- mysql
- mybatis
- sql
- 容器
- docker
- k8s
- nginx
- tomcat
- 數據結構/算法
- 排序算法
- 快排
- 插入排序
- 歸并排序
- 堆排序
- 計算時間復雜度
- leetcode
- LRU緩存
- B/B+ 樹
- 跳躍表
- 設計模式
- 單例模式
- 裝飾者模式
- 工廠模式
- 運維
- git
- 前端
- thymeleaf
- 其他
- 代碼規范
- work_project
- Interview