【幻化万千戏红尘】qianfengDay12-java基础学习:二维数组、异常、错误
课程回顾:
数组:存储一组相同数据类型的数据结构
数组是引用类型
作用:存储多个数据
变与不变:
变:数组的元素的内容可以改变
不变:数组的长度不可改变
使用数组的核心:
1、确认数组元素的数据类型
2、确认数组的长度
初始化方式:
1、静态化初始化
格式:数据类型 数组名={值,……};
2、动态化初始化
格式:数据类型 数组名[=new 数据类型[长度]];
算法:
1、排序
2、查找
今日内容:
二维数组:数组的元素又是一个数组
谨记:二维数组的每个元素是一个数组
初始化方式:
1、静态
格式:数据类型[][] 数组名={{值,……},{值,……},……};
2、动态
格式:数据类型[][] 数组名[=new 数据类型[二维数组长度][一维数组长度]];
使用:
数据类型是元素对应的数组的元素的类型
在使用二维数组中的具体的元素的时候,
数组名[二维索引][一维索引]=值;
二维数组的每个元素都是一个一维数组对象
异常:程序在运行中发生的不正常的事件,中断了程序的正常执行
根据严重情况,我们分为:
错误:Error:就是内在机制出问题等,我们程序员无法干涉的问题
异常:Exception:因为我们程序员设计的原因引起的问题等,程序员可以解决的问题
异常的划分:
1、受检异常(编译异常)、检查异常
开发工具检查的异常,开发工具提示的异常
2、非受检异常(运行异常:RuntimeException)、非检查异常
开发工具不能检查的异常,开发工具未提示的异常
异常的处理:
1、捕获异常:try...catch(异常类)
使用格式:
try{
可能引发异常的代码块
}catch(异常类 参数名){
处理异常的代码块
}finally
{
一定会执行的代码块
}
try:内部放可能引发异常的代码
catch:内部可以多异常信息进行打印或记录
finally:内部常常写一些必须要关闭或断开连接的代码
异常机制:
程序在运行中发送了异常,就会产生异常类对象
如果有try那么就去匹配对应的catch,如果可以匹配成功
那么程序就认为该异常已经处理,会继续往下执行
但是若没有匹配成功则中断程序的执行
try可以跟多个catch语句,但是父类的异常应该在最下面的catch语句中
try不能单独使用
catch:[0,n],try后面可以不跟catch,就得跟finally
finally:[0,1],结合try使用,内部代码一定会执行
程序:先执行try,再匹配catch,最后执行finally
2、抛出异常:throws
用在方法的声明中,后面可以抛出多个异常,多个之间使用,隔开
格式:[修饰符] 返回值类型 方法名([形式参数列表]) throws 异常类
{
}
throw和throws的区别?
throws:
用在方法声明中
后面跟的是异常类名称
可以跟多个异常类
throw:
用在方法体中
后面跟的是异常类对象
只能抛一个对象
自定义异常类:
自定义类并继承异常类或异常子类
自定义异常类都是受检异常
在使用的时候,方法内部throw抛出对象,结合方法声明中throws抛出异常类型
常用类:
1、Math:算术运算工具类
常用的静态方法:
random:随机数 范围[0.0,1.0)
round:四舍五入
pow:获取指定数字的指定次幂
2、Random:随机数类
常用方法:
nextInt(int num):生成随机数 范围[0,num)
nextDouble:生成随机数 double 范围[0.0,1.0)
nextBoolean:生成随机数 boolean true|false
3、Runtime:运行时类
单例类,唯一实例
常用方法:
freeMemory:获取空闲内存 单位:字节
totalMemory:获取总内存 单位:字节
maxMemory:获取最大内存 单位:字节
exec:打开指定的软件
gc:调用GC
明日内容:
包装类/封装类
拆箱和装箱
String
StringBuilder
Date
SimpleDateFormat
Calendar
StringBuffer
System