前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【JDK1.8】Java 8源码阅读汇总

【JDK1.8】Java 8源码阅读汇总

作者头像
joemsu
发布2018-06-21 16:49:25
5220
发布2018-06-21 16:49:25
举报
文章被收录于专栏:皮皮之路

一、前言

​    万丈高楼平地起,相信要想学好java,仅仅掌握基础的语法是远远不够的,从今天起,笔者将和园友们一起阅读jdk1.8的源码,并将阅读重点放在常见的诸如collection集合以及concurrent并发两块,另外笔者自己也是摸着石头过河,如果有描述不当的地方,希望园友们能够不吝指出,希望能够和大家共同进步!

二、jdk1.8新特性简述

​    相较于之前的jdk版本,jdk1.8加入了很多新特性,诸如Lambda表达式,函数式接口,时间的处理类等新特性,值得一提的是可以在Interface接口中加入default关键字开头的方法,里面可以写实现。这一改动算是为了增加新特性的一种妥协,可以试想一下如果不加入这种改变,在Map、Collection等重要接口中加入其它方法,那么其庞大的实现类(不论是jdk里的,还是我们自己实现的)都需要重写实现代码,那么将是灾难性的o(TωT)o 。下面简单的展示一下新语法,后面分析的时候也会提到(大概吧( ̄. ̄))

代码语言:javascript
复制
public class NewFeaturesTest {
    /**
     * output:
     * 所有的数: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
     * 偶数: 0, 2, 4, 6, 8,
     * 大于5的数: 6, 7, 8, 9,
     */
    public static void main(String args[]){
        List<Integer> list = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
        System.out.print("所有的数: ");
        eval(list, n -> true);
        System.out.print("\n偶数: ");
        eval(list, n-> n%2 == 0 );
        System.out.print("\n大于5的数: ");
        eval(list, n -> n > 5 ); 
    }

    private static void eval(List<Integer> list, Predicate<Integer> predicate) {
        list.stream().filter( n -> predicate.test(n)).forEach(System.out::println);
    }
}

三、目录

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-10-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、jdk1.8新特性简述
  • 三、目录
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档