![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java8
文章平均质量分 66
java8
乐之者v
一生编程,快乐编程。
展开
-
java8 LocalDateTime
LocalDateTime: 可以设置含年月日时分秒的格式 , 表示没有时区的日期时间, LocalDateTime是不可变并且线程安全的。LocalDate: 只能设置仅含年月日的格式,表示没有时区的日期, LocalDate是不可变并且线程安全的。LocalTime: 只能设置仅含时分秒的格式,表示没有时区的时间, LocalTime是不可变并且线程安全的。Duration: 用秒和纳秒表示时间的数量(长短),用于计算两个日期的“时间”间隔。after 只在大于(>)情况下才为true (相等时不会)原创 2024-04-25 21:04:33 · 606 阅读 · 1 评论 -
java接口的default方法和 static方法
default当一个接口要添加一些新的公共逻辑,写了一个新的方法,那么所有的实现类都需要重写新方法,如果实现类太多,会非常麻烦。这时可以使用 default。接口中的default方法,可以写方法内容。接口中的default方法不强制实现类重写,不会影响到已有的实现类。接口的实现类,可以调用接口中的default方法。static接口中的static方法,可以写方法内容。接...原创 2022-04-18 21:30:00 · 45 阅读 · 0 评论 -
Java8 函数式接口
函数式接口在java8中,新增了很多函数式接口。在接口上标记了注解@FunctionalInterface的都是函数式接口比如 Function、Supplier、Consumer、Predicate、BiFunction、BiConsumer、BiPredicate。Function接口Function源码如下:@FunctionalInterfacepublic interfac...原创 2021-06-02 15:04:00 · 42 阅读 · 0 评论 -
java8 StringJoiner拼接字符串
StringJoiner可以用来拼接字符串。字符串拼接示例如下:public static void test1() { StringJoiner stringJoiner = new StringJoiner(""); stringJoiner.add("Hello"); stringJoiner.add("World"); ...原创 2021-02-23 18:14:00 · 29 阅读 · 0 评论 -
java8多线程的lambda
Lambda表达式lambda表达式,实际上就是匿名函数。格式如下:()里面是函数的参数,中间是箭头, {}是函数的代码块,{}包含了函数的执行以及返回结果。()->{}新建线程不使用lambda:Runnable runnable = new Runnable() { @Override public void run() { ...原创 2021-05-10 17:08:00 · 42 阅读 · 0 评论 -
Java8 CompletableFuture处理多个异步任务
thenAcceptBoth(): 同样将两个任务(CompletableFuture)的执行结果作为方法入参,但是是个Void的返回值,相当于没有返回值;runAfterBoth(): 在两个任务(CompletableFuture)之后执行,但没有入参,而且是个Void的返回值,相当于没有返回值。thenRun(): 根本不关心一个任务的前一阶段的输出,它只负责运行新的Runnable任务,该方法返回值类型为Void,相当于没有返回值。还有两个参数,第一个参数是任务的返回值,第二个参数是异常。原创 2023-09-11 23:16:58 · 650 阅读 · 0 评论 -
java8 lambda和stream的理解
(1)中间操作:filter(Predicate), map(Function(T, R), limit, sorted(Comparator), distinct,flatMap;//以下的toMap(Worker::getId, Worker::getName)表示将流转化为Map,键为Worker对象的id属性,值为Worker对象的name属性。包括filter()、map()、sorted()、forEach()等操作。(x, y) -> x + y ,表示接收参数x和y,返回x+y的和。原创 2023-09-11 23:10:41 · 124 阅读 · 0 评论 -
java8 Stream字段排序sorted()
多个字段排序,先对第一个排序字段排序,当第一个排序字段相同时,会使用第二个排序字段进行排序。Comparator.reverseOrder()是对属性按照降序进行排序,Comparator.reverseOrder()更好理解,也更好用些。如果是三个以上的字段排序,就继续用 thenComparing 连接。java8中,可以用Stream流的sorted()进行排序。reversed()在多字段排序时,很容易混乱,不建议使用。比较原始的写法,自己手写排序规则。reversed()是得到排序结果后再反转,原创 2023-09-18 23:33:20 · 2930 阅读 · 0 评论 -
java8 Optional理解及示例
orElseGet(lambda表达式)会在有值的时候返回值,如果没有值,它会执行作为参数传入的函数式接口(返回类型必须和Optional封装的对象是同一种类型),并将返回其执行结果。而常见的判断Optional结果的方法有,orElse()、ifPresent()、get()、empty()、map()、flatMap()。Optional的orElse()若方法不是纯计算型的,有与数据库交互或者远程调用的,都应该使用orElseGet()。值不为空时,两者都会执行参数中的函数式接口。原创 2023-10-21 13:11:25 · 229 阅读 · 0 评论