甲骨文公司Oracle Java Development Kit(JDK)是一款Java开发工具包,包含Java运行环境(java运行库),Java开发套件和Java基础类库源代码.Java Runtime Environment(JRE)是运行Java程序的运行环境,不管是做Java开发还是从事安卓开发,都必须在系统安装JRE运行环境.Java语言的贡献力量是其他任何技术无可比拟的.
JDK20新特性:
- Scoped values是处于孵化器开发阶段的 API,它支持在线程内和线程间共享不可变数据。这些变量优于线程局部变量,尤其是在使用大量虚拟线程时。作用域值允许在大型程序中的组件之间安全有效地共享数据,而无需求助于方法参数。目标包括易用性、可理解性和性能。
- 记录模式,在第二个预览中,使用模式增强 Java 编程语言以解构记录值。可以嵌套记录模式和类型模式,以实现声明式、强大且可组合的数据导航和处理形式。目标包括扩展模式匹配以表达更复杂、可组合的数据查询,并且不改变类型模式的语法或语义。自JDK 19中的第一个预览版以来的主要变化包括添加对通用记录模式的类型参数推断的支持,支持记录模式出现在增强for语句的标头中,以及删除对命名记录模式的支持。
- 外部函数和内存 API引入了一种 API,Java 程序可以通过该 API 与 Java 运行时之外的代码和数据进行互操作。API 使 Java 程序能够调用本机库并处理本机数据,而没有 JNI(Java 本机接口)的脆弱性和危险性。该 API 之前在 JDK 版本 17 和 18 中孵化,并在 JDK 19 中进行了预览。自 JDK 19 以来添加的改进包括统一和MemorySegment抽象MemoryAddress、增强的MemoryLayout层次结构以及拆分MemorySession和Arena促进SegmentScope 跨维护边界的段共享。
- 虚拟线程 是轻量级线程,可减少编写、维护和观察高吞吐量并发应用程序的工作量。自 JDK 19 中的第一个预览版以来的微小变化包括少量 API 更改(在 JDK 19 中永久化)和降级ThreadGroup(也在 JDK 19 中永久化)。
- 结构化并发具有一个 API 来简化多线程编程,并将在不同线程中运行的多个任务视为一个工作单元。简化了错误处理和取消,提高了可靠性并增强了可观察性。自从在 JDK 19 中孵化以来,唯一的变化是它StructuredTaskScope已经更新为支持在任务范围内创建的线程继承范围值。
- switch 语句和表达式的模式匹配可以简洁、安全地表达复杂的面向数据的查询。之前在JDK 17、JDK 18和JDK 19中进行过预览,第四次预览将实现与[url=https://openjdk.org/jeps/432]Record Patterns 的[/url]持续共同进化,允许根据经验和反馈进行持续改进。自第三次预览以来,switch 模式匹配的主要变化包括简化 switch 标签的语法,支持推断 switch 语句和表达式中通用模式和记录模式的类型参数。此外,现在会抛出对枚举类的详尽切换MatchException,而不是IncompatibleClassChangeError在运行时没有应用切换标签时抛出。
JDK20特点:
OpenJDK Java 20 引入了作用域(scope)值作为孵化 API。Java 的作用域值允许在线程内和线程间共享不可变数据,并且优先于线程局部变量。Java 作用域值旨在易于使用、易于理解、增强可靠性且高性能。
作用域值是一种新的语言结构,它允许声明一个只能在当前范围(extent)内访问的变量。一个范围是一个代码块或一个方法调用栈,它可以包含多个线程。作用域值只能被当前范围内的代码读取,不能被其他范围内的代码读取或修改。因此,作用域值是不可变的,并且可以安全地在线程之间共享。
Java 20 还对 Vector API 进行了第四次孵化更新,以便在运行时编译为支持的 CPU 架构上的最佳 vector 指令。与 JDK 19 相比,Java 20 的 Vector API 没有变化,只是修复了一些错误 Bug 并提高了性能。
Java / JDK 20 的第二个预览形式是虚拟线程功能,作为高吞吐量并发应用程序的轻量级线程。JDK 19 上的虚拟线程有一些小的 API 更改以及此预览功能的其他基本改进。
新版本还对记录模式、switch 语句的模式匹配、外部函数和内存 API 以及 JDK / Java 20 的结构化并发进行了更新。
JDK和JRE的区别:
如果在学习或从事Java开发、编译java程序,那么安装JDK
如果仅需运行java程序,只需要Java运行库,那么安装JRE
Java Development Kit(简称JDK)= Java开发套件,Java开发工具包,面向Java语言开发者。
Java Runtime Environment(简称JRE)= Java运行库,Java运行环境,面向Java程序用户们。
JDK JAVA环境变量配置:
此电脑->右键->属性->高级系统设置->环境变量:
1、「用户变量」和「系统变量」分别新建2条变量
变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.8.0_311(安装目录版本号路径)
2、「系统变量」双击->Path->编辑环境变量 -> 分别新建3条
%JAVA_HOME%\bin
C:\Program Files\Java\jdk20.0_1\bin
C:\Program Files\Java\jre20.0_1
# 检查JDK环境配置命令:
CMD 输入 java -version