标签:内部类 系统 创建 作用 图片 java 一个 线程 静态
通过三个方面讲解Lambda表达式
1 什么是Lambda表达式
2 Lambda表达式基础知识
3 Lambda表达式高级扩展
分为三个层次去介绍一下Lambda表达式
重构结束后,我们针对性能问题进行讲解,
1 什么是Lambda表达式
2 Model Code As Data
3 功能接口设计及优化
4 为什么要使用Lambda表达式
Lambda表达式,也可以成为箭头函数,匿名函数,闭包
Lambda表达式体现的是轻量级函数方式编程思想
JDK8新特性
-> 左边操作参数,右侧是操作表达式
Model Code as Data 编码及数据,
尽可能轻量级的将代码封装为数据
解决方案: 接口&实现类 (匿名内部类)
存在问题: 语法冗余,this关键字,变量捕获,数据控制
项目问题: 功能问题的设计及其优化
需求环境: 线程类的创建
传统的匿名内部类实现
quickstart构建maven项目
创建好项目包后开始开发
传统模式下,本身只要创建线程就可以了
这时候传统模式有代码的冗余的。
这时候我们用jdk8新特性处理一下。
new Thread(()->{
System.out.println();
}).start
【不需要匿名内部类了】
jdk8才能够支持的。
我们等待项目重构完成。
输出会提示 Lambda
解决方案; Lambda表达式实现是为了优化
它不是解决为止问题的新技术
是为现有问题的语义化优化
需要根据需求考虑性能问题
3-1 函数式接口概述和定义
函数式接口概念
Lambda语法以及使用
Lambda表达式运行原理
函数式接口,就是Java类型系统中的接口
函数式接口,是只包含一个接口方法的特殊接口
语义化检测注解:@FunctionalInterface
@FunctionalInterface
public interface IUserCredential{
/**
*通过用户账号,验证用户身份信息的接口
*/
String verifyUser(String username);
}
消息传输格式化转换接口
@FunctionalInterface
public interface IMessageFormar{
String format(String message,String format);
}
这先定义好接口,下一步讲解使用规则。
public class UserCredentialImpl implements IUserCredential{
@Override
public String verifyUser(String username){
分情况讨论一下
}
}
对分类情况讨论进行测试。
default【不再规定的其中】 String getCredential(String username){
分类讨论一下
}
default对所有子类增加的所有方法
与通过static修饰的方法不同。
static String isSuccess(String message){
if(message!=null){
return "true";
}else{
return "false";
}
}
静态方法的方式,简单的场景模拟。
静态方法定义,也不会影响函数式接口。
如果我们使用了
String toString();是可以通过的。
标签:内部类 系统 创建 作用 图片 java 一个 线程 静态
原文地址:https://www.cnblogs.com/EarlyBridVic/p/12081596.html