面试题

1.JVM的启动过程?

1.配置JVM装载环境

JVM.dll(libjvm.dylib)文件的查找和加载

2、解析虚拟机参数

3、设置线程栈大小

4、执行Java main方法

4.1.新建JVM实例

​ 调用JVM.dll函数JNI_CreateJavaVM,新建一个JVM实例

4.2.加载主类的class

​ 1、调用GetMainClassName方法找到META-INF/MANIFEST.MF文件指定的Main-Class的主类名;
​ 2、调用LoadClass方法加载主类的class文件;

4.3.查找main方法

4.4执行main方法

①JVM由随启动的:启动器

②启动器有哪些:典型的Java启动器有JRE/JDK自带的java[.exe]、javaw.exe,JDK自带的javac、javap等。 ③java.exe是windows平台上的,macos 上是java 可执行程序

https://www.zhihu.com/question/32247563