【化神系列】 了解JDK

简介: Java入门第一步

一、Java编译过程

Java是一门半编译型、半解释型语言。先通过javac编译程序把源文件进行编译,编译后生成的.class文件是由字节码组成的与平台无关、面向JVM的文件。最后启动java虚拟机来运行.class文件,此时 JVM 会将字节码转换成平台能够理解的形式来运行。

image-20220725230357404

Java的编译和运行离不开JDK,JDK除了提供必要的运行环境外,最主要的工具就是编译和运行,那么JDK中JVM、JRE三者的关系如何?

二、JDK/JVM/JRE关系

✅ 什么是JVM?

JVM是一种用软件模拟出来的计算机,用于执行JAVA程序,有一套严格的技术规范,是JAVA跨平台特性的依赖基础,JAVA虚拟机有自己想象的硬件,如:处理器、堆栈、寄存器等,还有相应的指令系统。JAVA虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。

✅ JDK中JVM、JRE三者的关系如何?

JDK(Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译
器javac与自带的调试工具Jconsole、jstack等。

JRE(Java Runtime Environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程
序运行的所需环境。
JVM:Java虚拟机,运行Java代码

三者之间关系:

JDK是Java开发工具,它不仅提供了Java程序运行所需的JRE,还提供了一系列编译,运行等工具,如javac 、Java 、Javaw等。JRE只是Java程序的运行环境,它最核心的内容就是JVM及JavaSE核心类库

image-20220725231743079

什么是字节码?采用字节码的好处是什么?

答: 在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。

​ 所以, Java 程序运行时相对来说还是高效的(不过,和 C++,Rust,Go 等语言还是有一定差距的),而且,由于字节码并不针对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同操作系统的计算机上运行,即java的跨平台性。

Java和C++在编译和运行上有什么区别?

答:对于C/C++源文件,此类语言都是把源码直接编译成计算机可以认识的机器码,如.exe.dll之类的文件,然后再运行。

​ 对于Java源文件,需要用javac命令把源文件编译成class文件(字节码文件),这些字节码文件需要放在JVM(Java虚拟机)下运行,而JVM有多个平台版本,因此Java具有跨平台性,而C++没有。

202207252342153.png

三、JDK环境变量的配置

  • 1)找到系统变量,新建一个。变量名JAVA_HOME(代表你的JDK安装路径),值对应的是你的JDK的安装路径

image-20220728093639140

  • 2)继续在系统变量里面新建一个CLASSPATH变量,其变量值如下图所示(此处需要注意:最前面有一个英文状态下的小圆点):
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

image-20220728093337917

  • 3)在你的系统变量里面找一个变量名是PATH的变量,需要在它的值域里面追加一段如下的代码:
%JAVA_HOME%\bin;   %JAVA_HOME%\jre\bin;

image-20220728094232291

  • 最后点击确定,此时JDK的环境变量配置就完成了。

验证:WINDOWS+R键,输入cmd,进入命令行界面,输入java -version命令,可以出现如下图的提示,你可以看你安装的JDK版本,若如图所示 显示版本信息 则说明安装和配置成功。

image-20220728094339709

注意:如果使用过程当中JDK的路径发生了变化,一定要去重新修改环境变量
✅环境变量CLASSPATH和PATH 的作用是什么?
  • CLASSPATH环境变量保存的是一些目录和jar文件的地址,这些路径是为JAVA程序在编译和搜索类而使用的,也就是为JAVA程序所依赖的接口类指定一个搜索路径。
  • 将%JAVA_HOME%\bin添加到PATH路径, 我们则可以在任何路径下直接用java来执行命令了,操作系统会在当前目录和PATH变量目录里查找相应的应用程序, 并且执行。
相关文章
|
4月前
|
API 索引
JDK8之findAny和findFirst
JDK8之findAny和findFirst
195 0
|
11月前
|
并行计算 安全 Java
JDK1.8介绍
JDK 1.8是Java Development Kit(Java开发工具包)的一个版本,也被称为Java 8。它引入了许多新特性和改进,对Java编程语言和平台进行了重要的更新。以下是JDK 1.8的一些主要特点:
1095 0
|
11月前
|
存储 网络协议 安全
JDK 9 介绍
Java 9提供了超过150项新功能特性,包括备受期待的模块化系统、可交互的REPL工具: jshell, JDK编译工具,语法层面的改变:Java公共API和私有代码,以及安全增强、扩展提升、性能管理改善等。
94 0
|
11月前
|
存储 算法 Java
带你了解JDK
JDK(Java Development Kit)是Java开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源。下面是JDK的一些重点介绍: 1. Java编译器(javac):JDK包含了Java编译器,可以将Java源代码编译为Java字节码。通过编译器,开发人员可以将Java源代码转换为可在JVM上运行的字节码文件。 2. 核心类库(Core Libraries):JDK提供了丰富的核心类库,其中包含了常用的类和接口,用于处理字符串、集合、IO、网络通信等各种操作。开发人员可以利用这些类库来构建功能丰富的Java应用程序。 3. 调试工具(Debugging Tools)
60 0
|
Java Shell 开发工具
安装多个jdk
安装多个jdk
|
NoSQL Java 数据库
JDK的安装
现在电脑上很多软件都是基于JAVA语言开发的,并且在学习JAVA编程时,JDK的安装变得十分平常。这里展示了一个关联NEO4J图数据库的JDK安装教程。
120 0
|
Java 程序员 编译器
【错误收集】JDK的安装
【错误收集】JDK的安装
78 0
|
Java
jdk问题
错误: java.lang.UnsatisfiedLinkError: no tcnative-1 in java.library.path: [C:\User
121 0
jdk问题
|
Java
JDK的反锯齿
JDK的反锯齿
60 0
|
Oracle Java 关系型数据库
JDK的安装-详细版
JDK的安装-详细版
131 0
JDK的安装-详细版