JVM,JDK,JRE你区分过吗?
JVM | 运行Java字节码的虚拟机,JVM针对于不同的操作系统具有不同的实现,.class文件不面向任何特定的处理器,只面向jvm,从而保证了java的平台无关性。 |
JDK | 功能齐全的Java SDK拥有jre的一切,包含编译器和其他工具,能够创建和编译程序。 |
JRE | Java运行时环境,运行已编译的Java程序的内容集合,包括JVM,Java类库等,不能用于创建新程序。 |
Java程序的执行过程:
1.由jdk中的编译工具javac讲.java 文件编译成.class文件,jre中是不包含javac的等工具的,jre只提供运行.class的环境。
2.jvm类加载器加载字节码文件(.class),并通过解释器逐行解释,执行速度可能会比较慢,这也是Java面向对象语言性能差的一个表现,为解决此问题引进了JIT编译器(运行时编译,JIT完成第一次编译后,会将字节码对应的机器码保存下来,下次可直接使用,提高解释器效率,减少重复解释)