美文网首页
一、为什么要关心Java8

一、为什么要关心Java8

作者: 小Noodles | 来源:发表于2018-01-22 00:39 被阅读0次

    1.Java8让编程起来更容易

    • 提供了更多的编程工具和概念,能以更快,更简洁,更易于维护的方式解决问题,比如:
    Collections.sort(inventory, new Comparator<Apple>(){
      public int compare(Apple a1, Apple a2){
          return a1.getWeight().compareTo(a2.getWeight());
      }
    })
    
    • Java8可以写更简洁
    inventory.sort(comparing(Apple::getWeight));
    

    2.适应多核计算机结构

    • 越来越多需要处理大数据,需要利用多核计算机或计算集群来有效处理,而通过多线程代码来利用并行(Thread API)并非易事。
    • Java8提供了新的API(称为 “流” ,Stream<T>),支持许多处理数据的并行操作。
    • 流思想,例如:
      Linux中的管道:cat file1 file2 | tr "[A-Z]" "[a-z]" | sort | tail -3


      操作流的Linux命令.png

    3.编程语言不断在更新换代

    • 编程语言数以千计,像生态系统一样,新的语言会出现,旧语言则被取代,除非能不断演变改进,跟上节奏。COBOL,DELPHI等一些语言被淘汰。
    • java8提供了强大的新语汇和新设计模式,引入函数式编程,让我们可以向函数式编程领域转变,在大面上考虑做什么,而不是如何实现。

    4.其他好思想

    • 使用描述性数据类型来避免null
      Optional<T>:可以包含,也可以不包含一个值,有方法明确处理值不存在的情况。
    • 模式匹配
      可以看作switch的扩展形式

    5.JVM优化

    • JDK8中把存放元数据中的永久区删除,新增元数据区,直接从内存从本地内存分配空间,这样永久内存就不再占用堆内存,它可以通过自动增长来避免JDK7以及前期版本中常见的永久内存错误(java.lang.OutOfMemoryError: PermGen)。
      JDK8也提供了一个新的设置Matespace内存大小的参数
    -XX:MaxMetaspaceSize=128m
    

    如果不设置JVM将会根据一定的策略自动增加本地元内存空间。如果你设置的元内存空间过小,你的应用程序可能得到以下错误:

    java.lang.OutOfMemoryError: Metadata space
    
    • 新的垃圾收集器:G1
      1.将垃圾回收化整为零,减少对用户服务的影响
      2.垃圾回收时间可配置
      3.避免内存碎片

    • 移除一些很少使用的垃圾回收器组合

    • 提供更多的验证错误信息

    • 减少指定字段上的缓存争用

    相关文章

      网友评论

          本文标题:一、为什么要关心Java8

          本文链接:https://www.haomeiwen.com/subject/bgxcaxtx.html