Java运行机制

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

java的运行机制

Java程序的运行机制分为编写、编译和运行三个步骤。

1.编写

编写是指在Java开发环境中进行程序代码的编辑最终生成后缀名为“.java”的Java源文件。

2.编译

编译是指使用Java编译器对源文件进行错误排查的过程编译后将生成后缀名为.class的字节码文件该文件可以被Java虚拟机JVM的解释器正常读取。

3.运行
运行是指使用Java解释器将字节码文件翻译成机器代码执行并显示结果。 字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码它是一种二进制文件是Java源文件由Java编译器编译后生成的目标代码文件。

Java运行流程

在这里插入图片描述

从编写出来的Java源文件到编译为字节码文件再到通过JVM执行程序然后将程序的运行结果展示给用户这是一个完整的Java运行流程。

JVM

JVM(Java Virtual Machine Java虚拟机)

1JVM是Java字节码执行的引擎为java程序的执行提供必要的支持还能优化java字节码使之转换成效率更高的机器指令。程序员编写的程序最终都要在JVM上执行JVM中类的装载是由类加载器ClassLoader和它的子类来实现的。

2ClassLoader是java运行时一个重要的系统组件负责在运行时查找和装入类文件的类。

3JVM屏蔽了与具体操作系统平台相关的信息从而实现了java程序只需生成在JVM上运行的字节码文件class文件就可以在多种平台上不加修改地运行。不同平台对应着不同的JVM在执行字节码时JVM负责将每一条要执行的字节码送给解释器解释器再将其翻译成特定平台环境的机器指令并执行。java语言最重要的特点就是跨平台运行使用JVM就是为了支持与操作系统无关实现跨平台运行。

ClassLoader

1是JVM实现的一部分包括bootstrapclassloader启动类加载器

2ClassLoader在JVM运行的时候加载java核心的API通过java程序实现两个ClassLoader:

  • ExtClassLoader它的作用是用来加载java的扩展API也就是lib\ext类

  • AppClassLoader用来加载用户机器上CLASSPATH设置目录中的Class.

3ClassLoader加载流程当运行一个程序的时候JVM启动运行bootstrapclassloader该ClassLoader加载java核心API然后调用ExtClassLoader加载扩展API最后AppClassLoader加载CLASSPATH目录下定义的Class.

JRE

JRE是JavaRuntimeEnvironmentjava运行时环境它是java程序运行所必须的环境集合主要由java虚拟机、java平台核心类和若干支持文件组成。其不包含开发工具、编译器、调试器以及其他工具。

在执行java程序的时候操作系统会按照下面顺序寻找JRE环境。

1先查找当前目录下有没有JRE

2再查找父目录下有没有JRE

3接着在环境变量PATH制定的路径中查找JRE

4注册表查看CurrentVersion的键值指向哪个JRE

JRE自带的基础类库主要在JRE\LIB\rt.jar文件中。在程序运行时JRE由ClassLoader(类加载器)负责查找和加载程序引用到的基类库和其他类库。基础类库Classloader会自动到rt.jar的位置其他的类库ClassLoader在环境变量CLASSPATH制定的路径中搜索。

JDK

JDK是Java Development Kit简称java开发工具包。

JDK是java的核心。它包括java运行环境、一堆java工具盒java基础的类库rt.jar。

JDK包含JRE的全部内容外还包含开发者用以编译、调试和运行java程序的工具。

JDK、JRE、JVM之间的关系

在这里插入图片描述

高级语言的运行机制

我们编程都是用的高级语言计算机不能直接理解高级语言只能理解和运行机器语言所以必须要把高级语言翻译成机器语言计算机才能运行高级语言所编写的程序。

翻译其实翻译的方式有两种一个是编译一个是解释。两种方式只是翻译的时间不同。

在这里插入图片描述

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Java