Java虚拟机总体框架
Java虚拟机总体框架
Java源代码经过javac
编译后变成Java Class字节码文件,然后通过类加载器(ClassLoader)加载到JVM中去运行。
类被放置在方法区,实例对象被放置在堆中,而堆里的对象在调用方法的时候又会用到虚拟机栈、程序计数器以及本地方法栈。更详细的内容可以看我这篇笔记JVM内存划分详述笔记
方法执行时,每行代码时被执行引擎中的解释器逐行进行执行。方法中的热点代码(被经常运行的代码)会被JIT Compiler优化后执行。GC模块会对堆里面不再被引用的代码进行垃圾回收。
有些Java代码不方便实现的功能,例如需要调用底层代码的功能,需要借助本地方法接口调用操作系统提供的一些方法。