一,JDK8新特性
1.Lambda表达式
(1)作用:用于简化匿名内部类的代码写法
(2)前提:只能简化函数式接口的匿名内部类
扩展:函数式接口:有且仅有一个抽象方法的接口,可以用@FunctionalInterface注解检查该接口是否是函数式接口
(3)Lambda表达式的使用
①判断类型是否是函数式接口
②填上()->{}
③填入大小写括号的内容,小括号里填形参,大括号里填抽象方法的方法体
(4)Lambda表达式的省略规则
①形参参数类型可以不写
②如果只有一个形参,小括号可以省略
③如果方法体只有一行代码,大括号、return和后面的分号可以省略
2.方法引用
(1)静态方法引用
①前提:Lambda表达式里只调用了一个静态方法,且该方法参数与被重写方法一致
②格式:类名::静态方法
(2)实例方法引用
①前提:Lambda表达式里只调用了一个实例方法,且该方法参数与被重写方法一致
②格式:对象名::实例方法
(3)特点类型方法引用
①前提:Lambda表达式里只是调用一个实例方法,并且前面参数列表中的第一个参数作为方法的主调,后面的所有参数都是作为该实例方法的入参
②格式:类名::方法
(4)构造器引用
①前提:Lambda表达式里只调用了一个构造方法,且构造方法参数与被重写方法参数一致
②格式:类名::new
二,正则表达式
1.概述:正则表达式就是由一些特定的字符组成,代表的是一个规则
2.作用
(1)校验数据
(2)查找数据
3.正则表达式的组成
(1)字符类(只匹配单个字符)
(2)预定字符类(只匹配单个字符)
(3)数量词
4.规则判断:匹配正则表达式的方法:matches(String regex)
5.规则搜索
(1)将正则表达式编译为Pattern对象
(2)使用Pattern对象与字符串匹配,将匹配到的数据封装斤Matcher对象中
(3)使用Matcher对象中的find方法查询是否有匹配的子字符串
(4)循环查找,把匹配到的子字符串用group方法输出
6.扩展
(1)贪婪匹配(.+):尽可能多的匹配
(2)非贪婪匹配(.+?):尽可能少的匹配