一、Java 语言的特点:跨平台性
二、JDK、JRE、JVM
JDK是Java开发环境的核心组件,它包括了Java编译器、JRE(Java运行环境)、JavaDoc文档生成器和其他一些工具。JDK是Java程序员开发Java应用程序所必需的软件包。通过JDK,开发人员可以编写、编译和调试Java代码,并将其转换为可在JRE上运行的字节码。
JRE是Java运行时环境,用于运行已编译的Java应用程序。它包含了Java虚拟机(JVM)、类加载器、运行时类库和其他支持文件。
作用:JRE是Java应用程序的运行环境,当用户想要执行Java程序时,需要安装JRE。JRE负责将Java字节码翻译成机器语言并执行。
JVM(Java Virtual Machine)是Java虚拟机的缩写,它是Java程序运行的核心组件。JVM是一个虚拟的计算机,它在物理计算机上模拟了一个执行Java字节码的环境。JVM负责解释和执行Java字节码,实现了跨平台性和代码安全性。
三、Java字节码
Java字节码是一种中间代码,也称为 Java类文件。它是Java源代码编译成的二进制格式,可以被Java虚拟机(JVM)解释执行。Java字节码具有 跨平台的特性,因为它可以在任何安装了Java虚拟机的硬件平台和操作系统上运行。
Java字节码通常由Java编译器生成,它们以.class文件的形式存储。当Java程序被执行时,Java虚拟机会将字节码加载到内存中,并进行解释执行。在执行过程中,Java虚拟机会根据需要将字节码转换成本地代码,从而提高程序的执行效率。
四、JVM的优点和缺点:
优点:
缺点:
五、JVM的运行过程
1. 类加载:JVM首先需要加载Java字节码文件,这些文件通常是以.class文件的形式存在。类加载器负责将字节码文件加载到内存中,并进行验证、准备和解析等操作。
2. 字节码解释与执行:JVM将加载到内存中的字节码解释成机器码,并按照指令序列依次执行。JVM提供了一组指令集,用于执行各种操作,比如变量赋值、方法调用、条件判断等。
3. 运行时内存区域管理:JVM将运行时内存划分为不同的区域,包括方法区、堆、栈、程序计数器和本地方法栈等。这些区域分别用于存储类信息、对象实例、方法调用栈、线程指令地址等。
4. 垃圾回收:JVM通过垃圾回收器(Garbage Collector)自动管理内存,回收不再使用的对象,释放内存空间。垃圾回收器会根据一定的策略判断对象是否可回收,并进行相应的回收操作。
5. 异常处理:JVM提供了异常处理机制,当程序中发生异常时,JVM会捕获并处理异常。它会在堆栈中查找适合的异常处理器,执行相应的异常处理代码。