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

一、前言

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

二、jdk1.8新特性简述

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

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);
    }
}

三、目录

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IMWeb前端团队

web系统性能及规范检测笔记

静态检查 关于javascript的语言特性,Douglas Crockford在蝴蝶书里面写过:“一些特性因为规范的不完善而可能导致可移植性问题,一些特性会导...

1876
来自专栏全栈工程师成长之路

PHP开发学习笔记(基础篇)

3225
来自专栏一个会写诗的程序员的博客

TypeScript 之父简介:TS Anders Hejlsberg: Introducing TypeScript参考资料TypeScript入门指南(JavaScript的超集)

https://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript

742
来自专栏韩伟的专栏

实用主义编程规范:JAVA篇

JAVA代码规范 1.规范说明 此规范包含:避免出现常见恶劣代码的禁令;指导编写合格代码的基本规则 此规范不包含:分析与设计出符合业务需求的代码; 2.基本原则...

3716
来自专栏java一日一条

有效处理Java异常的三个原则,你知道吗?

在有效使用异常的情况下,异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出,如果你的异常没有回答以上全部问题,那么可能...

791
来自专栏walterlv - 吕毅的博客

应该抛出什么异常?不应该抛出什么异常?(.NET/C#)

2018-02-04 13:25

672
来自专栏性能与架构

Redis 新数据结构 - Streams

1. 为什么添加 Streams 数据流? Stream 数据流的使用越来越多,Redis 的作者 antirez 也在积极思考,如何让 redis 能够很好的...

3406
来自专栏JAVA技术zhai

JVM虚拟机详解

  JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿...

1022
来自专栏程序你好

C# API中的模型和它们的接口设计

712
来自专栏草根专栏

用ASP.NET Core 2.0 建立规范的 REST API -- DELETE, UPDATE, PATCH 和 Log

本文所需的一些预备知识可以看这里: http://www.cnblogs.com/cgzl/p/9010978.html 和 http://www.cnblog...

822

扫码关注云+社区