3.Java加强-异常机制+线程的基本语法

本文介绍了Java中的字符串处理(包括String和StringBuilder),正则表达式的使用,日期与Calendar类,异常处理的体系结构、方式以及自定义异常,同时涵盖了线程和多线程的概念及其在提高执行效率中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、回顾:

  • 字符串类:
    • String:不能更改的字符串,底层使用常量的字节数组
    • StringBuffer
    • StringBuilder
  • 正则表达式:
    • matches(String regex):判断一个字符串是否满足定义正则
    • replaceAll(String regex,String replacement):替换所有字符串
    • replaceFirst(String regex String replacement):替换第一个
    • split(String regex):分割字符串
    • 作用:
      • 最字符串进行判断
  • 日期相关的内容
    • 1.Date:java.util.Date:表示日期时间
    • 2.SimpleDateFormat:日期格式化的类
    • 3.日期的模板:yyyy MM dd HH mm ss,字符串的拼接
    • 4.format(Date),返回的类型是String
    • 5.parse(String):将字符串表示的日期转为Date类型的日期
  • Calendar:日历类,做时间运算的加减操作;
    • 使用方法:
      • 创建对象
    • 常用的字段:
      • YEAR:表示年字段【属性】
      • MONTH:表示月份的字段
      • DAY_OF_MONTH:表示月的第几天字段
      • DAY_OF_WEEK:表示第几周字段
      • HOUR:时钟字段
      • MINUTE:分钟字段
      • SECOND:秒的字段
    • 方法:
    • get(字段),
    • set(字段,值)
    • add(字段,值)
    • getTime():将Calendar转为date
    • setTime:将日期设置为指定的日期

二、异常概念【了解】

1.异常的体系结构

  • Throwable:在Java中是异常的顶级父类
    • Error:错误
      • 错误是不能用Java代码处理的异常
        • 错误情况
          • StackOverflowError:栈内存溢出的错误
    • Exception:异常
      • 可以使用Java代码处理的异常
      • 异常分为两种情况
        • 编译时异常:强制需要处理的异常
        • 运行时异常:不强制处理的异常
      • 常见的运行时异常
        • 1.ArrayIndexOutBoundsException:下标越界
        • 2.NullPointerException:空指针异常
        • 3.ArithmeticException:除数为零
        • 4.ClassCastException:类型转换异常
        • 5.NumberFormatException:数字格式异常
        • 6.IllegalArgumentException:非法参数异常 (不是多态创建的 Object obj = new object() String s = (String)obj )
      • 编译时的异常(后续补充)
        • IOException:IO流异常
        • ParseException:转换日期格式的不匹配
    • 区分编译和运行的异常
      • 直接父类是Exception的异常就是编译时异常
      • 直接父类是RuntimeException的就是运行时异常

二、异常处理的两种方式【重点】

ctrl + alt +t

1.抛出异常(甩锅式处理)

throws:抛出的是异常类

throw :抛出的是异常对象

  • 使用throws进行甩锅(抛出异常)
  • 抛给谁:抛给使用者
  • 抛到哪里:在方法签名后面抛出,抛出的是异常名称

  • 抛出异常对象(主动抛出):throw
  • 在方法体里面抛出
  • e.printStackTrace:打印错误信息及位置
  • e.getMessage:只打印错误信息
  • throw new 错误信息(e)

2.捕获异常 自行处理(背锅式处理)

语法:
    try{
        // 可能会发生的异常代码
    }catch(异常的类型:异常的类名 参数名){
        // 捕获异常进行处理
    }finally{
        // 异常处理的出口,一般用来关闭流,释放内存空间,或者用来释放锁
        不管有没有异常发生都要执行的区域,除非在这个代码之前结束了JVM虚拟机
    }

3.捕获异常处理的执行流程(try catch)

/*
try catch的执行流程
    1.try是入口,只要try里面的某一句代码出异常,就会去匹配相应的catch
    2.匹配上就打印相应的错误信息,程序就结束;   
*/

五、自定义异常【掌握】

1.自定义异常

  • 自己定义一种异常,自己定义一个类,这个要么是Exception的子类,要么是RuntimeException的子类
  • 定义方式
1.
pbulic class 类名 extends Exception{//定义编译时异常
    
}
或
pbulic class 类名 extends RuntimeException{//定义运行时异常
    
}
2.在类里面书写两个构造方法

三、线程

  • 进程:可以看成是在计算机当中运行的一大块代码(一个应用软件)
    • 一个进程在运行中会有独立的一块内存
    • 一个进程中可以有多个线程,至少有一个线程
  • 线程:可以看成是在计算机当中运行的一小块代码(某个软件里的某个功能)
    • 每一个功能可以看作是一个线程,线程也有独立的内存,但是共用的进程内存
    • 线程是进程中的最小单位
    • 执行流程
      • 进程启动-->线程进入内存-->CPU分配时间片(时间片极小的时间单位)-->随机线程拿到时间片-->线程执行;
      • 直到线程的功能全部执行完毕为止
    • 线程的执行其实是交替的

四、多线程

  • 概念:在一个进程中有多个独立存在的线程,为什么一个软件要设计多线程
    • 线程越多,执行效率越高
    • 可以利用多核优势
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值