Java基础 - Java环境及编译运行原理

一、Java环境

Java组成可以理解为:“一个平台”:JVM;“一套工具”:编译;“一套库”:JDK;“一套规范”:Java源代码和jvm指令集规范表。

1.JDK(Java Development Kit)

1.1定义: JDK是Java开发者工具,有开发Java程序、编译、运行、反编译、DeBug、监控后台等功能。
1.2具体内容:

  • JRE(Java Runtime Environment): 是Java 运行环境,其中包含:
    • Java源代码库
    • java.exe - 执行Java程序(Java解释器。用于解释执行Java字节码文件(.class文件),然后启动Java虚拟机解释并执行)
  • JVM(Java Virtual Machine):是运行所有Java程序的抽象计算机(虚拟机),其中:
    • 每一个Java程序运行就会启动一个虚拟机
    • 每个虚拟机管理每个Java程序的资源、内存、代码和对于主机的操作资源
  • javac.exe - 编译Java项目代码(javac:全称java compiler。javac工具读由java语言编写的类和接口的定义,并将它们编译成二进制的字节代码的class文件)
  • javap.exe - 反编译Java的字节码((javap:全称 java printer。用于分解class文件,反编译为java源代码,也可以查看java编译器生成的字节码),代码测试进行优化的时候常用反编译
  • javadoc.exe -项目文档导出
  • 等…

2.环境变量

环境变量是操作系统运行环境中的一个参数。配置java环境变量后能够在系统中的任何位置使用java及javac命令,执行命令时不再需要进入java安装目录下的bin目录下。

二、Java文件的编译及运行

1、编译及运行过程:

编写java源代码,进行编译生成class文件(算是一个中间代码二进制代码 - “机器码”),编译后得到class文件(Java虚拟机JVM中运行。将二进制代码,扔进CPU进行运行 - 汇编指令,因为cpu只能识别汇编代码),最后运行class文件得到结果。
如下图:

  • 编写java源代码

在这里插入图片描述

  • 打开终端切换到代码文件所在位置

在这里插入图片描述

  • 编译代码

在这里插入图片描述
此时会出现一个编译成字节代码的class文件

  • 运行程序
    在这里插入图片描述
    启动Java虚拟机解释并执行字节代码的class文件,得到执行结果

多文件程序的代码编译运行 - 只需要编译有主函数的类
范例:
在这里插入图片描述
在这里插入图片描述

2、反编译过程:

将java.class进行反编译,反编译后得到java源文件(源代码)。代码测试进行优化的时候常用反编译

  • 反编译
    在这里插入图片描述
  • 详细指令版本(javap -v exe)
    在这里插入图片描述