JDK 厂商 开源JDK OpenJDK JDK安装 Java安装 JDK版本区别 Java各版本区别Java8 到Java17变化 jdk8 到 jdk17变化

1、JDK厂商

2、JDK安装 (示例 为 JDK 8)

官方安装文档

https://docs.oracle.com/javase/8/docs/technotes/guides/install/windows_jdk_install.html#CHDEBCCJ

2.1、下载JDK8安装包

下载地址, Oracle官网JDK需要登录

根据自己电脑系统选择下载
在这里插入图片描述

如果没有账号可以用我下载的这个JDK8安装包(包含中文文档) 123网盘 网盘不需要登录下载
在这里插入图片描述

双击 jdk 安装程序 进行安装
在这里插入图片描述
这三个包都要选择安装所有
在这里插入图片描述

在这里插入图片描述
一直点下一步就可以了

2.2、环境变量配置

2.2.1、配置 JAVA_HOME 环境变量

打开环境变量设置 > 新建环境变量 JAVA_HOME

变量名:JAVA_HOME
变量值:jdk安装目录; 变量值是自己的jdk安装目录:例如:D:\JDK\jdk1.8.0_161

在这里插入图片描述

2.2.2、配置 CLASSPATH 环境变量

打开环境变量设置 > 新建环境变量 CLASSPATH

变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

在这里插入图片描述

2.2.3、配置 Path 环境变量

打开环境变量设置 > 找到 Path 编辑 这个环境变量

在这里插入图片描述

新建一个环境变量值
变量值:%JAVA_HOME%\bin
在这里插入图片描述
这里要特别注意一下,win10环境变量值是一整行的,并不是像Win11 一行一行的, win10添加 Path变量 值为 %JAVA_HOME%\bin; 多了一个 ;结尾分号

最后测试安装是否成功

打开 CMD 运行 java -version 出现版本号就是安装成功了
在这里插入图片描述

3、Java8 至 Java17 变化

JDK 8:

主要升级内容:

  • Lambda表达式:支持函数式编程。
  • 函数式接口:引入了Function、Predicate、Consumer等接口。
  • Stream流:用于处理集合数据的函数式流式操作。
  • 新的日期和时间API:引入了java.time包,提供了更好的日期和时间处理方式。
  • 默认方法:在接口中允许定义默认实现。
  • 新的垃圾收集器:如G1收集器等。
  • Nashorn JavaScript引擎:用于在Java中运行JavaScript代码。

去除的内容:

  • 永久代(PermGen)和相关的垃圾收集器:用元空间(Metaspace)代替。

JDK 9:

主要升级内容:

  • 模块化系统(Jigsaw项目):引入了模块化概念,增加了模块系统。
  • 接口私有方法:允许在接口中定义私有方法。
  • 改进的Javadoc:改进了Javadoc工具,提供了更好的文档生成体验。
  • 新的垃圾收集器:如G1收集器等。

JDK 10:

主要升级内容:

  • 局部变量类型推断:允许在局部变量的声明中使用var关键字进行类型推断。
  • 并行全垃圾收集器:改进了并行GC的性能。
  • 应用类数据共享(Application Class Data Sharing):提高了应用启动的速度。

JDK 11:

主要升级内容:

  • HTTP客户端标准API:引入了标准的HTTP客户端API。
  • 本地变量语法增强:允许在Lambda表达式中使用var关键字进行类型推断。
  • 嵌套访问控制:增加了一些新的访问控制修饰符。
  • ZGC垃圾收集器:引入了一种低延迟垃圾收集器。

JDK 12:

主要升级内容:

  • Switch表达式:增强了Switch语句的写法。
  • 新的垃圾收集器(Shenandoah收集器):引入了一种低延迟垃圾收集器。

JDK 13:

主要升级内容:

  • 文本块(Text Blocks):简化了多行字符串的书写方式。
  • Switch表达式改进:进一步增强了Switch表达式的功能。
  • 动态CDS(Class Data Sharing):提高了应用启动的速度。

JDK 14:

主要升级内容:

  • JEP343(垃圾收集器接口):定义了垃圾收集器的接口。
  • JEP345(预言家):用于根据历史数据预测未来数据。
  • JEP359(记录类型):引入了一种新的数据类型,用于快速定义不可变的数据类。

JDK 15:

主要升级内容:

  • 隐藏类(Hidden Classes):用于提高动态语言的性能。
  • Sealed Classes:限制类的继承。
  • GC的Epsilon收集器:一种无操作的垃圾收集器。

JDK 16:

主要升级内容:

  • 记录类型(Records):简化了数据类的定义。
  • 模式匹配(Pattern Matching):增强了Switch表达式的模式匹配功能。
  • 垃圾回收器(ZGC、Shenandoah):改进了垃圾回收器的性能和效率。

JDK 17:

主要升级内容:

  • Sealed Classes:增强了Sealed Classes的灵活性。
  • Pattern Matching:进一步改进了模式匹配功能。
  • 垃圾回收器(ZGC、Shenandoah):进一步改进了垃圾回收器的性能和效率。

猜你喜欢

转载自blog.csdn.net/qq_40739917/article/details/132914519