日常学习 8.11 集合与异常值处理
8.11
API文档的查看
API:A 应用程序 P 编程 I 接口(此接口表示对外提供的功能)
API文档:就是这些功能的说明书(字典)
JDKAPI文档是有java源码的文档注释生成的
再API文档中有些方法被标记为 已弃用 ,说明官方不推荐使用,但是可以用
一、集合大家族
-族长(顶层接口):Collection 意为收集器
-List 列表 数据是有序的,可重复的 (适合长期的存储)
-Set 集 数据是无序的,不可重复的 (实现某些功能)
有序:有 下标/索引,添加顺序就是存储的顺序
无序:无 下标/索引,添加顺序不一定是存储的顺序
最常用的集合类:ArrayList
各大容器的对比:
-数组
-长度不可变
-所有的数据类型都能创建对应数组
-同一个数组元素类型必须一致 如 int[]
-对象
-属性的个数是不可变的
-所有的数据类型都能存进对象里
-集合
-长度可变
-集合只能存引用数据类型 (注意:每个基本数据类型都有对应的封装类 如 int --> Integer)
-集合中可以存不同的数据类型,但是一般都会规定集合存储同一种类型,
规定语法叫做定义"泛型" <数据类型>
ArrayList
1.增
add(新元素) 添加到末尾
add(index,新元素) 添加到指定位置
2.删
remove(index) 根据下标删除
remove(对象) 根据对象删除
clear() 清空
3.改
set(index,新值) 根据下标修改
4.查
获取一个新元素 集合名.get(index)
获取每一个元素 遍历
1.普通for循环遍历
2.增强for循环遍历(foreach遍历)迭代
for(元素的类型 元素的变量(a) :遍历的目标){
直接使用a
}
(将遍历的目标一个一个赋值给a)
二、异常大家族
-族长 Throwable 意为可抛出的
-Error 意为错误
比如语法错误,内存溢出 是无法处理的,必须修改代码逻辑
-Exception 意为异常
1.编译时期的异常
一边写代码,一边提示的异常
比如:线程异常 文件异常 IO流的异常 SQL的异常
2.运行时期的异常 RuntimeException
在代码编译阶段没问题,运行之后才会报出的异常
比如:数组越界,集合越界,空指针
异常处理机制
-虚拟机有默认处理方案
1.展示异常的类型信息
2.展示异常出现的位置
3.终止了程序(终止了当前的线程)
-自定义处理
-方式一:try catch代码块
try{
可能出现异常的代码
}catch(异常类型:可直接写父类类型如Exception,所有子类都可检测 取个名字e){
如果try的代码出现异常,并且异常类型与catch的类型匹配,
就会执行这里的代码,并且程序还能继续运行
}
-方式二
1.方法抛出异常 throws
2.谁调用方法,谁处理 try catch
异常处理使用场景
绝对不是隐藏bug或者规避bug
作用是利用异常处理机制 让 代码在改无可改的情况 保存程序继续运行
支线任务:
1.Object的toString方法有什么用
1、toString()方法的设计目的是:通过调用这个方法可以将一个“JAVA对象”转换成“字符串表现形式”。
2、返回对象的字符串表现形式。总的来说,这个方法返回一个字符串,“以文本的方式表示”这个对象。其结果应是一个简洁的,容易阅读的,建议所有子类都重写此方法。
3、**注意:**输出引用的时候,会自动调用该引用的toString()方法。
2.==和equals有什么区别
==是比较地址
equals是比较其内容值
3.你觉得String的哪些好用的方法?
-求字符串某一位置字符
public char charAt(int index)
-提取子串
用String类的substring方法可以提取字符串中的子串,该方法有两种常用参数:
1)public String substring(int beginIndex) // 该方法从beginIndex位置起,从当前字符串中取出剩余的字符作为一个新的字符串返回。
2)public String substring(int beginIndex, int endIndex) // 该方法从beginIndex位置起,从当前字符串中取出到endIndex-1位置的字符
4.ArrayList和LinkedList有什么区别
linkedList的底层是链表,在顺序查询的时候效率更高,并且有pop方法可以直接弹出其中的对象
ArratList的底层是数组,乱序查询的时候效率更高。