2020你还不会Java8新特性?

Java8(1)特性介绍及Lambda表达式 前言:

跟大娃一块看,把原来的电脑拿出来放中间看视频用

--- 以后会有的课程 难度

深入Java 8 难度1

并发与netty 难度3

JVM 难度4

node 难度2

spring精髓 难度1

课程中提到的知识:

前后端分离的开发,是靠node当做中间的

netty,已经成为国内外互联网公司的标配。会涉及底层的源代码的理解。

JVM 涉及的东西比较多。虽然天天用,但是没有深入理解过。各种锁,可见性等。与计算机原理息息相关的。

圣思园主要面对与已经工作的。大部分为一线的开发人员。
课程一定是完整的。由浅入深的。一定要有一种耐心。
对于基础不好的,可以看看以前面授的时候录制的视频。不懂的一定要多查资料。

在讲课过程中的设计思路:4000块钱的收费标准。

jdk8

介绍:Java 8可谓Java语言历史上变化最大的一个版本,其承诺要调整Java编程向着函数式风格迈进,这有助于编写出更为简洁、表达力更强,并且在很多情况下能够利用并行硬件的代码。本门课程将会深入介绍Java 8特性,学员将会通过本门课程的学习深入掌握Java 8新增特性并能灵活运用在项目中。学习者将学习到如何通过Lambda表达式使用一行代码编写Java函数,如何通过这种功能使用新的Stream API进行编程,如何将冗长的集合处理代码压缩为简单且可读性更好的流程序。学习创建和消费流的机制,分析其性能,能够判断何时应该调用API的并行执行特性。

课程的介绍:

Java 8新特性介绍

Lambda表达式介绍

使用Lambda表达式代替匿名内部类

Lambda表达式的作用

外部迭代与内部迭代

Java Lambda表达式语法详解

函数式接口详解

传递值与传递行为

Stream深度解析

Stream API详解

串行流与并行流

Stream构成

Stream源生成方式

Stream操作类型

Stream转换

Optional详解

默认方法详解

方法与构造方法引用

Predicate接口详解

Function接口详解

Consumer接口剖析

Filter介绍

Map-Reduce讲解、中间操作与终止操作

新的Date API分析

拉姆达表达式: 函数式编程。以前的叫做命令式的编程。
使用面向对象语言就是来操作数据,封装继承多态。
函数式编程面向的是行为。好处:代码可读性提高。

开发安卓的时候大量的匿名内部类。

提到的关键字:
kotlin ,JetBrains 。construction 构造

他以前在学习的时候,翻代码。

将要讲解的各个技术的简介、

课程讲解的时候遇到的工具:
Mac , jdk8 ,idea(很多功能是通过插件的形式来实现的)

Java8课程开始 lambda表达式

为什么要使用lambda表示式

在Java中无法将函数座位参数传递给一个方法,也无法返回一个函数的方法。

在js中,函数的参数是一个函数。返回值是另一个函数的情况是非常常见的。是一门经典的函数式语言。

Java匿名内部类。

匿名内部类的介绍

Gradle的使用。可以完全使用maven的中央仓库。
进行安卓的开发时,gradle已经成为标配了。

lambda:
匿名内部类

my_jButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("Button Pressed! "); } });

改造后

my_jButton.addActionListener(e -> System.out.println("Button Pressed!"));

lambda表达式的基本结构:

(param1,param2,param3) ->{ }

函数式编程: 一个接口里边只有一个抽象方法。
可以通过lambda表达式来实例。

关于函数式接口:

如果一个借口只有一个抽象方法,那么该接口就是一个函数式接口。

如果我们在某一个接口上声明了functionalInterface注解,那么编译器就会按照函数是借口的定义来要求改接口。

如果某个接口只有一个抽象方法,但是我们并没有给接口声明functionnaleInterface注解,编译器依旧会给改接口看作是函数式接口。

通过实例对函数式接口的理解:

package com.erwa.jdk8; @FunctionalInterface interface MyInterface { void test(); // Multiple non-overriding abstract methods found in interface com.erwa.jdk8.MyInterface // void te(); //如果一个接口声明一个抽象方法,但是这个方法重写了 object类中的一个方法. //接口的抽象方法不会加一.所以依然是函数方法. // Object 类是所有类的父类. @Override String toString(); } public class Test2 { public void myTest(MyInterface myInterface) { System.out.println(1); myInterface.test(); System.out.println(2); } public static void main(String[] args) { Test2 test2 = new Test2(); test2.myTest(() -> { System.out.println(3); }); } }

接口里边从1.8开始也可以有方法实现了。default

默认方法。 default void forEach(Consumer<? super T> action) { Objects.requireNonNull(action); for (T t : this) { action.accept(t); } } * <p>Note that instances of functional interfaces can be created with * lambda expressions, method references, or constructor reference

lambda表达式的作用:

lambda表达式为Java添加了确实的函数式编程特性,使我们能将函数当做一等公民看待。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwgpf.html