JDK——Java Development Kit Java的开发工具包。提供给Java程序员使用,可以进行代码的编译和运行。
JRE——Java Runtime Environment Java的运行环境。提供给运营者使用,不需要对代码进行编译,只需要执行代码。JRE一般执行已经编译好的代码。
Java程序必须运行在虚拟机里边,JDK就是给我们提供虚拟机的软件。
Java程序的运行过程:
首先我们编写Java程序,然后通过我们调用javac.exe这个程序去编译我们所写的源代码,编译成功后会生成一个class文件(字节码文件;也叫二进制文件);然后调用java.exe执行器来通过我们的类加载器把这个class文件加载到我们的虚拟机中;最后虚拟机将对这个二进制文件进行解析处理。
Java.exe的底层流程:
1. java源码通过javac.exe编译器进行编译;然后生成class文件;
2. 通过java.exe执行器对生成的class文件进行执行;
java hello
3. 当我们运行java.exe去执行生成的class文件时,它会根据系统版本去加载配置文件jvm.cfg;
4. 根据配置文件会找到jvm.dll(C语言的库文件;)
5. 通过我们的C语言库文件去初始化jvm虚拟机;jvm虚拟机在初始化的时候回加载本地jni接口,通过这个接口就可以把们编写的 class文件加载到虚拟机中去;
6. 找到class文件里的main方法开始执行代码;
JVM虚拟机的运行机制: