1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

Merge pull request #1342 from anaer/patch-10

Update java8-common-new-features.md
This commit is contained in:
Guide哥 2021-08-26 23:01:09 +08:00 committed by GitHub
commit 08e27acf80
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -78,7 +78,7 @@ public class InterfaceNewImpl implements InterfaceNew , InterfaceNew1{
2. interface 的方法是更像是一个扩展插件。而 abstract class 的方法是要继承的。
开始我们也提到interface 新增`default``static`修饰的方法,为了解决接口的修改与现有的实现不兼容的问题,并不是为了要替代`abstract class`。在使用上,该用 abstract class 的地方还是要用 abstract class不要因为 interface 的新特性而之替换。
开始我们也提到interface 新增`default``static`修饰的方法,为了解决接口的修改与现有的实现不兼容的问题,并不是为了要替代`abstract class`。在使用上,该用 abstract class 的地方还是要用 abstract class不要因为 interface 的新特性而之替换。
**记住接口永远和类不一样。**
@ -463,7 +463,7 @@ Predicate.test 执行
按执行顺序应该是先打印 4 次「`Predicate.test` 执行」,再打印「`count` 执行」。实际结果恰恰相反。说明 filter 中的方法并没有立刻执行,而是等调用`count()`方法后才执行。
上面都是串行 `Stream` 的实例。并行 `parallelStream` 在使用方法上和串行一样。主要区别是 `parallelStream` 可多线程执行,是基于 ForkJoin 框架实现的,有时间大家可以了解一下 `ForkJoin` 框架和 `ForkJoinPool`。这里可以简单的理解它是通过线程池来实现的,这样就会涉及到线程安全,线程消耗等问题。下面我们通过代码来体验一下行流的多线程执行。
上面都是串行 `Stream` 的实例。并行 `parallelStream` 在使用方法上和串行一样。主要区别是 `parallelStream` 可多线程执行,是基于 ForkJoin 框架实现的,有时间大家可以了解一下 `ForkJoin` 框架和 `ForkJoinPool`。这里可以简单的理解它是通过线程池来实现的,这样就会涉及到线程安全,线程消耗等问题。下面我们通过代码来体验一下行流的多线程执行。
```java
@Test
@ -733,7 +733,7 @@ public Optional<T> filter(Predicate<? super T> predicate) {
### 小结
看完 `Optional` 源码,`Optional` 的方法真的非常简单,值得注意的是如果坚决不想看见 `NPE`,就不要用 `of() ``get()``flatMap(..)`\。最后再综合用一下 `Optional` 的高频方法。
看完 `Optional` 源码,`Optional` 的方法真的非常简单,值得注意的是如果坚决不想看见 `NPE`,就不要用 `of() ``get()``flatMap(..)`。最后再综合用一下 `Optional` 的高频方法。
```java
Optional.ofNullable(zoo).map(o -> o.getDog()).map(d -> d.getAge()).filter(v->v==1).orElse(3);
@ -947,7 +947,7 @@ public void getDayNew() {
1. `Date` ---> `LocalDate`
2. `Time` ---> `LocalTime`
3. `TimesSamp` ---> `LocalDateTime`
3. `Timestamp` ---> `LocalDateTime`
而之前统统对应 `Date`,也只有 `Date`
@ -1017,4 +1017,4 @@ System.out.println("本地时区时间: " + localZoned);
- Optional
- Date time-api
这些都是开发当中比较常用的特。梳理下来发现它们真香,而我却没有更早的应用。总觉得学习 java 8 新特性比较麻烦,一使用老的实现方式。其实这些新特性几天就可以掌握一但掌握效率会有很大的提高。其实我们涨工资也是涨的学习的钱不学习终究会被淘汰35 岁危机会提前来临。
这些都是开发当中比较常用的特。梳理下来发现它们真香,而我却没有更早的应用。总觉得学习 java 8 新特性比较麻烦,一使用老的实现方式。其实这些新特性几天就可以掌握一但掌握效率会有很大的提高。其实我们涨工资也是涨的学习的钱不学习终究会被淘汰35 岁危机会提前来临。