Java入门学习01-JDK、JRE和JVM
JDK:Java Development Kit
JDK是Java程序开发所必须的基础工具集,它提供了所有Java应用程序开发所需的核心组件。因此,再开始进行Java程序开发之前,我们需要先按照JDK,并正确配置环境变量,以便能够再命令行或IDE中调用JDK的相关工具和命令进行开发。
JDK中的主要组件包括:
- Java编译器:用于将Java源代码编译成Java字节码。
- Java虚拟机(JVM):用于执行Java字节码,并提供垃圾回、内存管理等功能。
- Java API类库:包含了各种用于开发Java应用程序的类和接口,列入集合框架、I/O、网络协议、安全和多线程等。
— JDK包含了JRE和JVM—
JRE:Java Runtime Environment
JRE是Java应用程序的运行环境,如果我们只需要运行Java应用程序而不需要进行开发或调试,那么就可以按照JRE而不必按照JDK。需要注意的是,JDK包含了JRE,因此再安装JDK的同时也可以获得JRE。
JRE中的主要组件包括:
- Java虚拟机(JVM):用于执行Java字节码,并提供垃圾回收、内存管理等功能。
Java API类库:包含了各种用于开发Java应用程序的类和接口,例如集合框架、I/O、网络协议、安全和多线程等。 - 插件:用于再Web浏览器中运行Java应用程序和Applet。
JVM:Java Virtual Machine
JVM是Java应用程序运行的核心引擎,它具有狂平台和高度可移植性的特点。Java应用程序只需要编写一次,就可以再支持Java的各种平台上运行,节约了开发和维护的成本。
JVM的主要功能包括:
- 加载字节码:JVM可以从本地文件系统或网络上加载Java类文件,并将其转换成可执行的机器指令。
- 执行Java程序:JVM可以执行Java字节码,将其翻译成本地机器指令,并处理异常、安全性、线程同步等问题。
- 内存管理:JVM对Java对象的内存分配和回收进行管理,并通过来及回收器自动清理不再使用的对象。
- 类加载:JVM可以动态加载类,并在运行时解析类之间的依赖关系。
- JIT编译:JVM可以通过即时编译(Just-In-Time-Compilation)将频繁执行的代码编译成本地机器代码,提高程序的运行效率。
JIT:Just-In-Time
JIT编译是一种动态编译技术,它将Java字节码动态编译成本地机器代码,并在程序运行时执行。与传统的静态编译不同,JIT编译器不会在程序运行前将所有代码都编译成本地机器指令,而是在程序运行时根据实际情况进行编译。
需要注意的是,由于JIT编译需要消耗一定的CPU资源,因此在部分资源受限的环境下,例如移动设备等场景中,可能不适用使用JIT编译。