
JDK常用特性指南
文章平均质量分 78
从JDK8到JDK17常用的新特性汇总,以及JDK后续新版本特性。
王哲晓
没有高深的知识,没有进阶的技巧,万丈高楼平地起!
展开
-
第十五章 JDK 8 重复注解与类型注解
以来,注解开始变得非常流行,并在各个框架和项目中被广泛使用。不过注解有一个很大的限。引入了重复注解的概念,允许在同一个地方多次使用同一个注解。:表示该注解能写在类型参数的声明语句中。制是:在同一个地方不能多次使用同一个注解。:表示注解可以在任何用到类型的地方使用。1.1.4. 解析得到指定注解。1.1. 重复注解的使用步骤。定义一个可以重复的注解。定义重复的注解容器注解。原创 2024-11-20 00:49:47 · 273 阅读 · 0 评论 -
第十四章 JDK 8新的日期和时间 API
JDK 8中增加了一套全新的日期时间API,这套API设计合理,是线程安全的。新的日期及时间API位于java.time包中,下面是一些关键类。LocalDate。原创 2024-11-19 23:05:47 · 1050 阅读 · 0 评论 -
第十三章 Optional类的使用
检查,防止NullPointerException。如果调用对象包含值,返回该值,否则返回参数。它的作用主要就是为了解决避免。如果调用对象包含值,返回该值,否则返回。如果有值对其处理,并返回处理后的。是一个没有子类的工具类,有值则将其返回,否则抛出。原创 2024-11-19 22:00:51 · 874 阅读 · 0 评论 -
第十二章 并行Stream流
使用的是Fork/Join框架。Fork/Join框架自JDK 7引入。Fork/Join框架可以将一个大任务拆分为很多小任务来异步执行。Fork/Join框架主要包含三个模块:1.线程池:2.任务对象:3.执行任务的线程:原创 2024-11-19 21:26:12 · 1070 阅读 · 0 评论 -
第十一章 对Stream流的聚合函数处理
分区操作是将流中的元素根据某个条件分成两个或多个子流。分区操作的结果是一个流,而不是一个集合。例如,可以使用分区操作将学生按照分数高低分成两个子流:高分和低分。,其中键是分类函数返回的值,值是具有该分类值的元素的列表。例如,可以使用分组操作将交易记录按照货币类型分成不同的组,每组包含所有相同货币类型的交易记录1。比如获取最大值,获取最小值,求总和,平均值,统计数量。分组操作是将流中的元素按照某个分类函数分成不同的组。会根据指定的连接符,将所有元素连接成一个字符串。,其中键是分区条件,值是对应的流1。原创 2024-11-18 23:51:25 · 902 阅读 · 0 评论 -
第十章 收集Stream流中的结果
上图中,我们针对流操作完成之后,进行了循环遍历输出、统计个数、总数等操作,如果需要将流的结果保存到数组或集合中,我们使用JDK 8提供的方法收集流中的数据。接口对象来指定收集到哪种集合中。方法来将结果放到一个数组中,返回值类型是。类提供一些方法,可以作为。方法,其参数需要一个。原创 2024-11-18 23:20:21 · 401 阅读 · 0 评论 -
第九章 Stream流常用方法及注意事项
Stream流模型的操作很丰富,这里介绍一些常用的API。这些方法可以被分成两种::返回值类型不再是Stream类型的方法,不再支持链式调用。本小节中,终结方法包括count和 forEach 方法。:返回值类型仍然是Stream类型的方法,支持链式调用。除了终结方法外,其余方法均为非终结方法。备注:本小节之外的更多方法,请自行参考API文档。1. Stream只能操作一次2. Stream方法返回的是新的流3. Stream不调用终结方法,中间的操作不会执行二、原创 2024-11-16 21:36:19 · 1626 阅读 · 0 评论 -
第八章 获取Stream流的两种方式
根据Collection获取流:所有的。用来获取流,所以其所有实现类均可获取流。由于数组对象不可能添加默认方法,所以。的子接口,所以获取对应的流需要分。接口中提供了静态方法。原创 2024-11-16 20:31:42 · 363 阅读 · 0 评论 -
第七章 初识Stream流
当我们需要对集合中的元素进行操作的时候,除了必需的添加、删除、获取外,最典型的就是集合遍历。每个需求都要循环一次,还要搞一个新集合来装数据,如果希望再次遍历,只能再使用另一个循环从头开始。能让我们快速完成许多复杂的操作,如筛选、切片、映射、查找、去除重复,统计,匹配和归约。每当我们需要对集合中的元素进行操作的时候,总是需要进行循环、循环、再循环。流不是一种数据结构,不保存数据,而是对数据进行加工处理。乔布斯、王哲晓、雷军、比尔盖茨、特朗普、王宝贝强、王浩然。我们真正要做的事情内容被更好地体现在代码中。原创 2024-11-16 20:21:03 · 374 阅读 · 0 评论 -
第六章 常见方法引用
方法引用是对Lambda表达式符合特定情况下的一种缩写,它使得我们的Lambda表达式更加的精简,也可以理解为Lambda表达式的缩写形式不过要注意的是方法引用只能引用已经存在的方法。原创 2024-11-16 13:03:30 · 687 阅读 · 0 评论 -
第五章 JDK 8内置常用函数式接口
它们主要在包中,下面是最常用的几个接口:接口。原创 2024-11-16 00:49:27 · 844 阅读 · 0 评论 -
第四章 JDK 8接口新增的两个方法
直接使用接口名调用即可:接口名静态方法名();原创 2024-11-15 20:44:01 · 490 阅读 · 0 评论 -
第三章 Lambda实现原理
在运行的时候会生成一个内部类,为了验证是否生成内部类,可以在运行时加上 -运行程序,控制台可以得到预期的结果,但是并没有出现一个新的类,也就是说。上一个章节我们对Lambda做了基本的介绍及使用,这一章我们就来探究。我们可以看到匿名内部类会在编译后产生一个类:Test$1.class。表达式,所以带有 $main表示,因为是第一个,所以。,对字节码进行反汇编,查看字节码指令。并没有在编译的时候产生一个新的类。可以看到在类中多出了一个私有的静态方法。,加上这个参数后,运行时会将生成的内部类。原创 2024-11-15 00:45:59 · 419 阅读 · 0 评论 -
第二章 Lambda表达式
当需要启动一个线程去完成任务时,通常会通过Runnable接口来定义任务内容,并使用Thread类来启动该线程。由于面向对象的语法要求,首先创建一个Runnable接口的匿名内部类对象来指定线程要执行的任务内容,再将其交给一个线程来启动。对于Runnable的匿名内部类用法,可以分析出几点内容:Thread类需要Runnable接口作为参数,其中的抽象run方法是用来指定线程任务内容的核心。为了指定 run 的方法体,不得不需要Runnable接口的实现类;原创 2024-11-14 23:50:00 · 1039 阅读 · 0 评论 -
第一章 JavaSE发展史及OpenJDK与OracleJDK区别
Java 16.0 (Mondain) - 2021年3月,Vector API、NullPointerExceptions在switch表达式中、G1的并行完全垃圾回收等。Java 15.0 (Malica) - 2020年9月,ZGC到GPL转换、Unix域套接字、EdDSA支持等。,增加了switch语句的枚举支持、try-with-resources语句、支持二进制字面量等。Java 14.0 (Loom) - 2020年3月,预览了虚拟线程,引入了模式匹配等新特性。但是 Open JDK。原创 2024-11-14 22:32:44 · 741 阅读 · 0 评论