在这里感谢尚硅谷JVM(宋红康),在此记录一下自己详细对学习笔记,希望对你有所帮助。
视频地址
代码地址
第一章笔记
此记录来源于尚硅谷JVM(宋红康),在此记录以做分享
![image-20200429194556090](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doLzEzOTI1MTcxMzgvaW1nUmVwb3NpdG9yeUBtYXN0ZXIvaW1hZ2UtMjAyMDA0MjkxOTQ1NTYwOTAucG5n?x-oss-process=image/format,png)
JAVA代码执行流程
![image-20200429194831110](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doLzEzOTI1MTcxMzgvaW1nUmVwb3NpdG9yeUBtYXN0ZXIvaW1hZ2UtMjAyMDA0MjkxOTQ4MzExMTAucG5n?x-oss-process=image/format,png)
每个字节码文件对于一个类
JAVA编译器(前端编译器)
编译器环节任何一个失败了,都不能生成字节码文件
![image-20200429194908948](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doLzEzOTI1MTcxMzgvaW1nUmVwb3NpdG9yeUBtYXN0ZXIvaW1hZ2UtMjAyMDA0MjkxOTQ5MDg5NDgucG5n?x-oss-process=image/format,png)
操作系统并不识别字节码指令,所以需要后端编译器,JIT解释为机器指令。由执行引擎完成。
第一次编译:把源文件编译成字节码文件
第二次编译:将字节码文件编译为机器指令。同时因为机器指令他是需要反复执行的,将热点代码缓存起来了(JIT),提高性能。所以由翻译字节码、JIT编译器两部分组成