我们日常编程的Java编程是在Java语言规范代码,通过javac前端编译器编译器,产生字节码规范,此时我们应该对字节码文件结构有一个大致的认识,此时我们了解了Java虚拟机内存面局(专业术语叫运行时数据区),类加载器通过加载器将字节码文件加载到内存中(此时应该对类加载的过程有一个大致的了解),Java类信息就会存储在我们的方法区中,如果创建对象,那么数据对象就会放到Java堆中,如果调用方法就用到PC寄存器、Java虚拟机栈、本地方法栈等结构。
从源代码到机器码,使用AOT编译器,从字节码到机器码我们可以选择解释执行,也可以选择编译执行(JIT),编译执行又分为C1编译模式和C2编译模式。C1优化相对保存但编译速度快速,C2优化比较激进,但编译速度比C1慢,但是编译质量相对较好。