java8新特性
文章平均质量分 51
小苗欧巴
这个作者很懒,什么都没留下…
展开
-
java8处理日期和时间
在java8中,java.time包下主要包含下面几个主要的类: Instant:时间戳,相当于java.util的Date LocalDate:只包含日期,比如:2016-10-20 LocalTime:只包含时间,比如:23:12:10 LocalDateTime:包含日期和时间,比如:2016-10-20 23:14:21 Duration:计算两个“时间”的间隔 Period:用于计算两个“日期”的间隔 ZoneOffset:时区偏移量,比如:+8:00 ZonedDateTime:可以得到原创 2022-01-20 15:38:20 · 3499 阅读 · 0 评论 -
Java8中list转map方法总结
背景 在最近的工作开发之中,慢慢习惯了很多Java8中的Stream的用法,很方便而且也可以并行的去执行这个流,这边去写一下昨天遇到的一个list转map的场景。list转map在Java8中stream的应用 常用方式 1.利用Collectors.toMap方法进行转换 public Map<Long, String> getIdNameMap(List<Account> accounts) { return accounts.stream().collect(Col..原创 2022-01-19 18:05:02 · 19829 阅读 · 1 评论 -
9.重复注解与类型注解
Java8 对注解处理提供了两点改进:可重复的注解及可用于类型的注解。 @Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})//可以修饰的目标 @Retention(RetentionPolicy.RUNTIME)//生命周期 public @interface MyAnnotations { MyAnnotation[] value(); } @Repeatable(MyAnnotations原创 2021-06-23 18:01:31 · 143 阅读 · 0 评论 -
8.Optional类
Optional类(java.util. 是一个容器类,代表一个值存在或不存在, 原来用null 表示一个值不存在,现在Optional 可以更好的表达这个概念。并且 可以避免空指针异常。 常用方法: Optional.of(T t): 创建一个Optional 实例 Optional.empty() 创建一个空的Optional 实例 Optional.ofNullable(T t): 若t 不为null, 创建Optional 实例 否则创建空实例 isPresent() 判断是否包含值 orEl原创 2021-06-23 17:55:16 · 201 阅读 · 0 评论 -
7.接口中的默认方法与静态方法
接口中的默认方法 Java8 中允许接口中包含具有具体实现的方法,该方法称为 默认方法””,默认方法使用default 关键字修饰。 例如: 接口默认方法的“类优先”原则: 若一个接口中定义了一个默认方法,而另一个父类或接口中又定义了一个同名的方法时 1.选择父类中的方法。如果一个父类提供了具体的实现,那么接口中具有相同名称和参数的默认方法会被忽略。 2.接口冲突。如果一个父接口提供一个默认方法,而另一个接口也提供了一个具有相同名称和参数列表的方法(不管方法是否是默认方法),那么必须覆盖该方法原创 2021-06-23 17:50:29 · 173 阅读 · 0 评论 -
6.新时间日期API
使用LocalDate 、LocalTime 、LocalDateTime LocalDate 、LocalTime 、LocalDateTime 类的实例是不可变的对象,分别表示使用ISO 8601 日历系统的日期、时间、日期和时间。它们提供了简单的日期或时间,并不包含当前的时间信息。也不包含与时区相关的信息。 //1.LocalDate LocalTime LocalDateTime 用法一样,用于让人读的时间日期 @Test public void test1(){原创 2021-06-23 16:58:38 · 207 阅读 · 0 评论 -
5.强大的Stream API
了解Stream Java8 中有两大最为重要的改变。第一个是Lambda 表达式;另外一个则是Stream API(java.util.stream.*) 。 Stream 是Java8 中处理集合的关键抽象概念,它可以指定你希望对 集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用SQL 执行的数 据库查询。也可以使用Stream API 来并行执行操作。简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式。原创 2021-06-23 16:39:55 · 105 阅读 · 0 评论 -
4.方法引用与构造器引用
方法引用 当要传递给Lambda 体的操作,已经有实现的方法了,可以使用方法引用! (实现抽象方法的参数列表,必须与方法引用方法的参数列表保持一致!) 方法引用:使用操作符 将方法名和对象或类的名字分隔开来。 如下三种主要使用情况: 1.对象::实例方法 2.类::静态方法 3::类 实例方法 例如: 等同于: 例如: 等同于: 例如: 等同于: 注意:当需要引用方法的第一个参数是调用对象,并且第二个参数是需要引 用方法的第二个参数 或无参数 时:ClassNa.原创 2021-06-23 16:20:35 · 487 阅读 · 0 评论 -
3.函数式接口
什么是函数式接口 1.只包含一个抽象方法的接口,称为函数式接口。 2.你可以通过Lambda 表达式来创建该接口的对象。(若Lambda 表达式抛出一个受检异常,那么该异常需要在目标接口的抽象方 3.法上进行声明)。 我们可以在任意函数式接口上使用@FunctionalInterface 注解, 这样做可以检查它是否是一个函数式接口,同时javadoc 也会包含一条声明,说明这个接口是一个函数式接口。 ...原创 2021-06-23 15:34:20 · 161 阅读 · 0 评论 -
2.Lambda表达式
Lambda是一个匿名函数,可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。 1.从匿名类到Lambda 的转换 Lambda 表达式在Java 语言中引入了一个新的语法元素和操作符。这个操作符为““-->>””,该操作符被称为Lambda 操作符或剪头操作符。它将Lambda 分为两个部分: 左侧:指定了Lambda 表达式需要的所有参数 右侧:指定了Lamb原创 2021-06-23 14:49:28 · 135 阅读 · 0 评论 -
1.java8新特性_简介
123原创 2021-06-22 11:23:28 · 107 阅读 · 0 评论