什么是Java开发工具包?
关于JVM和JDKJavaDevelopmentKit(JDK)是一个跨平台的软件开发环境,它提供了开发基于Java的软件应用程序和小程序所需的工具和库的集合。
它是Java中使用的核心包,与JVM(Java虚拟机)和JRE(Java运行时环境)一起使用。
初学者经常对JRE和JDK感到困惑,如果您只对在您的机器上运行Java程序感兴趣,那么您可以使用JavaRuntimeEnvironment轻松完成。
但是,如果您想开发基于Java的软件应用程序,那么与JRE一起您可能需要一些额外的必要工具,即JDK。
JDK包含:
Java运行时环境(JRE):JDK和JRE允许程序员创建可由JRE运行的核心Java程序,其中包含JVM和类库。
类库:类库是一组动态可加载的库,Java程序员可以在运行时访问它们。
编译器(javac):Javac是该语言中的主要编译器。它是一个Java应用程序,它从开发人员那里获取文本文件并将它们转换为Java类文件。它是包含Java字节码的最常见的编译器输出类型。
调试器:帮助开发人员测试和调试Java代码
JavaDoc:SunMicrosystems创建了JavaDoc,它是Java文档。它可用于从HTML文件中的源代码生成API文档。
JDK中的JavaRuntimeEnvironment通常被称为PrivateRuntime,因为它不同于普通的JRE,并且包含额外的材料。JDKPrivateRuntime包括JVM和生产中使用的所有类库,以及对开发人员有益的其他库,例如国际化和IDL库。
一些最流行的JDK是:
OracleJDK:最流行的JDK和Java11的主要发行商,
OpenJDK:准备使用:JDK15、JDK14和JMC,
AzulSystemsZing:适用于Linux操作系统的高效且低延迟的JDK,
AzulSystems:基于Zulu品牌,适用于Linux、Windows、MacOSX、
IBMJ9JDK:适用于AIX、Linux、Windows和许多其他操作系统,
AmazonCorretto:免费构建OpenJDK和长期支持的最新选项。
什么是JVM?
Java虚拟机(JVM)是一种规范,它提供了一个运行时环境,可以在其中执行Java字节码。正如其名称所暗示的那样,JVM用作“虚拟”机器或处理器。Java虚拟机(JVM)主要负责Java的平台独立性。因为JVM知道平台的特定指令长度和其他特性,所以这是可能的。
JVM执行以下操作:
代码已加载。
检查代码
代码被执行。
其他编程语言的编译器通常会为特定操作系统输出代码,而Java编译器只为Java虚拟机生成字节码。Java程序在JVM进程中作为线程执行。JVM负责加载、验证、解释和执行您的类文件。当您运行java之类的命令时,JVM会加载该类的类定义并调用其main函数。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多
JVM包含:
类加载器:这个子系统主要负责加载类文件。加载、链接和初始化是它的三个基本功能。
方法区:它包含一个类结构,包括信息、Java方法和一个常量运行时池。
堆内存:堆存储所有对象、实例变量和数组。这个内存可以在多个线程中找到。
JVM语言堆栈:JVM语言中的堆栈存储局部变量及其部分结果。每个线程都有自己的JVM语言堆栈,它是与线程同时创建的。调用方法时会创建一个新框架,并在调用该方法后将其销毁。
PC寄存器:PC寄存器存储当前执行的Java虚拟机指令的地址。在Java中,每个线程都有自己的一组PC寄存器。
NativeMethodStacks:NativeMethodStacks-本地代码指令存储在本地方法堆栈中,它依赖于本地库。它使用本机堆或任何类型的堆栈分配内存。
执行引擎:它是一种用于测试硬件、软件或整个系统的软件。测试执行引擎永远不会存储有关被测试产品的数据。
NativeMethod接口:这是一个称为NativeMethodInterface的编程框架。它使库和本机程序能够与在JVM中运行的Java代码进行交互。
本机方法库:它是执行引擎所需的本机库(C、C++)的集合。
JDK和JVM如何协同工作?
JDK是JRE的超集,包含JRE的所有开发工具,例如编译器和调试器。为了运行Java小程序和应用程序,Java运行时环境(JRE)包含库、Java虚拟机(JVM)和其他组件。
JVM是JDK和JRE的关键组件。无论您使用JRE还是JDK运行的Java应用程序都会进入负责逐行执行的JVM。因此,它也被称为翻译器。三者之间的关系如下图所示。
JDK与JRE与JVM比较表。
JDK包括JRE。
JRE包括JVM。
但是,JDK还包含Java运行时环境(JRE)。不同之处在于前者有一些额外的工具和应用程序,如调试器或集成开发环境(IDE),而后者用于在您的计算机上运行应用程序。您需要他们两个来充分享受使用Java的乐趣。
此外,您还应该了解一件事:SunMicrosystems在年收购Oracle的OpenJDK后,于年将其JavaDevelopmentKit(JDK)替换为它;因此,今天它们基本上是同一个东西——只是它们的创造者给的另一个名字!但是,这并不意味着您找不到它们之间的任何差异;例如:
?Java开发工具包(JDK)由三个组件组成:Java运行时环境(JRE)、Java类库和Java编译器。
Java开发工具包(JDK)由三个组件组成:Java运行时环境(JRE)、Java类库和Java编译器。
JRE是安装在计算机系统上并用于运行以Java编程语言编写的程序的软件组件。JRE可以作为单独的包或集成开发环境(IDE)的一部分从Oracle网站下载。
类库提供用于应用程序开发的类。
编译器通过一系列包括解析和编译的阶段,将用一种语言编写的源代码翻译成另一种语言的等效目标代码。
————————————————
作者:MIC_java01
来源: