Java开发的基石:JDK

Java开发的基石:JDK



前言

本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远!

一、引入

JDK是Java Development Kit的缩写,是Java开发工具的核心组件。JDK包含了Java编译器、Java运行时环境、Java API类库和其他工具,用于开发、编译、运行和调试Java应用程序。JDK是Java开发的基础,是Java程序员必须掌握的工具之一。

二、JDK的发展历程

JDK有很多版本,每个版本都有自己的特点和功能。目前,最新的稳定版本是JDK 17,而最广泛使用的版本是JDK 8。下面是JDK的版本历史:

  1. JDK 1.0:Java的第一个版本,于1996年1月发布。
  2. JDK 1.1:于1997年2月发布,增加了内部类、JavaBean、RMI等功能。
  3. JDK 1.2:于1998年12月发布,引入了Swing、Java 2D和JavaBeans组件体系结构。
  4. JDK 1.3:于2000年5月发布,增加了Java Sound、Java Naming and Directory Interface (JNDI) 和Java Platform Debugger Architecture (JPDA) 等功能。
  5. JDK 1.4:于2002年2月发布,增加了Java Web Start、Java Management Extensions (JMX) 和Java Native Interface (JNI) 扩展功能。
  6. JDK 5:于2004年9月发布,增加了Java语言的自动装箱、泛型、枚举和注解等特性。
  7. JDK 6:于2006年12月发布,增强了JDBC、Java Web Services和Java Compiler API等功能。
  8. JDK 7:于2011年7月发布,引入了新的语言特性、NIO 2.0和Fork/Join Framework等功能。
  9. JDK 8:于2014年3月发布,增加了Lambda表达式、Stream API和Date Time API等新特性。
  10. JDK 9:于2017年9月发布,增加了模块化、REPL和HTTP/2支持等新特性。
  11. JDK 10:于2018年3月发布,增加了局部变量类型推断、应用类数据共享和垃圾回收器接口等新功能。
  12. JDK 11:于2018年9月发布,增加了HTTP Client API、ZGC垃圾回收器和Epsilon垃圾收集器等新特性。
  13. JDK 12-16:于2019年3月至2021年3月期间发布,引入了新的语言特性、JVM特性和垃圾收集器等功能。
  14. JDK 17:于2021年9月发布,增加了Sealed类、Pattern Matching for switch、Vector API和Foreign Function and Memory API等新特性。

从JDK1.4到JDK5,命名格式为何如此大变化?

JDK命名从1.4变成5的主要原因是,JDK5这个版本引入了许多新特性,发生了巨大变化,为了更好地反映Java技术的发展和进步,以更直观的方式展示Java的版本号。

三、JDK主要目录结构解析

在JDK 8中,JDK的主要目录结构如下:

复制代码
jdk1.8.0/
├── bin/
│   ├── appletviewer
│   ├── extcheck
│   ├── idlj
│   ├── jar
│   ├── jarsigner
│   ├── java
│   ├── javac
│   ├── javadoc
│   ├── javafxpackager
│   ├── javah
│   ├── javap
│   ├── java-rmi.cgi
│   ├── javaws
│   ├── jcmd
│   ├── jconsole
│   ├── jdb
│   ├── jinfo
│   ├── jmap
│   ├── jps
│   ├── jrunscript
│   ├── jsadebugd
│   ├── jstack
│   ├── jstat
│   ├── jstatd
│   ├── keytool
│   ├── native2ascii
│   ├── orbd
│   ├── pack200
│   ├── policytool
│   ├── rmic
│   ├── rmid
│   ├── rmiregistry
│   ├── schemagen
│   ├── serialver
│   ├── servertool
│   ├── tnameserv
│   ├── unpack200
│   └── wsgen
├── include/
│   └── *.h
├── jre/
│   ├── bin/
│   ├── lib/
│   ├── plugin/
│   ├── COPYRIGHT
│   ├── LICENSE
│   ├── README
│   └── THIRDPARTYLICENSEREADME.txt
├── lib/
│   ├── tools.jar
│   ├── dt.jar
│   ├── jconsole.jar
│   ├── missioncontrol
│   ├── visualvm
│   ├── ant-javafx.jar
│   ├── ant-junit.jar
│   ├── ant-launcher.jar
│   ├── ant.jar
│   ├── jfxswt.jar
│   ├── javafx-mx.jar
│   ├── jfr
│   ├── jfr.jar
│   ├── jfxrt.jar
│   └── management-agent.jar
├── src.zip
├── COPYRIGHT
├── LICENSE
└── README.html

下面是这些目录的作用:

  1. bin/:该目录包含了Java开发和执行所必需的核心工具和实用程序。其中包括javac用于编译Java源代码、java用于运行Java应用程序、jar用于创建和操作Java归档文件等工具。还有其他的工具用于故障排除和调试,例如jconsolejvisualvmjstack等等。

  2. include/:该目录包含了用于使用Java Native Interface (JNI) 开发本地扩展所需的C头文件。JNI是一种编程框架,允许Java应用程序调用用C或C++编写的本地代码。

  3. jre/:该目录包含了Java Runtime Environment (JRE),用于运行Java应用程序。JRE包括Java虚拟机 (JVM)、类库和其他运行Java应用程序所需的文件。jre/bin/ 目录包含了用于启动JRE的可执行文件,例如 javajavawjavaws

  4. lib/:该目录包含了Java库和工具,例如 tools.jarjfxswt.jarjfxrt.jar 等等。这些文件通常用于开发Java应用程序。其中tools.jar是开发Java应用程序所需的核心库,它包含了Java编译器 (javac) 和其他开发工具。jfxswt.jarjfxrt.jar 是JavaFX 库的一部分,用于开发富客户端应用程序。

  5. src.zip:该文件是JDK的源代码压缩包,包含了Java开发工具和库的源代码。这些源代码可以用于学习JDK的内部实现和调试。

  6. COPYRIGHT:该文件包含了JDK的版权声明。

  7. LICENSE:该文件包含了JDK的许可证。

  8. README.html:该文件包含了JDK的基本信息和使用说明。

这些目录包含了Java开发和执行所必需的工具、库、文件和源代码。其中,bin/目录是最重要的一个目录,因为它包含了Java的核心工具,可以在终端中使用。

四、JDK的使用

  1. 要使用JDK进行Java开发,需要将JDK安装到计算机上,并配置Java环境变量(具体怎么安装,网上教程一大把)。安装完JDK后,可以使用命令行工具或集成开发环境(IDE)进行Java开发。

  2. 在命令行中,可以使用javac编译Java源代码,生成字节码文件,然后使用java命令运行字节码文件。例如:

java 复制代码
javac HelloWorld.java
java HelloWorld
  1. 在IDE中,可以使用IDE提供的代码编辑器、自动完成、调试器等功能,大大提高开发效率和代码质量。常见的Java IDE包括Eclipse、IntelliJ IDEA和NetBeans等。
  2. 除了Java开发,JDK还提供了丰富的工具和组件,用于性能优化、调试和诊断等。例如,jstat可以监控JVM的性能指标,jmap可以生成堆转储文件,jdb可以进行Java程序的调试等等
相关推荐
Scott9999HH4 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
腻害兔4 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
码智社5 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海5 小时前
python 列表、元组、集合和字典
开发语言·python
萧瑟余晖6 小时前
JDK 26 新特性详解
java·开发语言
马优晨6 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
人邮异步社区8 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大9 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai9 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
维天说9 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json