java jdk1.8新特性

      jdk1.8相较于1.7以前有5方面的优化。

      1、速度更快

      2、代码更少(增添了新的语法Lambda表达式)

      3、壮大Stream API

      4、便于并行

      5、最大化削减空指针异常 OPtional

工具/原料

  • 电脑
  • intellij IDEA

方式/步骤

  1. 1

    Lambda表达式

    可以直接参考:java jdk1.8新特征Lambda表达式

    2java jdk1.8新特征Lambda表达式

  2. 2

    Stream API

    可以直接参考:java jdk1.8新特征Stream API

    2java jdk1.8新特征Stream API

  3. 3

    jdk1.8 日期处置

    1、原始jdk1.0引入 java.lang.util.Date

    2、jdk1.1后引入Calendar

    3、引入java.time API且Date新增了toInstant()

    3.1 本家儿如果借鉴了joda-Time

    3.2 中包含当地日期LocalDate、当地时候LocalTime、当地日期时候LoaclDateTime、时区ZonedDateTime、持续时候Duration等类。


    4、测试日期转换并加减:

    4.1 dtf是日期格局格局化实体对象

    4.2 batchDate日期字符串

    4.3 plusDays对日期加一天

    4.4 format将日期转为字符串

    import java.time.LocalDate;
    import java.time.format.DateTimeFormatter;

    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMdd");

    String batchDateStr = LocalDate.parse(batchDate, dtf).plusDays(1).format(dtf);

    LocalDateTime lt = LocalDateTime.now();

    5、其它具体内容请咨询或者参考光放文档

  4. 4

    ForkJoin 框架

    在jdk1.7之前就已经存在,可是没有大规模应用

  5. 5

    jdk HashMap底层实现

    1、原有是哈希+数组  颠末调整改为 哈希+数组+红黑二叉树使得除添加之外的行能都提高了,出格是查询。

    2、线程平安的concurrentHashMap底层也进行了优化

  6. 6

    jdk8新特征:可反复注解

  7. 7

    jdk8新特征:类型注解

  8. 8

    https://blog.csdn.net/lu930124/article/details/77595585

  9. 9

    4、Java8中的并行流和挨次流

    4.1 挨次流

    /**

         * Java8的挨次流

         */

        @Test

        public void test3() {

            Instant start = Instant.now();// java8中新时候日期API

             

            LongStream.rangeClosed(0, 10000000000L)

                        .sequential()// 挨次流

                        .reduce(0, Long::sum);

             

            Instant end = Instant.now();

             

            // 5780

            System.out.println("花费时候为:" + Duration.between(start, end).toMillis());// java8中新时候日期API

        }

  10. 10

    4.2  并行流

    /**

         * Java8的并行流

         */

        @Test

        public void test4() {

            Instant start = Instant.now();// java8中新时候日期API

             

            LongStream.rangeClosed(0, 10000000000L)

                        .parallel()// 并行流

                        .reduce(0, Long::sum);

             

            Instant end = Instant.now();

             

            // 2392

            System.out.println("花费时候为:" + Duration.between(start, end).toMillis());// java8中新时候日期API

        }

  • 发表于 2019-11-05 22:10
  • 阅读 ( 121 )
  • 分类:其他类型

相关问题

0 条评论

请先 登录 后评论