Java Development Kit (JDK) 详解

news2024/12/28 3:38:20

什么是 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.coloradmin.cn/o/2234706.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Rust 力扣 - 1652. 拆炸弹

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们只需要遍历长度长度为k的窗口&#xff0c;然后把窗口内数字之和填充到结果数组中的对应位置即可 题解代码 impl Solution {pub fn decrypt(code: Vec<i32>, k: i32) -> Vec<i32> {let n c…

AAA 数据库事务隔离级别及死锁

目录 一、事务的四大特性&#xff08;ACID&#xff09; 1. 原子性(atomicity)&#xff1a; 2. 一致性(consistency)&#xff1a; 3. 隔离性(isolation)&#xff1a; 4. 持久性(durability)&#xff1a; 二、死锁的产生及解决方法 三、事务的四种隔离级别 0 .封锁协议 …

华为HarmonyOS借助AR引擎帮助应用实现虚拟与现实交互的能力3-获取设备位姿

设备位姿描述了物体在真实世界中的位置和朝向。AR Engine提供了世界坐标下6自由度&#xff08;6DoF&#xff09;的位姿计算&#xff0c;包括物体的位置&#xff08;沿x、y、z轴方向位移&#xff09;和朝向&#xff08;绕x、y、z轴旋转&#xff09;。通过AR Engine&#xff0c;您…

Ubuntu 扩容磁盘

1.没有机子&#xff0c;用虚拟机模拟一下将sdc扩到sdb下面去 2.先查看磁盘是否为ext4的格式 lsblk -f 3.发现不是 那就格式化一下 mkfs.ext4 /dev/sdc 4.转换为物理卷 pvcreate /dev/sdc 5.查看所要扩容的vg名称 vgs 6.物理机扩容到卷组 vgextend vgHome /dev/sdc 7.查看目…

真·香!深度体验 zCloud 数据库云管平台 -- DBA日常管理篇

点击蓝字 关注我们 zCloud 作为一款业界领先的数据库云管平台&#xff0c;通过云化自治的部署能力、智能巡检和诊断能力、知识即代码的沉淀能力&#xff0c;为DBA的日常管理工作带来了革新式的简化与优化。经过一周的深度体验&#xff0c;今天笔者与您深入探讨 zCloud 在数据库…

大数据之多级缓存方案

多级缓存介绍&#xff1f;多级缓存优缺点&#xff0c;应用场景&#xff1f;多级缓存架构&#xff1f; 多级缓存介绍 多级缓存方案是一种优化手段&#xff0c;通过在多个级别上存储数据来提高应用程序的性能和响应速度。以下是对多级缓存方案的详细解析&#xff1a; 一、多级缓…

前端三件套(HTML + CSS + JS)

前言&#xff1a; 前端三件套&#xff0c;会用就行 毕竟在后面学习JavaWeb&#xff0c;以及在学习vue的时候也有帮助 前端三件套&#xff1a; HTML 定义网页的结构和内容。CSS 负责网页的样式和布局。JavaScript 添加动态交互和功能。 使用到的工具是Visual Studio Code 即…

Zabbix proxy 主动模式的实现

1. 准备三台机器 zabbix-server10.0.0.200zabbix-agent10.0.0.203zabbix-proxy10.0.0.204 2. 创建独立的数据库&#xff08;最好部署在单独的机器上&#xff0c;或者部署在porxy机器上&#xff09; # 按照官网下载 proxy 的步骤中创建库和用户即可 # mysql -uroot -p passwo…

【linux】的爱恨情仇

Linux发展史&#xff1a;一段关于黑客、企鹅和科技巨头们的传奇冒险 个人主页&#xff1a;chian-ocean 文章专栏 各位朋友们&#xff0c;欢迎来到Linux的世界&#xff01;今天&#xff0c;我将带你们进入一段不拘一格的故事&#xff0c;充满了怪咖、极客、反派巨头&#xff…

微服务系列二:跨微服务请求优化,注册中心+OpenFeign

目录 前言 一、纯 RestTemplate 方案存在的缺陷 二、注册中心模式介绍 三、注册中心技术&#xff1a;Nacos 3.1 Docker部署Nacos 3.2 服务注册 3.3 服务发现 四、代码优化&#xff1a;OpenFeign工具 4.1 OpenFeign快速入门 4.2 连接池的必要性 4.3 抽取服务、最佳实…

SRS:构建实时免费视频服务器的全方位指南

SRS&#xff08;Simple Realtime Server&#xff09;是一个开源的、基于MIT协议的实时视频服务器&#xff0c;以其简单、高效而著称。它支持多种流媒体协议&#xff0c;包括RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等&#xff0c;使其成为直播和WebRTC领域的理想…

copilot教我学408---OS之文件管理

四、文件管理 (一)文件 1.文件的基本概念 2.文件元数据和索引节点(inode) 3.文件的操作 建立,删除,打开,关闭,读,写 4.文件的保护 5.文件的逻辑结构 6.文件的物理结构 (二)目录 1.目录的基本概念 2.树形目录 3.目录的操作 4.硬链接和软链接 (三)文件系统 1.文件系统的全局结构(…

论文阅读笔记:Activating More Pixels in Image Super-Resolution Transformer

论文阅读笔记&#xff1a;Activating More Pixels in Image Super-Resolution Transformer 1 背景1.1 问题1.2 提出的方法 2 创新点3 方法4 模块4.1 混合注意力模块&#xff08;HAB&#xff09;4.2 重叠交叉注意力模块&#xff08;OCAB&#xff09;4.3 同任务预训练 5 效果5.1 …

导师双选系统开发:Spring Boot技术详解

第一章 绪论 1.1 选题背景 如今的信息时代&#xff0c;对信息的共享性&#xff0c;信息的流通性有着较高要求&#xff0c;尽管身边每时每刻都在产生大量信息&#xff0c;这些信息也都会在短时间内得到处理&#xff0c;并迅速传播。因为很多时候&#xff0c;管理层决策需要大量信…

关于wordpress instagram feed 插件 (现更名为Smash Balloon Social Photo Feed)

插件地址&#xff1a; Smash Balloon Social Photo Feed – Easy Social Feeds Plugin – WordPress 插件 | WordPress.org China 简体中文 安装后&#xff0c;配置教程&#xff1a; Setting up the Instagram Feed Pro WordPress Plugin - Smash Balloon 从这里面开始看就…

Redis学习:BitMap/HyperLogLog/GEO案例 、布隆过滤器BloomFilter、缓存预热+缓存雪崩+缓存击穿+缓存穿透

Redis学习 文章目录 Redis学习1、BitMap/HyperLogLog/GEO案例2. 布隆过滤器BloomFilter3. 缓存预热缓存雪崩缓存击穿缓存穿透 1、BitMap/HyperLogLog/GEO案例 真实需求面试题 亿级数据的收集清洗统计展现对集合中数据进行统计&#xff0c;基数统计&#xff0c;二值统计&#xf…

基于Python的智能旅游推荐系统设计与实现

一、摘要 本毕业设计的内容是设计并且实现一个基于Python技术的智能旅游推荐系统。它是在Windows下&#xff0c;以MYSQL为数据库开发平台&#xff0c;使用Python技术进行设计。智能旅游推荐系统的功能已基本实现&#xff0c;主要实现首页&#xff0c;个人中心&#xff0c;用户…

从零开始的c++之旅——多态

1. 多态的概念 通俗来说就是多种形态。 多态分为编译时多态&#xff08;静态多态&#xff09;和运行时多态&#xff08;动态多态&#xff09;。 编译时多态主要就是我们之前提过的函数重载和函数模板&#xff0c;同名提高传不同的参数就可以调 用不同的函数&#xff0c…

第二十六章 Vue之在当前组件范围内获取dom元素和组件实例

目录 一、概述 二、获取dom 2.1. 具体步骤 2.2. 完整代码 2.2.1. main.js 2.2.2. App.vue 2.3. BaseChart.vue 三、获取组件实例 3.1. 具体步骤 3.2. 完整代码 3.2.1. main.js 3.2.2. App.vue 3.2.3. BaseForm.vue 3.3. 运行效果 一、概述 我们过去在想要获取一…

plt中subplot综合实战

目录 背景介绍实战 背景介绍 下面是一份贸易数据&#xff08;Prod_Trade.xlsx&#xff09;&#xff0c;需要多角度针对2012年数据进行报表分析&#xff0c;需使用subplot分格展示。Prod_Trade的数据结构包括 Date,Order_Class,Sales Transport,Trans_Cost, Region ,Category, …