Java的高级应用(1)

1.集合框架
集合框架包含的内容
在这里插入图片描述
1.1List接口的实现类
ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高
LinkedList采用链表存储方式。插入、删除元素时效率比较高
1.1.1 ArrayList:可动态维护长度的集合
集合的初始化:
import java.util.*;
List list1= new ArrayList();
ArrayList list2= new ArrayList();
常用的方法:
添加元素:
int Add(Object value) //添加一个对象到集合的末尾,返回索引
获取集合的长度
Int size()
遍历元素
使用for循环
Foreach循环的使用
获取元素
Object get(int index)
删除
1.1.2 LinkedList 添加删除效率更高
方法与ArrayList中的方法几乎相同,特殊的方法如下:
在这里插入图片描述
1.2Map接口
在这里插入图片描述
2.迭代器
所有集合接口和类都没有提供相应遍历方法,而是由Iterator实现集合遍历
Collection 接口的iterate()方法返回一个Iterator,然后通过Iterator接口的两个方法可实现遍历
boolean hasNext(): 判断是否存在另一个可访问的元素
Object next(): 返回要访问的下一个元素

3.泛型集合
泛型最常见的用途是创建集合类
泛型集合可以约束集合内的元素类型
典型泛型集合List,HashMap<K,V>
、<K,V>表示该泛型集合中的元素类型
在这里插入图片描述

4.异常
4.1 什么是异常?
异常:不正常。
异常是一个错误。是运行时发生的错误。
错误不全是异常。错误分成三类:
语法错误:(编译不能通过,最好解决的)
逻辑错误:boolean res=true; if(res=false){}
异常:try-catch 代码没有错误,使用的人使用错误
4.2为什么要处理异常
程序中运行时发生了错误,程序会异常终止,为了让发生的错误不会影响到其他可以正常执行的代码。
4.3异常的结构
Throwable:异常的顶级父类;
Error:错误类,运行时发生的重大错误。
Exception:异常类,表示了所有异常的父类
检查异常Exception的子类:必须处理,使用try,catch,finally 等异常的关键字处理
非检查异常RuntimeException的子类:不用处理
在java程序中将每一种出现的异常都封装成一个异常类
异常的父类:Exception
在这里插入图片描述
4.4常见的异常类
常见异常的名称,为什么会出现这种异常,都必须掌握。
空指针异常NullPointerException:
下标越界(索引超出范围):IndexOutOfBoundsException:int[] num={1,2},num[2];3
ClassCastException:类型转换异常:父类强制转换子类时类型不匹配
ClassNotFoundException:类没有找到,反射的时候用到
ArithmeticException:算数异常:/0
illegalargumentexception :方法的参数错误
FileNotFoundException :文件未找到异常
NumberFormatException :字符串转换为数字异常。
4.5异常处理使用过的5个关键字
try:try块 try{}负责监听代码的运行,当发生异常的时可用捕获异常,并将异常对消抛出。
Catch :catch块 catch(Execption e){} 接收try抛出的异常对象,并在catch块中进行异常处理。
Finally:finally 块 finally{} 一定会运行的部分,不管是否发生异常。一般用来清空资源。
Throw:手动抛出异常。一般情况跟自定义异常一起使用。
Throws: 声明一个异常,只能用在方法的声明上。
4.6 try-catch基本格式
Try{
监听的代码
}catch(Execption e){
处理异常的代码
}
执行的流程:
当“监听的代码“中发生异常时,自动停止执行”监听的代码”,将异常对象抛出给catch块。让catch进行异常处理代码。
当“监听的代码“中没有发生异常时,catch块会被自动跳过。
不管“监听的代码“中是否发生异常,都不影响try-catch后面的代码执行。
4.7多重catch块格式
Try{
监听的代码
}catch(Execption子类 e){
处理异常的代码
}catch(Execption子类 e){
处理异常的代码
}catch(Execption e){
处理异常的代码
}
执行流程:
一个try块可以匹配多个catch块;
在try中有可能抛出不只是一种异常。所以使用多个catch块,针对不同的异常进行不同的异常处理。
4.8多重catch块的另外的格式
Try{
监听的代码
}catch(Execption子类1 |Execption子类2 |Execption子类3 e){
处理异常的代码
}catch(Execption e){
处理异常的代码
}
4.9finally块
表示必须执行的部分,不管是否发生异常。
Try{
}catch(Execption e){
}
Finally{
一定会执行的代码
}
Try{}
Finally{
一定会执行的代码
}使用finally比较特殊的格式,catch可以省略。
4.10 throw 关键字:手动抛出异常
格式:throw 异常对象;
Throw new Execption();
4.11 throws 关键字:在方法上声明异常
格式: public void fun() throws 异常类1,异常类2,…{
//方法体
}
4.12 什么情况下使用try-catch,什么情况使用throws?
4.12.1程序本身是有层次;
View:表示层 上层
Biz:业务层 依赖于dao,为view服务
Dao: 数据访问层 底层
4.12.2底层一般不考虑业务,只负责自己的功能(提供数据)
4.12.3底层不知道哪一个上层调用自己的方法
4.12.4底层的方法都要选使用throws向上抛出异常。
4.13 自定义异常类
4.13 .1为什么自定义异常?
异常类其实只代表一种异常情况。
在实际开发中,有些情况是业务逻辑上的异常,不是语法异常,java不会提供的,所有自己定义异常。

4.13 .2如何自定义异常类?
a)继承:自己定义一个类是异常类,is-a
Public class 类名 extends Exception{}
Exception 的构造方法
Public Exception (String message){}message就是异常信息
自定义异常的使用:配合throw一起使用
If(条件){
Throw new MyException();
}
4.14 异常类的常用方法
String getMessage():获取异常的详细的错误信息
void printStackTrace(); 将追踪栈中的信息打印

4.15 final、finally、finalize的区别?
final是修饰符,可以用来修饰类、属性、方法;finally是异常处理语法块,用来清理异常处理过程中打开的物理资源,可以省略。finalize是一个方法,用来做垃圾回收前的清理工作,不建议程序员调用。

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值