> ### 编译器
* **前端编译器**,`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