yiLambda表达式:
新增的语法形式;
作用:用于简化匿名内部类的代码写法。
前提是:只能是简化函数式接口的匿名内部类。
函数式接口:匿名内部类中只能有一个方法;且是一个接口类;
简化表达式:
1.参数类型可以省略不写。
2.如果只有一个参数,参数类型可以省略,同时()也可以省略。
3.如果Lambda表达式中的方法体代码只有一行代码,可以省略大括号大写,同时要省略分号!此时,如果这行代码是return语句,也必须去掉return不写。
方法的引用:
实例方法:
如果某个Lambda表达式离职时调用一个实例方法,并且前后参数形式一致,可以使用实例方法引用;//静态方法一样。
//特定类型的方法引用:
类型::方法
如果某个。。。表达式只是调用一个实例方法,并且前面参数列表中的第一个参数是做为方法的主调,后面的所有参数都是作为该实例方法的入参的,则此时就可以使用特定的方法引用。
构造器引用:
类名::new
使用场景:如果某个。。。表达式里只是在创造对象,并且前后参数情况一致,就可以使用构造器引用。
正则表达式:
作用之一:用于查找信息①用来校验数据格式是否合法②在一段文本中查找满足要去的内容
String data="400-618-9090"; String regex="(1[3-9]\\d{9})|(0\\d{2,7}-?[1-9]\\d{4,19})|(\\w{2,}@\\w{2,20}(\\.\\w{2,10}){1,2})" +"(400-?\\d{3,7}-?\\d{3,7})"; Pattern pattern=Pattern.compile(regex); Matcher matcher= pattern.matcher(data); while(matcher.find()){ String rs= matcher.group(); System.out.println(rs); }
用于搜索替换,分割内容:
//将人名分割出来 String s1="古力娜扎ai8888迪丽热巴999aa5566马儿扎哈fbbfsfs42425卡尔扎巴"; System.out.println(s1.replaceAll("\\w+", "-")); //将重复的字去掉 String s2="我我我喜欢编编编编编编编编编编程程程程程"; System.out.println(s2.replaceAll("(.)\\1+", "$1")); //按照正则表达式匹配的内容进行分割返回一个字符串 String rs3="古力娜扎ai8888迪丽热巴999aa5566马儿扎哈fbbfsfs42425卡尔扎巴"; String[]names=rs3.split("\\w+"); System.out.println(Arrays.toString(names));
异常:
运行时异常,编译异常。
解决方法:在方法上使用throws关键字将方法内部出现的异常抛出去给调用者处理。
捕获异常:(try。。。catch)将异常的代码捕获:直接捕获程序出现的异常
try{
}catch(异常类型1 变量){
//处理异常
逻辑异常:
package com.SuanZhengYi.YiChang; public class AgeIllegalException extends Exception { public AgeIllegalException() { } public AgeIllegalException(String message) { super(message); } }
运行时异常:
package com.SuanZhengYi.YiChang; public class AgeIllegalRuntimeException extends RuntimeException { public AgeIllegalRuntimeException() { } public AgeIllegalRuntimeException(String message) { super(message); } }
异常的处理方式:
1.捕获异常,记录一场并相应合适的信息给用户。
2.捕获异常,尝试修复异常。