Java版本和功能指南

本文是一份关于Java不同版本和功能的指南,涵盖了从Java 8到Java 13的主要特性,包括Lambda表达式、Streams、JShell、HTTP客户端、模块系统等。解释了为何公司仍使用Java 8,以及如何在不同Java版本之间选择。推荐使用AdoptOpenJDK获取Java版本,并介绍了JRE和JDK的区别。此外,文章还提到了Java 11的局部变量类型推断(var)以及Java 13的开关表达式和多行字符串等新特性。
摘要由CSDN通过智能技术生成

这是优锐课为你整理的你需要了解的有关不同Java版本和功能的所有信息。

你可以使用本指南查找和安装最新的Java,了解Java发行版(AdoptOpenJdk,OpenJDK,OracleJDK等)之间的差异,以及获得Java语言功能的概述,包括Java版本8-13。

背景资料

首先,让我们看一下人们在尝试为其项目选择正确的Java版本时遇到的一些常见的实际问题。

如果要了解有关特定版本的更多信息,请转到AdoptOpenJDK网站,选择最新的Java版本,下载并安装它。 然后回到本指南,仍然学习有关不同Java版本的一两个东西。

我应该使用哪个Java版本?

截至2019年9月,Java 13是最新发布的Java版本,每6个月更新一次版本——Java 14计划在2020年3月发布,Java 15计划在2020年9月发布,依此类推。过去,Java的发布周期更长,最长可达3-5年!
在这里插入图片描述
随着许多新版本的出现,基本上有以下实际使用场景:
• 公司中的遗留项目经常被Java 8卡住。因此,你也将被迫使用Java 8。
• 一些遗留项目甚至被卡在了Java 1.5(2004年发布)或1.6(2006年发布)上——抱歉,朋友们!
• 如果你要确保使用最新的集成开发环境、框架和构建工具,并开始一个全新的项目,你可以毫不犹豫地使用Java 11 (LTS),甚至是最新的Java 13。
• 在Android开发的特殊领域,Java版本基本上停留在Java 7上,并提供了一组特定的Java 8功能。或者,你可以切换到使用Kotlin编程语言。

为什么公司仍然坚持使用Java 8?

公司仍然坚持使用Java 8的原因有多种,有多种:
• 构建工具(Maven、Gradle等)。)和某些库最初具有Java版本> 8的错误,并需要更新。即使在今天,例如 Java 9+,某些构建工具在构建Java项目时会打印出“反射访问”警告,即使构建良好,也只是“感觉未准备好”。
• 直到Java 8为止,你几乎都在使用Oracle的JDK构建,并且你不必在乎许可。但是,甲骨文在2019年更改了许可计划,这使Internet疯狂地说“ Java不再免费”了,随之而来的是相当多的混乱。但是,这并不是真正的问题,你可以在本指南的“ Java发行版”部分中进行了解。
• 一些公司有只使用LTS版本的政策,并依赖他们的操作系统供应商来提供这些版本,这需要时间。

总结起来,你会遇到一系列实际问题(升级工具,库,框架)和政治问题。

为什么某些Java版本称为1.X?

9之前的Java版本仅具有不同的命名方案。因此,Java 8也可以称为1.8,Java 5也可以称为1.5,以此类推。当你使用以下版本发出java -version命令时,将得到如下输出:

c:\Program Files\Java\jdk1.8.0_191\bin>java -version
java version "1.8.0_191" (1)
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

这简直就是Java8。随着Java 9切换到基于时间的发行版,命名方式也发生了变化,并且Java版本不再以1.x开头。现在,版本号如下所示:

c:\Program Files\Java\jdk11\bin>java -version
openjdk version "11" 2018-09-25 (1)
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

Java版本之间有什么区别? 我应该学习特定的吗?

来自其他编程语言,并且版本之间存在重大差异,例如Python 2至3,你可能想知道是否同样适用于Java。

Java在这方面很特殊,因为它向后兼容。这意味着你的Java 5或8程序可以保证与Java 8-13虚拟机一起运行-除了一些例外,你现在不必担心。
显然,它反过来没有用,比如说你的程序依赖Java 8功能,而Java 13功能在Java 8 JVM下根本不可用。

这意味着两件事:
• 你不仅可以“学习”特定的Java版本,例如Java 12。
• 相反,你将在Java 8之前的所有语言功能中都有良好的基础。
• 然后,你可以从像这样的指南中了解Java 9-13附带了哪些附加功能,并尽可能使用它们。

Java版本之间这些新功能的示例是什么?

看看下面的“ Java功能8-13”部分。

但根据经验:较旧,较长的发行周期(3-5年,直到Java 8)意味着每个发行版都有许多新功能。

六个月的发布周期意味着每个版本的功能会更少,因此你可以快速掌握Java 9-13语言功能。

JRE和JDK有什么区别?

到目前为止,我们仅谈论“ Java”。但是Java到底是什么?
首先,你需要区分JRE(Java运行时环境)和JDK(Java开发工具包)。

从历史上看,如果你只对运行Java程序感兴趣,则仅下载JRE。 JRE除其他外包括Java虚拟机(JVM)和“ java”命令行工具。

要开发新的Java程序,你需要下载JDK。 JDK包括JRE拥有的所有内容,以及编译器javac和其他几个工具,例如javadoc(Java文档生成器)和jdb(Java Debugger)。

现在我为什么要用过去时说话呢?

直到Java 8为止,Oracle网站都将JRE和JDK作为单独的下载提供,尽管JDK始终始终在单独的文件夹中包含JRE。对于Java 9,这种区别基本上已经消失了,你总是在下载JDK。 JDK的目录结构也已更改,不再具有显式的JRE文件夹。

因此,即使某些发行版(请参阅“ Java发行版”部分)仍提供单独的JRE下载,似乎也存在仅提供JDK的趋势。因此,从现在开始,我们将交替使用Java和JDK。

然后如何安装Java或JDK?

目前,请忽略Java-Docker映像,.msi包装器或特定于平台的软件包。最后,Java只是一个.zip文件。仅此而已。

因此,将Java安装到计算机上所需要做的就是解压缩jdk- {5-13} .zip文件。你甚至不需要管理员权限。

你解压缩后的Java文件如下所示:

Directory C:\dev\jdk-11
12.11.2019  19:24    <DIR>          .
12.11.2019  19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值