Heyking

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 

lambda表达式

简化匿名内部类*****

前提:

​ 函数式接口 : 只有一个被重写的抽象方法的接口

​ @FunctionalInterface 强制检测一个接口是否为函数式接口

语法:

​ ()-> {}

​ ():重写抽象方法的参数列表

​ ->:箭头函数,lambda符号

​ {} :重写抽象方法的方法体

函数式编程:将函数的实现作为参数传递

为接口类型的引用赋值的时候

  1. 是否为函数式接口,如果是
  2. 可以通过lambda表达式进行赋值

写法1:标准写法

/*Swim swim = ()->{
	System.out.println("边喝水边游泳....");
};*/

写法2 : 当lambda体中语句只有一句,前后的{}可以省略

//Swim swim = (x,y)->System.out.println("边喝水边游泳...."+(x+y));

写法4 : 当参数只有一个,前后的()可以省略

//Swim swim = x->System.out.println("边喝水边游泳...."+(x));

写法5 : lambda体中语句只有一句,并且这个语句是return语句,前后的{}与return关键字可以一起省略

// Swim swim = x->x>=18;

异常

异常 :
异常机制
异常一旦出现就会影响程序的运行

异常体系 :
Throwable

​ / \

​ Error Exception

Error : 一般是由虚拟机生成并脱出的,不由程序猿控制解决

Exception : 异常

​ 编译时异常|检查时异常 : CheckedException

​ 发生在程序编译期间,如果不处理程序无法运行---->标准的异常处理方案

​ 运行时异常 : RuntimeException

​ 发生在运行期间,如果不处理程序无法继续运行 ---->标准的异常处理方案 | 增强程序健壮性if

说出5种运行时异常 :

  1. 空指针异常
  2. 类型转换异常
  3. 数组索引越界异常
  4. 数组长度负数异常
  5. 数学异常

异常处理方案 : *****

​ 异常抛出 : throws : 将异常从方法的内部抛出到方法上面,由调用方法的位置解决这个异常

​ 在方法上通过throws抛出某种类型的异常,代表当前方法执行过程中有可能出现的问题

​ 异常捕获:try-catch

try{
   有可能出现异常的代码段;
}catch(FileNotFoundException e){
   遇到对应类型的异常对象出现,捕获执行{}中的代码;
}catch(NullPointerException e){
   遇到对应类型的异常对象出现,捕获执行{}中的代码;
}....
catch(Exception e){
   相当于else,default...
}finally{
   无论是否遇到异常,都会执行finally中的代码;
}

​ 一个try的后面可以跟1~n个catch,没有个数限制

​ 多个catch捕获的异常类型要求从小到大

​ try中的代码可以回遇到异常可以不会

​ 从上到下执行try中的代码,如果一旦遇到异常,停止try中代码的执行,直接从上到下的判断catch,执行对应的catch后面的{}

​ 如果执行try中代码时,没有遇到异常,不会执行catch

​ jdk7中,可以将多个catch合并为一个,简化try-catch代码结构

自定义异常 :

​ 自定义的异常类型继承自异常体系

​ 自定义的编译时异常需要继承自Exception,或者Exception下的子类(不能继承自RuntimeException)

​ 自定义的运行时异常需要直接或者间接的继承自RuntimeException

​ 制造异常 throw

异常学习重点掌握 :

​ 1.异常体系

​ 2.异常处理方案

posted on   CTF小明  阅读(75)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
 
点击右上角即可分享
微信分享提示