StringBuffer 和StringBuilder的常用方法
增加了操作字符串的方法
String:字符串常量,字符串长度不可变.改变了字符串,新建String对象.适用操作字符 串少
StringBuffer:字符串常量,同步,线程安全,适合同步,频繁对字符串操作.多线程大 量操作
StringBuilder:字符串常量,不同步,线程不安全,效率比较高.单线程大量操作字符串
- 日期 java.util.Date类
Java.sql.Date 为了与数据库的Date类型相匹配
Java.util.Date类 封装好当前的日期和时间对象
- 日历
抽象类Calendar 实现类GregorianCelendr
- 日期和日历的区别
- 名字上:日期,日历; 作用范围不一样
- 日期:处理当前时间
- 日历:处理到年月日
- 类型:Date 普通类,日历类是抽象类
- 操作方式:日历操作方法比日期多很多
- Date操作时间比较方便
- 日历操作年,月,日比较方便
- 日历肯定更好用
- 异常
异常exception是程序中的一些风险,这些风险处理机制,可以避免异常
比如:空指针,数组下标越界,类型转换
错误error是不符合程序的规范
比如:程序中没有写符号等
异常有两种:
检查性异常,和运行时异常(非检查性)
检查性异常:必须要处理的异常. 只能自己处理,不能抛出此异常.比如IO异常和SQL异常
运行时异常:运行时异常可能被避免的异常
比如:常见异常,内存溢出异常
Exception类
Exception是所有异常类的父类
Throwable类子类: Exception(异常),Error(错误);
Exception类主要的两个子类:IOException 和 RuntimeException类
异常类都是处在java.lang包中,不用导包,默认加载到了程序中
异常处理机制
两种:1.抛出异常 2.捕获异常
抛出异常:把异常抛给上一级进行处理,使用者不处理
语法:throws Exception
捕获异常:使用者进行捕获异常
语法:
try{
//程序的代码
}catch(Exception e){
//捕获异常的区域
//把异常打印输出流中
e.printStackTrace()
}finally{
//最终会执行的区域
}
Try代码块:程序代码。可能会出现异常的代码块
Catch代码块:捕获异常代码块,异常出现后,会在此代码块中捕获,并且执行异常的方法
Finally代码块:可写,一定会执行的代码块
多重捕获异常
一个try代码块后面有多个catch代码块,说明要捕获多个异常
多重捕获异常规则:从小异常到大异常的捕获顺序,捕获的异常更精准,更详细.执行顺序从上往下每个catch都会执行,知道异常被捕获
Finally代码块
一定会执行的代码块,可以在此代码块中运行清理等收尾善后的工作
比如:JDBC的连接,资源关闭
声明自定义的异常:
- 所有异常的父类都是Exception,Exception的父类是Throwable类.自定义的异常必须继承Exception类
- 声明检查性异常,继承Exception类
- 声明运行时异常,继承RuntimeException类
- 声明异常类与普通类一样,包含变量,构造方法,方法