以下资源包含有关 Java 8 的其他信息。请使用它们来获取有关此主题的更深入的知识。
Java 8 - 概述 JAVA 8 是 JAVA 编程语言开发的主要功能版本。它的初始版本于 2014 年 3 月 18 日发布。随着 Java 8 的发布,Java 提供了对函数式编程、新 JavaScript 引擎、新的日期时间操作 API、新的流 API 等的支持。 新功能 Lambda 表达式 − 为 Java 添加函数式处理能力。 方法参考 − 通过名称引用函数,而不是直接调用它们。使用函数作为参数。 默认方法 − 具有默认方法实现的接口。 新工具 − 添加了新的编译器工具和实用程序,如“jdeps”以找出依赖关系。 流 API − 新的流API,方
Java 8 问答 旨在帮助学生和专业人士准备各种认证考试 和工作面试 .本部分提供了有用的示例面试问题和多项选择题 (MCQ) 及其答案以及适当的解释。 SN 问题/答案类型 1 Java 8 面试题 本部分提供了大量 Java 8 面试问题,其答案隐藏在一个框中,挑战您在发现正确答案之前先尝试一下。 2 Java 8 在线测验 本节在一个页面上提供了大量 Java 8 多项选择题 (MCQ) 及其正确答案和解释。如果您选择正确的选项,它会变成绿色;否则为红色。 3 Java 8 在线测试 如果您准备参加 Java 和 Java 8 相关的认证考试,那么这部分对您来说是必须的
在 Java 8 中,Base64 终于如愿以偿。 Java 8 现在具有用于 Base64 编码的内置编码器和解码器。在 Java 8 中,我们可以使用三种 Base64 编码。 简单 − 输出映射到位于 A-Za-z0-9+/ 中的一组字符。编码器在输出中不添加任何换行符,解码器拒绝除 A-Za-z0-9+/ 以外的任何字符。 网址 − 输出映射到位于 A-Za-z0-9+_ 中的字符集。输出是 URL 和文件名安全的。 MIME − 输出映射为 MIME 友好格式。输出以每行不超过 76 个字符表示,并使用回车“\r”后跟换行“\n”作为行分隔符。编码输出的末尾没有行分
Java 8 引入了一个新的 Date-Time API 来弥补旧的 date-time API 的以下缺点。 不是线程安全的 − java.util.Date 不是线程安全的,因此开发人员在使用日期时必须处理并发问题。新的日期时间 API 是不可变的,并且没有 setter 方法。 糟糕的设计 − 默认日期从 1900 开始,月份从 1 开始,日从 0 开始,因此没有统一性。旧 API 对日期操作的直接方法较少。新的 API 为此类操作提供了许多实用方法。 时区处理困难 − 开发人员必须编写大量代码来处理时区问题。新 API 的开发考虑了特定领域的设计。 Java 8
在 Java 8 中,引入了 Nashorn,一个大大改进的 javascript 引擎,以取代现有的 Rhino。 Nashorn 提供了 2 到 10 倍的性能,因为它直接在内存中编译代码并将字节码传递给 JVM。 Nashorn 使用 Java 7 中引入的调用动态特性来提高性能。 jjs 对于 Nashorn 引擎,JAVA 8 引入了一个新的命令行工具,jjs, 在控制台执行javascript代码。 解释js文件 创建并保存文件 sample.js JAVA 文件夹中。 sample.js print(Hello World!); 打开控制台并使用以下命令。 C:\JA
Optional 是一个容器对象,用于包含非空对象。可选对象用于表示不存在值的空值。这个类有各种实用方法来帮助代码将值处理为“可用”或“不可用”,而不是检查空值。它是在 Java 8 中引入的,类似于 Guava 中的 Optional。 类声明 以下是 java.util.Optional 的声明 类- public final class Optional<T> extends Object 类方法 Sr.No. 方法和说明 1 静态 可选 empty() 返回一个空的 Optional 实例。 2 布尔等于(对象 obj) 指示某个其他对象是否“
Stream 是 Java 8 中引入的一个新的抽象层。使用 Stream,您可以以类似于 SQL 语句的声明方式处理数据。例如,考虑下面的 SQL 语句。 SELECT max(salary), employee_id, employee_name FROM Employee 上面的 SQL 表达式会自动返回最高工资员工的详细信息,而无需在开发人员端进行任何计算。使用 Java 中的集合框架,开发人员必须使用循环并进行重复检查。另一个问题是效率。由于多核处理器可以轻松使用,Java 开发人员必须编写可能非常容易出错的并行代码处理。 为了解决这些问题,Java 8 引入了流的概念,让开
Java 8 在接口中引入了默认方法实现的新概念。添加此功能是为了向后兼容,以便可以使用旧接口来利用 Java 8 的 lambda 表达式功能。 例如,“List”或“Collection”接口没有“forEach”方法声明。因此,添加这样的方法只会破坏集合框架的实现。 Java 8 引入了默认方法,使得 List/Collection 接口可以有一个 forEach 方法的默认实现,实现这些接口的类不需要实现相同的实现。 语法 public interface vehicle { default void print() { System.out.println(I
函数式接口只有一个功能可以展示。例如,具有单个方法“compareTo”的 Comparable 接口用于比较目的。 Java 8 定义了许多函数式接口,可在 lambda 表达式中广泛使用。以下是java.util.Function包中定义的功能接口列表。 下面是Java8中的接口列表。 Sr.No. 界面和说明 1 BiConsumer 表示接受两个输入参数且不返回结果的操作。 2 BiFunction 表示一个接受两个参数并产生结果的函数。 3 二元运算符 表示对两个相同类型的操作数进行操作,产生与操作数相同类型的结果。 4 双谓词 表示两
方法引用有助于通过名称指向方法。使用“::”符号描述方法引用。方法引用可用于指向以下类型的方法 - 静态方法 实例方法 使用 new 运算符 (TreeSet::new) 的构造函数 方法参考示例 JAVA。 Java8Tester.java import java.util.List; import java.util.ArrayList; public class Java8Tester { public static void main(String args[]) { List names = new ArrayList(); names
Lambda表达式是Java 8引入的,被吹捧为Java 8最大的特点。Lambda表达式方便了函数式编程,大大简化了开发。 语法 lambda 表达式具有以下语法特征。 parameter -> expression body 以下是 lambda 表达式的重要特征。 可选类型声明 − 无需声明参数的类型。编译器可以从参数的值中推断出相同的值。 参数周围的可选括号 − 无需在括号中声明单个参数。对于多个参数,括号是必需的。 可选的花括号 − 如果表达式主体包含单个语句,则无需在表达式主体中使用花括号。 可选的返回关键字 − 如果主体有一个表达式返回值,编
本地环境设置 如果您想为 Java 编程语言设置自己的环境,那么本节将指导您完成整个过程。请按照以下步骤设置您的 Java 环境。 Java SE 可以从以下链接免费下载 - https://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 你根据你的操作系统下载一个版本。 按照说明下载 Java,然后运行 .exe 在您的机器上安装 Java。在您的机器上安装 Java 后,您需要设置环境变量以指向正确的安装目录。 为 Windows 2000/XP 设置路径 假设你已经在 c:\Pr
JAVA 8 是 JAVA 编程语言开发的主要功能版本。它的初始版本于 2014 年 3 月 18 日发布。随着 Java 8 的发布,Java 提供了对函数式编程、新 JavaScript 引擎、新的日期时间操作 API、新的流 API 等的支持。 新功能 Lambda 表达式 − 为 Java 添加函数式处理能力。 方法参考 − 通过名称引用函数,而不是直接调用它们。使用函数作为参数。 默认方法 − 具有默认方法实现的接口。 新工具 − 添加了新的编译器工具和实用程序,如“jdeps”以找出依赖关系。 流 API − 新的流API,方便管道处理。 日期时
Java 8 中引入了 CompletableFuture 类来表示可以通过显式设置其值和状态来完成的 Future。它可以用作 java.util.concurrent.CompletionStage。它支持在未来完成时触发的相关功能和操作。在 java 9 CompletableFuture API 中得到了进一步的增强。以下是对 API 所做的相关更改。 支持延迟和超时。 改进了对子类化的支持。 添加了新的工厂方法。 支持延迟和超时 public CompletableFuture<T> completeOnTimeout(T value, long timeout,
在 Java 9 中,引入了一个新的多分辨率图像 API,它支持具有不同分辨率变体的多个图像。此 API 允许将一组具有不同分辨率的图像用作单个多分辨率图像。以下是多分辨率图像的主要操作。 图像 getResolutionVariant(double destImageWidth, double destImageHeight) − 获取一个特定图像,该图像是表示该逻辑图像的最佳变体。 列表 getResolutionVariants() − 获取所有分辨率变体的可读列表。 示例 import java.io.IOException; import java.net.URL;
Java 8 中引入了可选类以避免空值检查和 NullPointerException 问题。在 java 9 中,添加了三个新方法来改进其功能。 流() ifPresentOrElse() 或() stream() 方法 语法 public Stream<T> stream() 如果存在值,则返回仅包含该值的顺序 Stream,否则返回空 Stream。 示例 import java.util.Arrays; import java.util.List; import java.util.Optional; import java.util.stream.Collec
在 java 7 中引入了 Diamond 运算符以使代码更具可读性,但它不能与 Anonymous 内部类一起使用。在 java 9 中,它也可以与匿名类一起使用,以简化代码并提高可读性。考虑 Java 9 之前的以下代码。 Tester.java 现场演示 public class Tester { public static void main(String[] args) { Handler<Integer> intHandler = new Handler<Integer>(1) { @Override
@Deprecated 注解是在 java 5 版本中引入的。带有 @Deprecated 注释的程序元素意味着它不应出于以下任何原因使用 - 它的使用可能会导致错误。 未来版本可能不兼容。 它可能会在未来的版本中被移除。 一种更好、更有效的替代方案已经取代了它。 每当使用不推荐使用的元素时,编译器都会生成警告。在 Java 9 中,@Deprecated 注解做了两个新的增强。 删除 − 指示带注释的元素是否会在未来版本中被删除。默认值为false。 因为 - 返回注释元素被弃用的版本。默认值为空字符串。 自弃用 以下 Java 9 上的 Boolean 类 java
try-with-resources 语句是一个带有适当声明的一个或多个资源的 try 语句。这里的资源是一个对象,一旦不再需要它就应该关闭。 try-with-resources 语句确保在需求完成后关闭每个资源。任何实现 java.lang.AutoCloseable 或 java.io.Closeable 接口的对象都可以用作资源。 在 Java 9 之前,资源将在 try 之前或在 try 语句中声明,如下面的示例所示。在本例中,我们将使用 BufferedReader 作为资源来读取字符串,然后关闭 BufferedReader。 Tester.java 现场演示 import
java