diff --git a/docs/java/What's New in JDK8/Java8Tutorial.md b/docs/java/What's New in JDK8/Java8Tutorial.md index 8cf809f75c85f3a043d10a998d425efb5b5fc902..c058dff2312d43301a4122a5cb27b5beee0c4048 100644 --- a/docs/java/What's New in JDK8/Java8Tutorial.md +++ b/docs/java/What's New in JDK8/Java8Tutorial.md @@ -283,7 +283,7 @@ Formula formula = (a) -> sqrt(a * 100); ### 内置函数式接口(Built-in Functional Interfaces) -JDK 1.8 API包含许多内置函数式接口。 其中一些借口在老版本的 Java 中是比较常见的比如: `Comparator` 或`Runnable`,这些接口都增加了`@FunctionalInterface`注解以便能用在 lambda 表达式上。 +JDK 1.8 API包含许多内置函数式接口。 其中一些接口在老版本的 Java 中是比较常见的比如: `Comparator` 或`Runnable`,这些接口都增加了`@FunctionalInterface`注解以便能用在 lambda 表达式上。 但是 Java 8 API 同样还提供了很多全新的函数式接口来让你的编程工作更加方便,有一些接口是来自 [Google Guava](https://code.google.com/p/guava-libraries/) 库里的,即便你对这些很熟悉了,还是有必要看看这些是如何扩展到lambda上使用的。 @@ -441,7 +441,7 @@ optional.ifPresent((s) -> System.out.println(s.charAt(0))); // "b" `java.util.Stream` 表示能应用在一组元素上一次执行的操作序列。Stream 操作分为中间操作或者最终操作两种,最终操作返回一特定类型的计算结果,而中间操作返回Stream本身,这样你就可以将多个操作依次串起来。Stream 的创建需要指定一个数据源,比如` java.util.Collection` 的子类,List 或者 Set, Map 不支持。Stream 的操作可以串行执行或者并行执行。 -首先看看Stream是怎么用,首先创建实例代码的用到的数据List: +首先看看Stream是怎么用,首先创建实例代码需要用到的数据List: ```java List stringList = new ArrayList<>(); @@ -552,7 +552,7 @@ Stream提供了多种匹配操作,允许检测指定的Predicate是否匹配 ### Reduce(规约) -这是一个 **最终操作** ,允许通过指定的函数来讲stream中的多个元素规约为一个元素,规约后的结果是通过Optional 接口表示的: +这是一个 **最终操作** ,允许通过指定的函数来将stream中的多个元素规约为一个元素,规约后的结果是通过Optional 接口表示的: ```java //测试 Reduce (规约)操作 @@ -705,7 +705,7 @@ map.merge(9, "concat", (value, newValue) -> value.concat(newValue)); map.get(9); // val9concat ``` -Merge 做的事情是如果键名不存在则插入,否则则对原键对应的值做合并操作并重新插入到map中。 +Merge 做的事情是如果键名不存在则插入,否则对原键对应的值做合并操作并重新插入到map中。 ## Date API(日期相关API) diff --git "a/docs/java/jvm/Java\345\206\205\345\255\230\345\214\272\345\237\237.md" "b/docs/java/jvm/Java\345\206\205\345\255\230\345\214\272\345\237\237.md" index 0cae9f0a7f804aec7239970623c29a814a4a10a8..a4715a87d60a7cd7ef01bd6b4f7e7d0a884def76 100644 --- "a/docs/java/jvm/Java\345\206\205\345\255\230\345\214\272\345\237\237.md" +++ "b/docs/java/jvm/Java\345\206\205\345\255\230\345\214\272\345\237\237.md" @@ -214,8 +214,8 @@ JDK 1.8 的时候,方法区(HotSpot 的永久代)被彻底移除了(JDK1 #### 2.5.3 为什么要将永久代 (PermGen) 替换为元空间 (MetaSpace) 呢? -1. 整个永久代有一个 JVM 本身设置固定大小上限,无法进行调整,而元空间使用的是直接内存,受本机可用内存的限制,虽然元空间仍旧可能溢出,但是比原来出现的几率会更小。 ->当你元空间溢出时会得到如下错误: `java.lang.OutOfMemoryError: MetaSpace` +1. 整个永久代有一个 JVM 本身设置的固定大小上限,无法进行调整,而元空间使用的是直接内存,受本机可用内存的限制,虽然元空间仍旧可能溢出,但是比原来出现的几率会更小。 +>当元空间溢出时会得到如下错误: `java.lang.OutOfMemoryError: MetaSpace` 你可以使用 `-XX:MaxMetaspaceSize` 标志设置最大元空间大小,默认值为 unlimited,这意味着它只受系统内存的限制。`-XX:MetaspaceSize` 调整标志定义元空间的初始大小如果未指定此标志,则 Metaspace 将根据运行时的应用程序需求动态地重新调整大小。