Java Development Kit (JDK) 详解

什么是 JDK?

JDK 是 Java Development Kit 的缩写,是一组用于开发 Java 应用程序的软件开发工具和库的集合。JDK 包含了 Java 运行时环境(JRE)和 Java 虚拟机(JVM),以及一系列开发工具和库。

为什么需要完整的 JDK 而不仅仅是 JRE?

  • JRE(Java 运行时环境):仅包含运行已编译的 Java 程序所需的组件,适合普通用户。
  • JDK(Java 开发工具包):除了 JRE 所包含的组件外,还包含开发工具和库,适合开发者。实际的 Java 应用程序通常需要更复杂的工具和库,这些只有在 JDK 中才能找到。

JDK 的架构

JDK 的架构主要包括以下几个模块:

  1. JVM(Java 虚拟机)

    • 功能:负责为 Java 源代码创建运行时环境。
    • 特点:实现了 Java 的“一次编写,到处运行”(Write Once, Run Anywhere)的特点。
    • 工作原理:位于主机操作系统之上,将 Java 源代码转换为字节码(机器语言),并执行程序。
  2. JDK(Java 开发工具包)

    • 功能:提供了一个软件开发环境,用于创建 Java 应用程序的运行时环境。
    • 组成:包括编译器、调试器、文档生成器等开发工具。
  3. JRE(Java 运行时环境)

    • 功能:提供了一个软件平台,用于执行所有的 Java 源代码。
    • 组成:包括必要的插件、JAR 文件和支持库,以确保源代码能够运行。

JDK、JVM、JRE三者之间的关系如下图所示:

在这里插入图片描述

JDK 的组件

JDK 包含了多个重要的组件,以下是其中的一些关键组件:

  1. java

    • 功能:作为旧版 SUN Java 的部署启动器。
    • 作用:加载类文件并解释由 javac 编译器编译的源代码。
  2. javac

    • 功能:指定 Java 编译器将源代码转换为字节码。
  3. javadoc

    • 功能:生成源代码中添加的注释的文档。
  4. jar

    • 功能:帮助管理包库中的 JAR 文件。
  5. jps

    • 功能:Java 虚拟机进程状态工具,管理当前正在执行的程序的活动 JVM。
  6. appletviewer

    • 功能:用于在不依赖互联网浏览器的情况下运行和调试 Java 小程序(Applet)。
  7. idlj

    • 功能:IDL 到 Java 编译器,从给定的 Java IDL 文件生成 Java 绑定。
  8. javap

    • 功能:作为文件反汇编器。
  9. JConsole

    • 功能:Java 管理和监控单元。
  10. javah

    • 功能:存根生成器,用于编写本地方法的 C 头文件。
  11. javaws

    • 功能:Web Start 启动器,用于 JNLP 应用程序。
  12. jhat

    • 功能:堆分析工具。
  13. jmc

    • 功能:Java 任务控制的缩写。

最新的 JDK 版本

目前,Java 由 Oracle 公司拥有并商业化提供。尽管如此,还有一个免费的版本,称为 OpenJDK。

  • 当前 Oracle JDK 版本:JDK 23
  • 主要新特性
      1. ZGC 分代模式(ZGC: Generational Mode)
      1. 结构化并发(Structured Concurrency)
      1. 流收集器(Stream Collectors)
      1. 类文件 API(Class-File API)
      1. 模块导入声明(Module Import Statements)
      1. Markdown 文档注释(Markdown Documentation Comments)
      1. 原始类型在模式、instanceof 和 switch 中的使用(Primitive Types in Patterns, instanceof, and switch)
      1. 灵活构造函数体(Flexible Constructor Bodies)
      1. 隐式声明的类和实例方法(Implicitly Declared Class and Instance Methods)
      1. 作用域值(Scoped Values)
      1. 矢量 API(Vector API)
      1. 弃用 sun.misc.Unsafe 中的内存访问方法

如何安装 JDK

  1. 系统要求

    • Windows Vista、7、8 及以上或 Linux 操作系统
    • 至少 128 MB 内存
    • 至少 128 MB 磁盘空间
    • 互联网浏览器
  2. 安装步骤

    • 导航到官方网站:访问 Oracle 官方网站。
    • 创建 Oracle 账户:如果还没有 Oracle 账户,需要先创建一个。
    • 下载最新版本的 JDK:选择适合你操作系统的 JDK 版本并下载。
    • 设置环境:配置环境变量,确保系统能够识别 javajavac 命令。
    • 验证安装:打开命令行或终端,输入 java -versionjavac -version 命令,验证 JDK 是否安装成功。

通过以上步骤,你可以成功安装并配置 JDK,开始你的 Java 开发之旅。希望这些信息对你有所帮助!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/466710.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于卷积神经网络的农作物病虫害识别系统(pytorch框架,python源码)

更多图像分类、图像识别、目标检测等项目可从主页查看 功能演示: 基于卷积神经网络的农作物病虫害检测(pytorch框架)_哔哩哔哩_bilibili (一)简介 基于卷积神经网络的农作物病虫害识别系统是在pytorch框架下实现的…

HTML第二次作业

题目&#xff1a; 制作带有下拉悬停菜单的导航栏 根据上图仿照制作一个带下拉悬停菜单的导航栏 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>单元格的宽和高</title><style>*{margin: 0;padding: 0;}#men…

LabVIEW编程过程中为什么会出现bug?

在LabVIEW编程过程中&#xff0c;Bug的产生往往源自多方面原因。以下从具体的案例角度分析一些常见的Bug成因和调试方法&#xff0c;以便更好地理解和预防这些问题。 ​ 1. 数据流错误 案例&#xff1a;在一个LabVIEW程序中&#xff0c;多个计算节点依赖相同的输入数据&#…

JAVA笔记 | ResponseBodyEmitter等异步流式接口快速学习

先简单记录下简单使用跟测试&#xff0c;后续再补充具体&#xff0c;最近有用到&#xff0c;简单来说就是后端(服务端)编写个发射器&#xff0c;实现一次请求&#xff0c;一直向前端客户端发射数据&#xff0c;直到发射器执行完毕&#xff0c;模拟ai一句一句回复的效果 Respon…

丹摩征文活动 | 带你玩转开源模型,一起来部署SD3+ComfyUI文生图模型

文章目录 1 背景1.1 SD3背景介绍1.2 ComfyUI背景介绍1.3 体验感 2 部署流程3 登录实例4 部署ComfyUI5 部署SD36 生成图像 1 背景 1.1 SD3背景介绍 Stable Diffusion 3是Stability AI推出的一款先进的文本到图像的开源模型&#xff0c;SD3以其图像质量、文本内容生成、复杂提示…

防火墙|WAF|漏洞|网络安全

防火墙|WAF|漏洞|网络安全 防火墙 根据内容分析数据包&#xff1a; 1、源IP和目的IP地址 2、有效负载中的内容。 3、数据包协议&#xff08;例如&#xff0c;连接是否使用 TCP/IP 协议&#xff09;。 4、应用协议&#xff08;HTTP、Telnet、FTP、DNS、SSH 等&#xff09;。 5…

WorkFlow源码剖析——Communicator之TCPServer(中)

WorkFlow源码剖析——Communicator之TCPServer&#xff08;中&#xff09; 前言 系列链接如下&#xff1a; WorkFlow源码剖析——GO-Task 源码分析 WorkFlow源码剖析——Communicator之TCPServer&#xff08;上&#xff09; WorkFlow源码剖析——Communicator之TCPServer&…

【HCIP园区网综合拓扑实验】配置步骤与详解(未施工完,持续更新中)

一、实验要求 实验拓扑图如上图所示 1、按照图示的VLAN及IP地址需求&#xff0c;完成相关配置 2、要求SW1为VLAN 2/3的主根及主网关 SW2为vlan 20/30的主根及主网关 SW1和SW2互为备份 3、可以使用super vlan 4、上层通过静态路由协议完成数据通信过程 5、…

飞腾平台Arm ComputeLibrary编译安装指南

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力&#xff0c;聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域&#xff0c;包含了应用使能套件、软件仓库、软件支持、软件适…

论文2—《基于柔顺控制的智能神经导航手术机器人系统设计》文献阅读分析报告

论文报告&#xff1a;基于卷积神经网络的手术机器人控制系统设计 摘要 本研究针对机器人辅助微创手术中定向障碍和缺乏导航信息的问题&#xff0c;设计了一种智能控制导航手术机器人系统。该系统采用可靠和安全的定位技术、7自由度机械臂以及避免关节角度限制的逆运动学控制策…

使用Ida Pro和Core Dump文件定位崩溃位置

目录 一、Core Dump文件简介 二、准备环境 三、生成Core Dump文件 四、使用IDA Pro分析Core Dump文件 五、案例分析 1. 测试代码 2. 使用GDB初步分析 3. 使用IDA Pro深入分析 4. 修复代码 六、总结 在软件开发过程中&#xff0c;尤其是C/C编程中&#xff0c;Core Dum…

Spring Boot中集成MyBatis操作数据库详细教程

目录 前言1. 项目依赖配置1.1 引入MyBatis和数据库驱动依赖1.2 数据源配置 2. 创建数据库映射实体类3. 创建Mapper层接口4. 创建Service层4.1 定义Service接口4.2 实现Service接口 5. 创建Controller层6. 运行和测试项目6.1 启动项目6.2 测试接口 7. 总结 前言 在Java开发中&a…

vscode Comment Translate 反应慢 加载中...

Comment Translate 版本&#xff1a;v2.3.3 你是不是疑惑切换了 Bing 源也无法使用还是加载中… 那么可能你切换Bing后没重启vscode 下面是切换成功后的插件日志&#xff0c;一定要重启vscode&#xff0c;只是禁用和启用插件不行的&#xff0c;另外google是没用的&#xff0c;用…

ES文档:文档操作_doc(7.9.2)

用心记录技术&#xff0c;走心分享&#xff0c;始于后端&#xff0c;不止于后端&#xff0c;励志成为一名优秀的全栈架构师&#xff0c;真正的实现码中致富。 ElasticSearch文档的操作&#xff1b; 添加文档 新建一个索引 goboy-blog&#xff0c;如果添加文档索引不存在则会创…

人保财险(外包)面试分享

前言&#xff1a; 这是本月面的第三家公司&#xff0c;太难了兄弟们&#xff0c;外包都不好找了&#xff0c;临近年底&#xff0c;金九银十已经错过了&#xff0c;金三银四虽然存在&#xff0c;但按照这几年的行情&#xff0c;金九银十和金三银四其实已经是不复存在了&#xf…

机器视觉基础—双目相机

机器视觉基础—双目相机与立体视觉 双目相机概念与测量原理 我们多视几何的基础就在于是需要不同的相机拍摄的同一个物体的视场是由重合的区域的。通过下面的这种几何模型的目的是要得到估计物体的长度&#xff0c;或者说是离这个相机的距离。&#xff08;深度信息&#xff09…

C++ | Leetcode C++题解之第542题01矩阵

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<vector<int>> updateMatrix(vector<vector<int>>& matrix) {int m matrix.size(), n matrix[0].size();// 初始化动态规划的数组&#xff0c;所有的距离值都设置为一个很大的…

分布式——BASE理论

简单来说&#xff1a; BASE&#xff08;Basically Available、Soft state、Eventual consistency&#xff09;是基于CAP理论逐步演化而来的&#xff0c;核心思想是即便不能达到强一致性&#xff08;Strong consistency&#xff09;&#xff0c;也可以根据应用特点采用适当的方…

安卓智能指针sp、wp、RefBase浅析

目录 前言一、RefBase1.1 引用计数机制1.2 设计目的1.3 主要方法1.4 如何使用1.5 小结 二、sp和wp2.1 引用计数机制2.2 设计目的2.3 主要方法2.3.1 sp2.3.2 wp 2.4 如何使用2.5 小结 四、参考链接 前言 安卓底层binder中&#xff0c;为什么 IInterface要继承自RefBase &#x…

k8s 上如何跑 Dolphins 模型

接着上一篇的介绍&#xff0c;这一篇就来跑跑 Dolphins 模型&#xff0c;本篇会记录&#xff0c;跑模型常见的阬点。 1 在 k8s 上创建 pod 将外部数据挂载在 pod 里&#xff0c;并申请 gpu 资源。同时修改代码里对应的引入数据的路径 # dolphins.yaml apiVersion: v1 kind: …