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)