你真的了解JDK吗?_字节码

1 初始JDK

从事java很久,有没有真正的了解过jdk是做什么的。它能做什么呢?

1.1 JDK 和JRE 的关系

JDK(Java Development Kit)是Java开发工具包,是Java编程所必须的软件开发工具。它包括Java编译器、Java虚拟机、Java API库以及其他的工具和文档。JDK可以让程序员编写Java应用程序、Java小应用程序和Java Applet等,并且可以进行Java程序的编译、调试和执行。JDK是面向程序开发人员的,它包含了编写程序和运行程序所需要的各种工具和库。

JRE(Java Runtime Environment)是Java运行时环境,是Java程序运行的必要组件。它包括Java虚拟机和Java类库,为Java应用程序提供了一个运行环境,使得用户不需要安装和配置JVM和Java类库就可以运行Java程序。JRE主要面向的是想要运行Java程序的用户。

jdk和jre有这么大的区别,那么他们有什么联系吗?当然有联系,而且还有很深的联系。下面请听我介绍。

  1. 包含关系:JDK包含了JRE。在JDK的安装目录中,有一个JRE的目录,里面包含了运行Java程序所必需的环境和类库。因此,安装了JDK之后,就不需要再单独安装JRE,因为JDK中已经包含了JRE。
  2. 功能差异:JDK是Java开发的核心工具包,它包含了Java编译器(javac)、Java虚拟机(JVM)以及用于开发和调试Java应用程序所需的其他工具和库。JDK提供了完整的开发环境,可以用于编写、编译和运行Java程序。而JRE则是Java应用程序的运行环境,它包含了Java虚拟机(JVM)和Java类库。JRE只能用于运行已经编译好的Java程序,而不能用于开发。
  3. 面向对象:JDK主要面向的是Java开发人员,它提供了编写、编译、调试和运行Java程序所需的各种工具和库。而JRE则主要面向的是Java程序的最终用户,它只需要安装一次即可,然后可以运行任何已经编译好的Java程序。

总的来说,JDK和JRE的关系是包含关系,JDK包含了JRE,同时还提供了更多的开发工具和类库。在开发Java程序时,我们需要安装JDK,以便编写、编译和运行程序。而在运行已经编译好的Java程序时,只需要安装JRE即可。

你真的了解JDK吗?_字节码_02

1.2 深度解析JRE

你真的了解JDK吗?_JVM_03

JRE(Java Runtime Environment)是Java运行环境,它是运行已经编译好的Java程序所必需的环境和类库。下面是对JRE的深度解析,包括其原理和实现过程:

  1. JVM的工作原理:JVM(Java虚拟机)是JRE的核心组件,它负责解释和执行Java字节码。当Java程序被编译成字节码后,JVM会将字节码加载到内存中,并将其解释成机器码,然后在操作系统上执行。这个过程是通过JVM中的类加载器、解释器和垃圾回收器等组件来实现的。
  2. 类加载器:JVM中的类加载器负责从文件系统、网络或其他来源加载Java类,并将其转换为JVM可以理解的二进制格式。类加载器采用了一种层次化的类加载机制,其中包括引导类加载器、扩展类加载器和应用程序类加载器等。
  3. 解释器:JVM中的解释器负责将字节码解释为机器码,并在操作系统上执行。解释器采用了即时编译(JIT)技术,将经常执行的代码编译成本地机器码,以提高程序的执行效率。
  4. 垃圾回收器:JVM中的垃圾回收器负责管理Java程序中的内存分配和释放。当Java程序中的对象不再被引用时,垃圾回收器会自动将其占用的内存释放掉,以避免内存泄漏和内存溢出等问题。
  5. JRE的实现过程:JRE的实现过程可以分为以下几个步骤:

(1)编写Java源代码:使用Java语言编写程序源代码。

(2)编译Java源代码:使用Java编译器将Java源代码编译成字节码文件。

(3)运行Java程序:使用JRE运行已经编译好的Java程序。在运行程序时,JRE会加载程序的字节码文件,并将其解释成机器码执行。在执行过程中,JRE还会管理程序的内存分配和释放等操作。

小结:JRE是Java程序运行所必需的环境和类库,它包含了JVM、类加载器、解释器和垃圾回收器等组件,用于解释和执行Java字节码,并管理程序的内存分配和释放等操作。JRE的实现过程包括了编写Java源代码、编译Java源代码和运行Java程序等步骤。

1.3 深度解析JDK

JDK(Java Development Kit)是Java开发工具包,是Java开发人员用于开发、编译、调试和运行Java程序的软件包。下面是对JDK的深度解析,包括其原理、实现过程以及功能特点:

  1. JDK的原理和实现过程:

JDK是建立在Java虚拟机(JVM)的基础之上的,它提供了编译、运行和调试Java程序所需的各种工具和类库。JDK的实现过程包括了编写Java源代码、编译Java源代码和运行Java程序等步骤。

在JDK中,编译器(javac)将Java源代码编译成字节码文件(.class文件),然后通过解释器(java)执行这些字节码文件。JVM是JDK的核心组件之一,它提供了Java程序的运行环境,可以加载和执行字节码文件。

此外,JDK还包含了Java类库(API),提供了丰富的Java标准类库,以支持各种Java应用程序的开发。这些类库包括核心类库、I/O类库、网络类库、数据库连接类库等。

你真的了解JDK吗?_Java_04

  1. JDK的功能特点:

JDK是Java开发的核心工具包,它具有以下功能特点:

(1)包含Java编译器(javac),可以将Java源代码编译成字节码文件。

(2)包含Java虚拟机(JVM),它是Java实现跨平台的核心部分,能够运行以Java语言写作的软件程序。

(3)包含Java类库(API),提供了丰富的Java标准类库,以支持各种Java应用程序的开发。

(4)提供Java开发工具,包括用于调试和分析Java程序的工具,如调试器(jdb)、性能分析器(jconsole)、堆转储工具(jmap、jstack)、JavaDoc文档生成工具等。

小结:JDK是Java开发人员用于开发、编译、调试和运行Java程序的工具包,它包含了编译器、虚拟机、类库和其他开发工具。JDK的功能特点在于它提供了完整的开发环境,可以用于编写、编译、调试和运行Java程序,并且提供了丰富的类库和工具,以支持各种Java应用程序的开发。

2 深入了解JDK

2.1 jdk的版本有哪些?

 

  1. JDK 1.0:这是Java的第一个版本,于1995年发布。
  2. JDK 1.1:这是Java的第二个版本,于1996年发布。它引入了新的类库和API,并提供了对移动设备的支持。
  3. JDK 1.2:这是Java的第三个版本,于1998年发布。它引入了Java平台架构,并将Java分为三个平台:Java SE、Java EE和Java ME。
  4. JDK 1.3:这是Java的第四个版本,于1999年发布。它主要提供了对Java 2平台的支持,并引入了新的类库和API。
  5. JDK 1.4:这是Java的第五个版本,于2000年发布。它引入了大量的新功能和改进,包括对线程局部变量的支持、对基本数据类型的自动装箱和拆箱等。
  6. JDK 5.0:这是Java的第六个版本,于2004年发布。它引入了泛型、枚举、可变参数和自动装箱/拆箱等功能。
  7. JDK 6.0:这是Java的第七个版本,于2006年发布。它引入了新的API和类库,并提供了对Web和XML技术的支持。
  8. JDK 7.0:这是Java的第八个版本,于2011年发布。它引入了新的语言特性,如switch表达式、异常处理改进等。
  9. JDK 8.0:这是Java的第九个版本,于2014年发布。它引入了lambda表达式、流API和Optional类等新特性。
  10. JDK 9.0:这是Java的第十个版本,于2017年发布。它引入了模块化系统和对Java平台标准的支持。

11.DK 1.5:这是Java的第五个版本,于2004年发布。它引入了泛型、枚举、可变参数和自动装箱/拆箱等功能。

12.JDK 1.6:这是Java的第六个版本,于2006年发布。它引入了新的API和类库,并提供了对Web和XML技术的支持。

13.JDK 1.7:这是Java的第七个版本,于2011年发布。它引入了新的语言特性,如switch表达式、异常处理改进等。

14.JDK 1.8:这是Java的第八个版本,于2014年发布。它引入了lambda表达式、流API和Optional类等新特性。

15.JDK 1.9:这是Java的第九个版本,于2017年发布。它引入了模块化系统和对Java平台标准的支持。

  • JDK 9:引入了模块化系统和对Java平台标准的支持。
  • JDK 10:在JDK 9的基础上进行了改进,增加了一些新特性。
  • JDK 11:引入了新的API和类库,并提供了对Java平台标准的进一步支持。
  • JDK 12:在JDK 11的基础上进行了改进,增加了一些新特性。
  • JDK 13:在JDK 12的基础上进行了改进,增加了一些新特性。
  • JDK 14:在JDK 13的基础上进行了改进,增加了一些新特性。

2.2 JDK 版本和软件包

在你的开发环境中设置 Java 就像下载 JDK 并将其添加到操作系统上的系统路径一样简单。对于 Windows 和 macOS,Java 包含一个可以为你执行此操作的安装程序。

下载 JDK 时,需要选择要使用的 Java 版本。 Java 11最近超越了Java 8,成为最常用的版本。展望未来,Java 17 似乎可能是下一个突出的版本。Java 保持向后兼容性,所以我们只下载最新版本。

过去,你还必须选择 Java 包。这些 JDK 针对不同类型的开发,如 Java Enterprise Edition (Java EE)、Java Standard Edition (Java SE) 和 Java Mobile Edition (Java ME)。现在企业 Java 库已经迁移到 Jakarta EE,流程已经改变。你仍然需要从 Oracle 或 OpenJDK 等实现者那里下载 Java SE JDK。如果你需要对企业和云原生应用程序开发有用的其他工具,那么你可能需要下载并安装 Jakarta EE。在某些情况下,你可能不需要整个 Jakarta EE 平台。例如,如果你只需要一个 JDK 和 servlet,你可以使用标准的 JDK 和Tomcat,其中包括Servlet API。

2.3 下载 Java SE 的 JDK

建议去官网下载正版JDk 

https://www.runoob.com/manual/jdk1.6/java.xml/org/w3c/dom/Document.html

你真的了解JDK吗?_JVM_05

2.4 如何安装JDK

  1. 根据电脑类型下载好jdk32位或者64位的。
  2. 下载后,双击直接安装,可以点击“更改”,将JDK安装到自己指定的路径,也可以选择了默认路径,直接点击“下一步”。
  3. 安装过程中,会出现安装jre的界面,依旧选择默认路径,直接“下一步”继续安装。
  4. 最后安装结束界面的按钮是“继续”,点击进入到JavaFxSDK的设置界面,直接点击取消即可,JDK安装结束。
  5. 安装好后,直接右击“我的电脑”-“属性”,在弹出的对话框中选择“高级系统设置”。
  6. 在弹出的对话框中选择“高级”选项卡下的“环境变量”。
  7. 在弹出的对话框,单击“系统变量”下的“新建”按钮,在弹出的对话框中填入变量名JAVA_HOME,变量值:C:ProgramFilesJavajdk1.7.0_04。

你真的了解JDK吗?_Java_06