Skip to content

Commit 08e27ac

Browse files
authored
Merge pull request Snailclimb#1342 from anaer/patch-10
Update java8-common-new-features.md
2 parents a057eda + 64fb03b commit 08e27ac

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

docs/java/new-features/java8-common-new-features.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public class InterfaceNewImpl implements InterfaceNew , InterfaceNew1{
7878

7979
2. interface 的方法是更像是一个扩展插件。而 abstract class 的方法是要继承的。
8080

81-
开始我们也提到,interface 新增`default``static`修饰的方法,为了解决接口的修改与现有的实现不兼容的问题,并不是为了要替代`abstract class`。在使用上,该用 abstract class 的地方还是要用 abstract class,不要因为 interface 的新特性而降之替换
81+
开始我们也提到,interface 新增`default``static`修饰的方法,为了解决接口的修改与现有的实现不兼容的问题,并不是为了要替代`abstract class`。在使用上,该用 abstract class 的地方还是要用 abstract class,不要因为 interface 的新特性而将之替换
8282

8383
**记住接口永远和类不一样。**
8484

@@ -463,7 +463,7 @@ Predicate.test 执行
463463

464464
按执行顺序应该是先打印 4 次「`Predicate.test` 执行」,再打印「`count` 执行」。实际结果恰恰相反。说明 filter 中的方法并没有立刻执行,而是等调用`count()`方法后才执行。
465465

466-
上面都是串行 `Stream` 的实例。并行 `parallelStream` 在使用方法上和串行一样。主要区别是 `parallelStream` 可多线程执行,是基于 ForkJoin 框架实现的,有时间大家可以了解一下 `ForkJoin` 框架和 `ForkJoinPool`。这里可以简单的理解它是通过线程池来实现的,这样就会涉及到线程安全,线程消耗等问题。下面我们通过代码来体验一下串行流的多线程执行
466+
上面都是串行 `Stream` 的实例。并行 `parallelStream` 在使用方法上和串行一样。主要区别是 `parallelStream` 可多线程执行,是基于 ForkJoin 框架实现的,有时间大家可以了解一下 `ForkJoin` 框架和 `ForkJoinPool`。这里可以简单的理解它是通过线程池来实现的,这样就会涉及到线程安全,线程消耗等问题。下面我们通过代码来体验一下并行流的多线程执行
467467

468468
```java
469469
@Test
@@ -733,7 +733,7 @@ public Optional<T> filter(Predicate<? super T> predicate) {
733733

734734
### 小结
735735

736-
看完 `Optional` 源码,`Optional` 的方法真的非常简单,值得注意的是如果坚决不想看见 `NPE`,就不要用 `of() `、 `get()` 、`flatMap(..)`\。最后再综合用一下 `Optional` 的高频方法。
736+
看完 `Optional` 源码,`Optional` 的方法真的非常简单,值得注意的是如果坚决不想看见 `NPE`,就不要用 `of() `、 `get()` 、`flatMap(..)`。最后再综合用一下 `Optional` 的高频方法。
737737

738738
```java
739739
Optional.ofNullable(zoo).map(o -> o.getDog()).map(d -> d.getAge()).filter(v->v==1).orElse(3);
@@ -947,7 +947,7 @@ public void getDayNew() {
947947

948948
1. `Date` ---> `LocalDate`
949949
2. `Time` ---> `LocalTime`
950-
3. `TimesSamp` ---> `LocalDateTime`
950+
3. `Timestamp` ---> `LocalDateTime`
951951

952952
而之前统统对应 `Date`,也只有 `Date`。
953953

@@ -1017,4 +1017,4 @@ System.out.println("本地时区时间: " + localZoned);
10171017
- Optional
10181018
- Date time-api
10191019

1020-
这些都是开发当中比较常用的特征。梳理下来发现它们真香,而我却没有更早的应用。总觉得学习 java 8 新特性比较麻烦,一致使用老的实现方式。其实这些新特性几天就可以掌握,一但掌握,效率会有很大的提高。其实我们涨工资也是涨的学习的钱,不学习终究会被淘汰,35 岁危机会提前来临。
1020+
这些都是开发当中比较常用的特性。梳理下来发现它们真香,而我却没有更早的应用。总觉得学习 java 8 新特性比较麻烦,一直使用老的实现方式。其实这些新特性几天就可以掌握,一但掌握,效率会有很大的提高。其实我们涨工资也是涨的学习的钱,不学习终究会被淘汰,35 岁危机会提前来临。

0 commit comments

Comments
 (0)