项目组六第三周(0302-0306)总结

1,项目组六第三周(0302-0306)总结

-- 1,1 什么是死锁?
    > 1,1,1 死锁产生的条件是什么?
    > 1,1,2 死锁的案例
-- 1,2 jdk1.8新特性
    > 1,2,1 类型推断
        * 编译器根据前面泛型具体值推断后面的泛型类型。
        * 案例:
            * String[] strArray = {"1","2"}
            * List<String> list = new ArrayList<>();
    > 1,2,2 lambda表达式
        * 什么是lambda表达式?
            * 运算符号:->
        * lamdba表达式解决了什么问题?
            * 函数式编程
        * 函数式接口 == lambda表达式
            * 有且只有一个抽象接口,函数接口
        * 4大函数式接口
            * 供给接口
                * 只赋值提供对象
                * 不传递变量
                * T get()  
                * Supplier<T>
                * 例:()->1
            * 消费接口
                * 有来无回
                * 传递参数
                * 无返回
                * void get(T t)
                * Consumer<T>
                * 例:(str)->System.out.println(str)
            * 断言接口
                * 提供一个参数
                * 返回类型 boolea
                * boolean test(T t)
                * Predicate<T>
                * 例:(str)->str.equals("abc")
            * 函数应用接口
                * 有传入参数,有返回类型
                * R apply(T t)
                * R 返回类型
                * T 传入参数
                * Function<T R> 
                * 例:(str)->new Student(str)
    > 1,2,3 方法引用
        * lambda方法体中引用同级的变量
            * 对象::实例方法
                * System.out::println
            * 类::静态方法
                * Integer::compare
            * 类::实例方法
                * String::equals
        * 方法引用要点
            * 特点一:两个一致
                * 参数一致
                * 返回一致
            * 特点二:
                * 第一个参数调用方法
                * 第二个参数是第一个调用方法的参数
    > 1,2,4 new引用
            * case1:调用无参构造
                * Student::new
                * 供给式接口
            * case2:调用有参数构造
                * Student::new
                * Function<T,R>
            * case3:调用多个参数构造
                * 根据情况自己编写函数式接口
    > 1,2,5 数组引用
            * Type[]::new
            * Function<T,R>

2,Stream

-- 2,1 什么Stream
    > 2,0 简单理解:
        >> 根据容器源数据获取新的数据过程。
        >> 举例来讲:容器相当于原材料,工厂流水线相当于流操作,流水线结束后生成新的产品。 
    > 2,1,1概念:
        >> 就是一个序列
        >> 用来对容器数据进行操作
        >> 容器用来存数据,Stream用来计算
    > 2,2,2获取Stream方式
        >> 容器直接转化
        >> 数组转化
        >> Stream.of
        >> 无限流 Stream.iteror
    > 2,2,3 Stream操作
        >> 筛选
            * 过滤
            * limt
            * distinct
        >> 排序
            * sort排序
    > 2,2,4 终止操作
        >> foreach()

3,掌握练习

-- 案例:
    >> 已知条件:
        * 存在以下学生:
            * 张三,李四,王五,张小波,刘欢,张大飞
    >> 要求1:
        * 将以上学生存入容器种。
        * 姓张的同学单独存在一个容器。
        * 姓张的同学名字大于等于3个字存入一个容器。
    >> 要求2:
        * 使用原始方式进行实现一遍。
        * 使用lambda方式进行实现一遍。
-- 需要完成同学:
    @ALL
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容