异常
Error: 一般是由虚拟机生成,不需要过多关注
Exception(异常):
RuntimeExceprtion:在运行期间发生的异常,一般在程序中可考虑用健壮性(if……else……)
空指针异常NullPointerException :当对象无法正常存在使用,会发生空指针
* 类型转换异常 ClassCastException -->intansceof
* 数组下标越界
* 数组长度负数异常
* 数学异常 ArithmeticException
* 数字转换异常 NumberFormatException
CheckedException: 检查时异常|编译时异常:发生在编译期间(这是编译时发生的为难题如果不处理程序无法运行)
异常
理解:程序无法正常执行
情况划分为
- 运行时
- 检查时
一般来说异常分为:throws和try……catch……
throws:
异常抛出 抛给上一层处理,当前不处理
try……catch……:
异常捕获
try一般来说一旦遇到遇到异常,后面的代码不会执行,会去找对应的catch,如果存在多个catch会从上到下依此判断,
重点:一旦出现对个catch,扑抓异常的范围应 从小到大
try{
* 可能会出现异常的代码;
* }catch(NullPointerException e){ //捕获空指针类型的对象,或者多态
* 如果出现这个异常,执行的代码...
* }catch(FileNotFoundException e){
* 如果出现这个异常,执行的代码...
* }....
* catch(Exception e){
* 任意类型的异常都可以捕获
* }finally{
* 无论try中是否出现异常,都会执行finally中的代码
* }
自定义异常
前提:需要直接或者间接的继承Throwable类
- 运行时异常: 继承自RuntimeException
- 编译时异常: Exception或者某一个编译时异常的子类
数组
在内存中是一段连续的内存空间,且具有相同的数据类型的有序集合
数组和变量的区别:
1. 变量 :存储单个的数据
2. 数组 : 储存多个数据
数组的特点:
- 数组是一个容器,是一个引用数据类型在堆中开辟空间
- 数组中所有数据要求数据类型相同
- 长度一旦确定不可改变
- 有序 ,根据序号使用(下标 ||索引)
数组的声明:
- 数据类型 变量名
- 数据类型[] 数组名
- 数据类型 数组名[]//不推荐
- 数据类型: 数组中所有数据的类型
初始化:
- 动态初始化: 创建的时候不确定数组中的数据值,可以先创建,后续确定了数据值的时候再赋值
1. 数据类型[] 数组名 = new 数据类型[长度];
2. 默认值:整型0 小数0.0 boolean->false char->' ' 引用数据类型null
- 静态初始化
创建数组的同时赋值
1. 数据类型[] 数组名 = new 数据类型[]{值1,值2,值3...};
2. 数据类型[] 数组名 ={值1,值2,值3...}; --简单,不够灵活
根据索引操作数组的数据
- 数组名[下标|索引]->定位数组中指定索引位置的空间,就可以赋值|获取值
- 数组中最后一个数据的索引(数组名.length-1)
数组的遍历
- for 普通for循环 (可以赋值)
- 增强for循环 但是里面不能赋值
数组内置方法的使用