JVM
Java虚拟机(JVM)运行Java字节码的虚拟机。JVM针对不同的系统的特定实现,目的使Java程序实现相同的功能
采用字节码的好处?什么是字节码?
JVM理解的代码字节码(.class),不面向任何处理器,只面向JVM。Java语言通过虚拟机实现了跨平台的移植,一定程度上解决了传统解释性语言效率低的问题。
从源码到运行的三步
.java文件(源代码)经过编译(javac).class文件(字节码文件)经过JVM解释为二进制机械码
- class->机器码,JVM类加载器首先加载字节码文件,解释器逐行解释执行(这样速度慢),由于有些方法经常被调用,所以引进了JIT编译器,而JIT运行时编译。当JIT编译器完成第一次编译后,其会将字节码对应的机器码保存下来,下次直接使用。
JDK JRE
- JDK(Java Development Kit),功能齐全的Java SDK。拥有JRE所拥有的一切,还包括编译器(javac)和变成工具(javadoc和jdb),可以创建和编译程序
- JRE 是java的运行环境,运行已编译Java程序所需的所有内容的集合,包括Java虚拟机(JVM),Java类库,java命令和其他的一些基础架构。不能创建新程序
- 注意:只运行java程序只需要jre,编程需要jdk,有时不需要开发也需要安装jdk(jsp部署Web应用程序,需要jdk把jsp编译成servlet)