24/04/09总结

异常:

1.异常是什么?
程序中可能出现的问题
2.异常体系的最上层父类是谁?异常分为几类?
父类:Exception。
异常分为两类:编译时异常、运行时异常
编译时异常和运行时异常的区别?
编译时异常:没有继承RuntimeException的异常,直接继承于Exception。
编译阶段就会错误提示
运行时异常:RuntimeException本身和子类,
编译阶段没有错误提示,运行时出现的

 

自己处理(捕获异常)
格式:               ctrl+alt+t选择try catch
try{
可能出现异常的代码;
}
catch(异常类名 变量名){
异常的处理代码:
}
目的:当代码出现异常时,可以让程序继续往下执行
细节:如果我们要捕获多个异常,这些异常中如果存在父子关系的话,那么父类一定要写在下面
Throwable 的成员方法
方法名称                              //说明
public String getMessage()           返回此 throwable 的详细消息字符串
public string toString()             返回此可抛出的简短描述
public void printStackTrace()        把异常的错误信息以红色字体输出在控制台(仅仅是打印信息不会停止程序运行)
抛出处理
throws
注意:写在方法定义处,表示声明一个异常
告诉调用者,使用本方法可能会有哪些异常
public void 方法()throws 异常类名1,异常类名2...{
....
}
编译时异常:必须要写,
运行时异常:可以不写
throw
注意:写在方法内,结束方法
手动抛出异常对象,交给调用者
方法中下面的代码不再执行了
public void 方法(){
throw new NullPointerException();
}
简单来说抛出和捕获的区别是:抛出:告诉调用者出错了,捕获:不让程序停止

 

File: 

File对象就表示一个路径,可以是文件的路径、也可以是文件夹的路径
这个路径可以是存在的,也允许是不存在的
方法名称                                                               说明
public File(String pathname)                          根据文件路径创建文件对象
public File(String parent,string child)               根据父路径名字符串和子路径名字符串创建文件对象
public File(File parent,string child)                 根据父路径对应文件对象和子路径名字符串创建文件对象

 

 //1.根据字符串表示的路径,变成File对象String str="C:\\Users\\35303\\Desktop\\a.txt";File f1 = new File(str);System.out.println(f1); //C:\Users\35303\Desktop\a.txt";
//2.父级路径:C:\Users\35303\Desktop//子级路径:a.txtString parent = "C:\\Users\\35303\\Desktop";String child = "a.txt";File f2 = new File(parent,child);System.out.println(f2);
  //3.把一个File表示的路径和String表示的路径进行拼接File parent2 = new File("C:\\Users\\35303\\Desktop");String child2 = "a.txt";File f3 = new File(parent2,child2);System.out.println(f3);

运行结果:
 

 

public boolean isDirectory()          判断此路径名表示的File是否为文件夹
public boolean isFile()                判断此路径名表示的File是否为文件
public boolean exists()                判断此路径名表示的File是否存在
public long length()                      返回文件的大小(字节数量)
public string getAbsolutePath()           返回文件的绝对路径
public string getPath()                   返回定义文件时使用的路径
public string getName()                   返回文件的名称,带后缀
public long lastModified()                返回文件的最后修改时间(时间毫秒值)
public boolean createNewFile()            创建一个新的空的文件
public boolean mkdir()                    创建单级文件夹
public boolean mkdirs()                   创建多级文件夹
public boolean delete()                   删除文件、空文件夹(delete方法直接删除不走回收站)

 

//createNewFile()创建一个新的空的文件//细节1:如果当前路径表示的文件是不存在的,则创建成功,方法返回true//如果当前路径表示的文件是存在的,则创建失败,方法返回false//细节2:如果父级路径是不存在的,那么方法会有异常IOException//细节3:createNewFile方法创建的一定是文件,如果路径中不包含后缀名,则创建一个没有后缀的文件File f1 = new File("C:\\Users\\35303\\Desktop\\a.txt");boolean b = f1.createNewFile();System.out.println(b);//mkdirFile f2 = new File("C:\\Users\\35303\\Desktop\\aaa");boolean c = f2.mkdir();System.out.println(c);

输出结果:
 
桌面成功创建
 

//Delete 删除//细节1://如果删除的是文件,则直接删除,不走回收站。//如果删除的是空文件夹,则直接删除,不走回收站//如果删除的是有内容的文件夹,则删除失败File f3 = new File("C:\\Users\\35303\\Desktop\\aaa");boolean delete = f3.delete();System.out.println(delete);File f4 = new File("C:\\Users\\35303\\Desktop\\a.txt");boolean delete1 = f4.delete();System.out.println(delete1);

 文件删除

Stream流:

stream流的作用:
结合了Lambda表达式,简化集合、数组的操作
Stream流的使用步骤:
① 先得到一条Stream流(流水线),并把数据放上去
② 利用Stream流中的API进行各种操作:
1.过滤、转换:       中间方法:方法调用完毕之后,还可以调用其他方法
2.统计、打印:       终结方法:最后一步,调用完毕之后,不能调用其他方法

 

获取方式                  方法名                                                               说明
单列集合                  default Stream<E> stream()                                 Co1lection中的默认方法
双列集合                                  无                                                             无法直接使用stream流
数组                      public static<T>stream<T> stream(T[] array)         Arrays工具类中的静态方法
一堆零散数据               public static<T>stream<T> of(T... values)          stream接口中的静态方法

 

  //1.单列集合获取stream流ArrayList<String> list = new ArrayList<>();Collections.addAll(list,"a","b","c","d","e");       //给集合添加数据list.stream().forEach(s -> System.out.println(s));   //lambda表达式System.out.println("-------");

 

 //2.数组获取stream流int []arr = new int[]{1,2,3,4,5,6,7,8,9,10};String []arr1 = new String[]{"a","b","c"};Arrays.stream(arr).forEach(s-> System.out.println(s));Arrays.stream(arr1).forEach(s-> System.out.println(s));System.out.println("-------");

 

 //3.一堆零散的数据(前提:必须是同一种数据类型)Stream.of(1,2,3,4,5).forEach(s-> System.out.println(s));Stream.of("a","b","c","d").forEach(s-> System.out.println(s));

 

Stream流的中间方法
名称                                                              说明
Stream<T>filter(Predicate<? super T> predicate)                   过滤
Stream<T> limit(long maxSize)                                     获取前几个元素
Stream<T> skip(long n)                                            跳过前几个元素
Stream<T> distinct()                                              元素去重,依赖(hashcode和equals方法)
static <T> Stream<T> concat(Stream a, Stream b)                   合并a和b两个流为一个流
Stream<R>map(Function<T,R> mapper)                                转换流中的数据类型
注意1:中间方法,返回新的Stream流,原来的Stream流只能使用一次,建议使用链式编程
注意2:修改Strgam流中的数据,不会影响原来集合或者数组中的数据
 ArrayList<String>list = new ArrayList<>();Collections.addAll(list,"张无忌","周芷若","赵敏","张强","张三丰","张翠山","张良","王二麻子","谢广坤");//filter    过滤      把张开头的留下,其余数据过滤不要(只要张开头,且名字为3个的)list.stream().filter(s -> s.startsWith("张")).filter(s -> s.length()==3).forEach(s -> System.out.println(s));System.out.println(list);   //这个时候集合里的值是没有变化的System.out.println("1--------");

 

//limit 获取前几个元素     skip 跳过前几个元素list.stream().limit(3).forEach(s -> System.out.print(s+' '));System.out.println();list.stream().skip(4).forEach(s -> System.out.print(s+' '));System.out.println();System.out.println("2--------");

 

 //distinct 去重ArrayList<String>list2 = new ArrayList<>();Collections.addAll(list2,"张无忌","张无忌","张无忌","张无忌","周芷若","赵敏","张强","张三丰","张翠山","张良","王二麻子","谢广坤");list2.stream().distinct().forEach(s -> System.out.print(s+' '));System.out.println();System.out.println("3--------");

//concat 合并两个流为一个流ArrayList<String>list3 = new ArrayList<>();Collections.addAll(list3,"shiaf","faefwafa");Stream.concat(list2.stream(),list3.stream()).forEach(s -> System.out.print(s+' '));System.out.println();System.out.println("4--------");//map:转换数据类型ArrayList<String>list4 = new ArrayList<>();Collections.addAll(list4,"张无忌-15","周芷若-14","赵敏-20","张强-18","张三丰-12","张翠山-20","张良-21");//Integer.parseInt()将字符串转换为10进制//split:根据里面的东西切割数据分配索引list4.stream().map(s -> Integer.parseInt(s.split("-")[1])).forEach(s-> System.out.print(s+" "));

 

Stream流的终结方法
名称                                                                  说明
void forEach(Consumer action)                 遍历
long count()                                                  统计
toArray()                                                 收集流中的数据,放到数组中
collect(Collector collector)                  收集流中的数据,放到集合中
 
 //forEach 遍历ArrayList<String> list = new ArrayList<>();Collections.addAll(list,"张无忌","周芷若","赵敏","张强","张三丰","张翠山","张良","王二麻子","谢广坤");list.stream().forEach(s -> System.out.print(s+' '));System.out.println();System.out.println("--------------------");//count 统计元素数量long count1 = list.stream().count();System.out.println(count1);System.out.println("--------------------");//toArray() 收集流中的数据,放到数组中String[] strings = list.stream().toArray(value -> new String[value]);System.out.print(Arrays.toString(strings)+' ');

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/803504.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python实现滑块验证码识别,最简单的一种,没有任何加密

网址链接&#xff1a;衣丰 & 2010-聚衣网(juyi5.cn) - 常熟市聚衣网&#xff0c;聚衣网女装&#xff0c;江苏省女装批发&#xff0c;苏州市女装批发&#xff0c;常熟市女装批发&#xff0c;网销女装一件代发&#xff0c;全国最低价 平时采集数据&#xff0c;频率过快&…

设计模式面试题

概述 设计模式分类 创建型模式 用于描述“怎样创建对象”&#xff0c;主要特点是“将对象的创建与使用分离”。使用者不需要官族对象创建的细节。结构型模式 用于描述如何将类或对象按照某种布局组成更大的结构。行为型模式 用于描述类或对象之间怎样相互协作共同完成单个对象…

Domain Admin:方便快捷的图形化域名和SSL证书监测平台

Domain Admin&#xff1a;一目了然&#xff0c;一键掌握&#xff0c;您的全方位图形化域名与SSL证书智能管家&#xff01;- 精选真开源&#xff0c;释放新价值。 概览 Domain Admin是一个基于Python Vue3.js 技术栈实现的域名和SSL证书监测平台&#xff0c;旨在为用户打造一个…

7-17 爬动的蠕虫

题目链接&#xff1a;7-17 爬动的蠕虫 一. 题目 1. 题目 2. 输入输出样例 3. 限制 二、代码 1. 代码实现 #include <stdio.h>int main(void) {unsigned int n, u, d;unsigned int minute, high;if (scanf("%d %d %d", &n, &u, &d) ! 3) {retur…

有关栈的算法

例题一 解法&#xff08;栈&#xff09;&#xff1a; 算法思路&#xff1a; 本题极像我们玩过的「开⼼消消乐」游戏&#xff0c;仔细观察消除过程&#xff0c;可以发现本题与我们之前做过的「括号匹配」问题是类似的。当前元素是否被消除&#xff0c;需要知道上⼀个元素的信息…

C/C++如何快速学习?少走3年弯路

于我而言&#xff0c;最开始学习就是 C&#xff0c;除了计算机专业&#xff0c;其他专业可能学习的第一门编程语言为 C 语言&#xff0c;还是谭浩强爷爷那本&#xff0c;当时想着有点 C 基础&#xff0c;无外乎就是 C 语言的升级版&#xff0c;于是开启了 C 的路程。 语言这个…

《深入Linux内核架构》第4章 进程虚拟内存(1)

目录 4.1 简介 4.2 进程虚拟地址空间 4.2.1 进程地址空间分布 4.2.2 建立布局 第3章讲了两点&#xff1a;物理内存的管理&#xff0c;内核虚拟地址管理。 本章讲&#xff1a;用户进程的虚拟地址空间管理。 4.1 简介 一个进程的整个虚拟地址空间&#xff08;0-3G&#xf…

JKTECH柔性振动盘柔性上料机

柔性供料器&#xff1a;用途广泛与好处显著 在现代工业生产中&#xff0c;随着技术的不断进步和市场的多样化需求&#xff0c;对物料供应系统的要求也日益提高。柔性供料器&#xff0c;作为一种新型的物料供应装置&#xff0c;其用途广泛且好处显著&#xff0c;正逐渐受到各行…

苍穹外卖亮点再梳理 ||

一、项目整体亮点&#xff1a; 【注&#xff1a;基于每个亮点&#xff0c;均有整理的相关知识&#xff0c;可在博客中查看】 1.数据库的设计采用RBAC&#xff08;基于角色访问控制&#xff09;的权限设计。 RBAC将权限授予角色&#xff0c;然后将用户分配给角色&#xff0c;…

算法——倍增

. - 力扣&#xff08;LeetCode&#xff09; 给你一棵树&#xff0c;树上有 n 个节点&#xff0c;按从 0 到 n-1 编号。树以父节点数组的形式给出&#xff0c;其中 parent[i] 是节点 i 的父节点。树的根节点是编号为 0 的节点。 树节点的第 k 个祖先节点是从该节点到根节点路径…

指针 基础知识

本笔记为观看56 指针-指针的定义和使用_哔哩哔哩_bilibili后的学习笔记 指针的定义和使用 1、定义指针 int main () {//1、定义指针int a 10;//指针定义的语法&#xff1a; 数据类型 * 指针变量名&#xff1b;int * p;//让指针记录变量a的地址p &a; //& 为取址符cou…

电商技术揭秘十六:电商中的实时分析与决策支持系统

相关系列文章 电商技术揭秘一&#xff1a;电商架构设计与核心技术 电商技术揭秘二&#xff1a;电商平台推荐系统的实现与优化 电商技术揭秘三&#xff1a;电商平台的支付与结算系统 电商技术揭秘四&#xff1a;电商平台的物流管理系统 电商技术揭秘五&#xff1a;电商平台…

如何部署上线项目

❤️ Author&#xff1a; 老九 ☕️ 个人博客&#xff1a;老九的CSDN博客 &#x1f64f; 个人名言&#xff1a;不可控之事 乐观面对 &#x1f60d; 系列专栏&#xff1a; 文章目录 多环境多环境分类前端多环境实战请求地址启动方式项目配置 后端多环境实战 项目部署原始部署前端…

【项目】棋海争锋

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f4d5;格言&#xff1a;吾愚多不敏&#xff0c;而愿加学欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 项目介绍 WebSocket介绍 使用 项目创建 数据库设计 用户模块 登录接口 注册接口 获取用户信息接口 匹配模块 …

【Bing】开启代理后使用 Bing 搜索引擎总是: 没有与此相关的结果

【Bing】开启代理后使用 Bing 搜索引擎总是: 没有与此相关的结果 1 问题描述2 解决方法2.1 修改代理规则2.1.1 Clash Verge2.1.2 Clash Verge Rev2.1.3 V2RayN 1 问题描述 当我开了代理访问 Bing 时&#xff0c;经常会出现下面的页面: 2 解决方法 我所知的有三种方法: 手动关…

关于JVM-三色标记算法剖析

相关系列 深入理解JVM垃圾收集器-CSDN博客 深入理解JVM垃圾收集算法-CSDN博客 深入理解jvm执行引擎-CSDN博客 jvm优化原则-CSDN博客 jvm流程图-CSDN博客 三色标记产生的原因&#xff1f; 在并发标记的过程中&#xff0c;因为标记期间应用线程还在继续跑&#xff0c;对象间的引…

使用Matplotlib绘制打断图Broken Axis

使用Matplotlib绘制打断坐标轴Broken Axis 对于一批存在离群点的或者两极分化的数据&#xff0c;为了突出其值域差异&#xff0c;时常需要用到打断坐标轴效果。 使用Matplotlib绘制的效果如下&#xff1a; 对于同样的数据&#xff0c;使用brokenaxes库的绘制效果如下&#x…

Ubuntu20.04安装和编译运行lidar_align来联合标定lidar与imu的外参

硬件&#xff1a;树霉派4b 1、下载并安装lidar_align mkdir -p lidar_align/src cd lidar_align/src git clone https://github.com/ethz-asl/lidar_align.git 将 lidar_align/src/lidar_align/NLOPTConfig.cmake 文件移动到 lidar_align/src/ 下(与lidar_align同级) NLOP…

ShardingSphere-ShardingSphere读写分离和数据脱敏

文章目录 一、读写分离1.1 读写分离1.2 读写分离应用方案1.3 分表+读写分离1.4 分库分表+读写分离二、ShardingSphere-JDBC读写分离2.1 创建SpringBoot并添加依赖2.2 创建实体类2.3 创建mapper2.4 配置读写分离2.5 测试测试插入数据测试读测试事务一致性测试负载均衡一、读写分…

vue3+echarts:echarts地图打点显示的样式

colorStops是打点的颜色和呼吸灯、label为show是打点是否显示数据、rich里cnNum是自定义的过滤模板用来改写显示数据的样式 series: [{type: "effectScatter",coordinateSystem: "geo",rippleEffect: {brushType: "stroke",},showEffectOn: &quo…