JVM这个庞然大物,平时用不到,也就不愿意去学。现在面试经常被问到,不得不厚着脸皮去学。那由表及里,慢慢学吧。
一、java程序执行流程
本来画图更清晰的,但时间紧迫,先在这里占个坑,后面补图。
①编写.java源文件
②用java编译器将源文件编译为.class的字节码文件
③通过“java 类名”的方式执行,在执行过程中会进行后续流程(④⑤⑥⑦)
④根据系统版本去找到对应的JVM配置文件jvm.cfg,并加载这个jvm.cfg
⑤根据jvm.cfg文件找到并加载jvm.dll,这个jvm.dll文件是JVM的主要实现
⑥初始化jvm,并加载JNI接口,利用JNI接口找到.class的字节码文件,并将.class的字节码文件加载进内存。不仅如此,这个JNI接口还可以与操作系统、硬件打交道
⑦找到main()方法,并执行程序