美文网首页
JavaSE 进阶 steam流,异常处理,日志

JavaSE 进阶 steam流,异常处理,日志

作者: 扶光_ | 来源:发表于2023-09-03 11:21 被阅读0次

steam流

在java8中,得益于lambda所带来的的函数式编程,用于简化集合和数组操作的API
如创建一个集合,并存储多个字符串,并将‘张’开头的存储到新集合

List <String> list = new ArrayList<>();
Collections.addAll(list,'张三丰,'张三'');
List<String> zhang = new ArrayList<>();
list.stream().filter(data->data.startWith('张')).forEach(s->System.out.print(s))//支持链式编程
  • 1Collection单例集合获取流
Collection<String> list = new ArrayList<>();
Stream <String> s = list.stream();
  • 2Map 多例集合获取流

Map <String,Integer> maps = new HashMap<>();
//键流
Stream <String> s = maps.keySet().stream();
//值流
Stream <String> s = maps.value().stream();
//键值对流
Stream <Map.Entry<String,Integer>> s =  maps.entrySet().stream();
  • 3 数组获取流
String[] arr = {'撒','ad','大大'};
Stream <String> s =Array.stream(arr);
  • 4 加工方法
    list.stream().map(s->"添加"+s); 原数据 ->添加元素后数据

  • 5 合并流
    不同类型的流需要用他们的父类object去接
    Stream<String> s = Stream.concat(s1,s2);

收集stream

就是把stream流操作后的结果数据转回到集合或数组中去.
stream流:方便操作集合/数组的手段
集合/数组才是开发中的目的
List <String> s = s1.collect(Collectors.toList ());

流只能使用一次

异常

是程序编译或执行的过程中可能出现的问题,如数组越界异常,空指针异常....

异常一旦出现如果没有提前处理,程序就会退出jvm虚拟机而终止


image.png
  • 常见的运行时异常
    数组索引越界异常 ArrayIndexOutBoundsException
    空指针异常 NullPointerException
    数学操作异常 ArithmeticException
    类型转换异常 ClassCastException
    数字转换类型 NumberFormatException
    异常是一种多线程机制

  • 编译时异常
    担心程序员技术不行,在编译阶段就爆出一个错误,目的在于提醒不要出错
    不是RuntimeException或其子类的异常,编译阶段就报错,必须处理,否则代码不通过
    可以使用throws抛出异常

  • 异常的默认处理流程
    1 默认会在出现异常的代码那里自动的创建一个异常对象:ArithmeticException
    2 异常会从方法中出现的点这里抛出给调用者,调用者最终抛出给jvm虚拟机
    3 虚拟机收到异常对象后,先在控制台直接输出异常
    4 直接从当前执行的异常点干掉当前程序
    5 后续代码直接死亡

编译时异常的处理形式 3种

  • 1 出现异常直接抛出去给调用者,调用者继续抛出去 throws
  • 2 出现异常自己捕获处理,不麻烦别人
  • 3 前两者结合,出现异常直接抛出去给调用者,调用者捕获处理

1 throws:用在方法上,可以将方法内部出现的异常抛出去给本方法的调用者处理。(并不好,最终抛给虚拟机会死亡)
方法 throws Exception{}

2 try catch
监视捕获异常,用在方法内部,可以将方法内部出现的异常直接捕获处理
(发生异常的方法自己独立完成处理的异常,程序可以继续往下执行)
try{
}catch(Exception e){
e.printStackTrace();
}
3 前1和2结合(最好的)底层抛出最外层,最外层集中捕获处理
方法直接将异常通过throws抛出去给调用者
调用者收到异常后直接捕获处理(try catch )
运行时异常的处理机制
建议放在最外层调用集中捕获处理
自定义异常

  • 1.自定义编译时异常
    定义一个异常类继承exception
    重写构造器
    在出现异常的地方用throw new自定义对象抛出

throws是用在方法声明上,抛出方法内部异常
throw 方法内部之间创建异常对象并从此处抛出

  • 2 自定义运行时异常
    定义一个异常类继承RuntimeException
    重写构造器
    在出现异常的地方用 throw new自定义对象抛出

相关文章

  • Java 学习路线

    JavaSE 基础语法 面向对象 异常处理 常用类(包装类、String) 集合框架及泛型 IO 流 多线程 网络...

  • JavaSE 基础学习之五 —— IO 操作 (java. io

    接上篇《JavaSE 基础学习之四 —— 异常的处理》 五. JavaSE 基础学习 —— IO 操作 (java...

  • JavaSE进阶七 异常

    1,异常机制 什么是异常,java提供异常处理机制有什么用?以下程序执行过程中发生了不正常的情况,而这种不正常的情...

  • PHP异常的捕获及处理

    系统自带异常处理 自定义异常处理 捕捉多个异常 日志记录 备注: register_shutdown_functi...

  • ASP.NET Core 异常处理与日志记录

    1. ASP.NET Core 异常处理与日志记录1.1. 异常处理1.1.1. 异常产生的原因及处理1.1.2....

  • JavaSE 基础学习之四 —— 异常的处理

    接上篇《JavaSE 基础学习之三 —— Java 的继承与接口》 四. Java 核心专题 —— 异常处理 1....

  • Java进阶

    注:采转归档,自己学习查询使用 Java进阶01 String类Java进阶02 异常处理Java进阶03 IO基...

  • javaSE_day12_异常处理

    异常 Throwable | Error错误 Exception异常 | 可以处...

  • javaSE核心技术-异常处理

    异常简介 异常类的继承关系 异常类的体系结构 Exception。Error类特指应用程序在运行期间发生的严重错误...

  • Android 崩溃日志收集

    原理:应用出现异常后,会由默认的异常处理器来处理异常,我们要做的就是把这个任务接管过来,自己处理异常,包括收集日志...

网友评论

      本文标题:JavaSE 进阶 steam流,异常处理,日志

      本文链接:https://www.haomeiwen.com/subject/pthvmdtx.html