Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 1fb0e38

Browse files
Update java8-common-new-features.md
1 parent cc53ccb commit 1fb0e38

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

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

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 作为一个老程序员,我从来不用 Java 8 新特性
1+
# 我,一个老程序员,最近才开始用 Java 8 新特性
22

33
Oracle 于 2014 发布了 Java8(jdk1.8),诸多原因使它成为目前市场上使用最多的 jdk 版本。虽然发布距今已将近 7 年,但很多程序员对其新特性还是不够了解,尤其是用惯了 java8 之前版本的老程序员,比如我。
44

@@ -63,15 +63,13 @@ public class InterfaceNewImpl implements InterfaceNew , InterfaceNew1{
6363
}
6464
```
6565

66-
但是,如果 `InterfaceNew1` 接口实现了`InterfaceNew` 接口的话,就不需要重写 `def()`
67-
6866
**在 Java 8 ,接口和抽象类有什么区别的?**
6967

7068
很多小伙伴认为:"既然 interface 也可以有自己的方法实现,似乎和 abstract class 没多大区别了。"
7169

7270
其实它们还是有区别的
7371

74-
1. interface 和 class 的区别,好像是废话,主要有
72+
1. interface 和 class 的区别,好像是废话,主要有:
7573

7674
- 接口多实现,类单继承
7775
- 接口的方法是 public abstract 修饰,变量是 public static final 修饰。 abstract class 可以用其他修饰符
@@ -94,7 +92,7 @@ public class InterfaceNewImpl implements InterfaceNew , InterfaceNew1{
9492

9593
## Lambda 表达式
9694

97-
接下来谈众所周知的 Lambda 表达式。它是推动 Java 8 发布的最重要新特性。是继泛型(Generics)和注解(annotation)以来最大的变化。
95+
接下来谈众所周知的 Lambda 表达式。它是推动 Java 8 发布的最重要新特性。是继泛型(`Generics`)和注解(`Annotation`)以来最大的变化。
9896

9997
使用 Lambda 表达式可以使代码变的更加简洁紧凑。让 java 也能支持简单的*函数式编程*
10098

@@ -375,7 +373,7 @@ public static <T> Stream<T> concat(Stream<? extends T> a, Stream<? extends T> b)
375373

376374
### 实战
377375

378-
本文列出 Stream 具有代表性的方法之使用,更多的使用方法还是要看 Api。
376+
本文列出 `Stream` 具有代表性的方法之使用,更多的使用方法还是要看 Api。
379377

380378
```java
381379
@Test
@@ -433,9 +431,9 @@ public void test() {
433431

434432
### 延迟执行
435433

436-
在执行返回 Stream 的方法时,并不立刻执行,而是等返回一个非 Stream 的方法后才执行。因为拿到 Stream 并不能直接用,而是需要处理成一个常规类型。这里的 Stream 可以想象成是二进制流(2 个完全不一样的东东),拿到也看不懂。
434+
在执行返回 `Stream` 的方法时,并不立刻执行,而是等返回一个非 `Stream` 的方法后才执行。因为拿到 `Stream` 并不能直接用,而是需要处理成一个常规类型。这里的 `Stream` 可以想象成是二进制流(2 个完全不一样的东东),拿到也看不懂。
437435

438-
我们下面分解一下 filter 方法。
436+
我们下面分解一下 `filter` 方法。
439437

440438
```java
441439
@Test
@@ -462,7 +460,7 @@ Predicate.test 执行
462460

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

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

467465
```java
468466
@Test

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /