什么是JDK以及JDK都由哪些部分组成详解

 更新时间:2026年06月30日 09:37:58   作者:程序员黑豆  
这篇文章主要介绍了什么是JDK以及JDK都由哪些部分组成的相关资料,通过示例代码讲解了JDK的基本概念、核心架构、与JRE和JVM的关系,以及Java程序从源码到执行的完整流程,需要的朋友可以参考下

前言

Java作为全球最流行的编程语言之一,其成功离不开强大而完善的开发工具包——JDK。无论你是刚刚踏入Java世界的新手,还是经验丰富的开发者,深入理解JDK的组成、工作原理和最佳实践,都能显著提升你的开发效率和问题解决能力。

让我们开始这段JDK探索之旅吧!

一、什么是JDK?

JDK(Java Development Kit) 是Java开发工具包,它是Oracle公司为Java开发者提供的一套完整的开发环境。无论你是初学者还是资深开发者,只要想编写、编译、调试和运行Java程序,JDK都是必不可少的核心工具。

1.1 为什么需要JDK?

  • 编译需求:Java源代码(.java文件)需要编译成字节码(.class文件)才能执行
  • 运行环境:提供Java程序运行所需的虚拟机(JVM)和核心类库
  • 开发工具:包含编译器、调试器、打包工具等全套开发工具链
  • 标准库:提供丰富的API,避免重复造轮子

简单来说:没有JDK,就无法进行Java开发

二、JDK的核心架构与组件

JDK是一个分层架构,理解其组成有助于掌握Java开发的完整生态:

2.1 开发工具(Development Tools)

这是JDK区别于JRE的核心部分,包含以下关键工具:

工具作用常用命令示例
javacJava编译器,将.java源文件编译为.class字节码javac HelloWorld.java
javaJava程序启动器,运行编译后的.class文件java HelloWorld
jar打包工具,创建可执行的JAR文件jar cvf app.jar *.class
javadocAPI文档生成器javadoc -d docs *.java
jdbJava调试器jdb HelloWorld
jconsole图形化监控工具监控JVM性能
jvisualvm可视化性能分析工具分析内存、线程等

2.2 JRE(Java Runtime Environment)

JRE是JDK的子集,专门用于运行Java程序,包含:

  • JVM(Java虚拟机):执行字节码的核心引擎
  • 核心类库:java.lang、java.util、java.io等基础包
  • 配置文件:安全策略、字体配置等

三、JDK、JRE、JVM:包含关系解析

三者是层层包含的关系,理解这一点对Java环境配置至关重要:

3.1 包含关系公式

JDK = JRE + 开发工具
JRE = JVM + 核心类库

3.2 实际应用场景

场景需要安装说明
仅运行Java程序JRE用户只需运行环境,如运行.jar文件
开发Java应用JDK开发者需要编译、调试等全套工具
服务器部署JRE或JDK生产环境通常只需JRE,但JDK便于排查问题
学习JavaJDK需要查看源码、调试、生成文档

四、Java程序从源码到执行的完整流程

理解Java程序的完整生命周期,有助于排查编译和运行时问题:

4.1 详细步骤解析

4.1.1 编写源代码

// HelloWorld.java
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

4.1.2 编译阶段(javac)

# 编译命令
javac HelloWorld.java

# 编译过程
1. 词法分析:将源码分解为token
2. 语法分析:构建抽象语法树(AST)
3. 语义分析:检查类型、作用域等
4. 生成字节码:输出HelloWorld.class文件

五、常见JDK版本

  • JDK 8(LTS):2014年发布,引入Lambda表达式、Stream API
  • JDK 11(LTS):2018年发布,移除JavaFX,引入HTTP Client
  • JDK 17(LTS):2021年发布,密封类、模式匹配增强
  • JDK 21(LTS):2023年发布,虚拟线程、结构化并发

注:LTS = Long-Term Support(长期支持版本)

六、总结

JDK 是 Java 开发的基础,理解其组成结构有助于我们更好地掌握 Java 开发。
核心记忆点:

  • JDK = 开发工具 + JRE
  • JRE = JVM + 核心类库
  • JVM = 类加载 + 字节码执行 + 内存管理 + 垃圾回收

到此这篇关于什么是JDK以及JDK都由哪些部分组成的文章就介绍到这了,更多相关Java工具包JDK详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring 中jdbcTemplate 实现执行多条sql语句示例

    Spring 中jdbcTemplate 实现执行多条sql语句示例

    本篇文章主要介绍了Spring 中jdbcTemplate 实现执行多条sql语句示例,可以对多个表执行多个sql语句,有兴趣的可以了解一下。
    2017-01-01
  • java的MybatisPlus调用储存过程的返回数据问题

    java的MybatisPlus调用储存过程的返回数据问题

    这篇文章主要介绍了java的MybatisPlus调用储存过程的返回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • java 实现局域网文件传输的实例

    java 实现局域网文件传输的实例

    这篇文章主要介绍了java 实现局域网文件传输的实例的相关资料,这里提供了实现代码可以帮助大家理解TCP及文件读写的知识,需要的朋友可以参考下
    2017-07-07
  • Java8接口默认静态方法及重复注解原理解析

    Java8接口默认静态方法及重复注解原理解析

    这篇文章主要介绍了Java8接口默认静态方法及重复注解原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Java的编译时错误和运行时错误问题

    Java的编译时错误和运行时错误问题

    这篇文章主要介绍了Java的编译时错误和运行时错误问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 关于SpringBoot拦截器拦截静态资源的问题

    关于SpringBoot拦截器拦截静态资源的问题

    这篇文章主要介绍了关于SpringBoot拦截器拦截静态资源的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • SpringBoot整合Spring Security实现基础认证与授权

    SpringBoot整合Spring Security实现基础认证与授权

    在后端开发领域,认证(Authentication) 和授权(Authorization) 是系统安全的核心基石,Spring Security 作为 Spring 生态官方推荐的安全框架,是Java 后端安全开发的首选方案,本文给大家介绍了SpringBoot整合Spring Security实现基础认证与授权
    2026-04-04
  • springboot+vue2+elementui实现时间段查询方法

    springboot+vue2+elementui实现时间段查询方法

    这篇文章主要介绍了springboot+vue2+elementui实现时间段查询方法,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-05-05
  • 解读nacos获取配置文件的大致过程

    解读nacos获取配置文件的大致过程

    这篇文章主要介绍了nacos获取配置文件的大致过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • springboot如何获取yml文件的自定义参数

    springboot如何获取yml文件的自定义参数

    这篇文章主要介绍了springboot如何获取yml文件的自定义参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03

最新评论