异常:
在java中用类的形式对不正常的情况就行了描述和封装对象
描述不正常的情况的类,就称为异常类
以前正常代码和问题代码相结合,现在将正常流程代码和问题代码分离。提高阅读性
其实,异常就是java通过面向对象的思想将问题封装成了对象
用异常类对其进行描述
举例:
ArrayIndexOutOfBoundsException 数组角标越界异常
NullPointerException 空指针异常
ArithmeticException 数字异常
凡是可以通过throw/throws两个关键字体现的的对象,都具有可抛性
自定义异常
编译时异常&运行时异常
RuntimeException运行时异常不需要在发生的函数上和主函数上throws抛出
throw和throws的区别:
throws使用在函数上,throw使用在函数内
throws抛出的是异常类,可以抛出多个,用逗号隔开;throw抛出的是异常对象
以上都是异常的抛出,下面是异常的捕捉
捕捉:函数上需要声明和函数内要抛出,但是主函数上不需要声明抛出(即:不抛出就要捕获)
多catch情况,大异常要放在后面,否则前面就捕获了,会编译错误
异常的注意事项:
1:子类只能抛出父类已经抛出的异常或其异常的子类
2:如果父类抛出多个异常,那么子类只能抛出父类异常的子集
3:如果父类的方法没有抛出异常,子类绝对不能抛(就只能try)
Object对象
equals方法:判断两个对象是否相等,比较的是地址是否相等
为了更多功能的比较,通常要复写equals
hashCode方法:返回对象的哈希值
getClass()方法:返回此对象运行时类
能描述字节码文件的类就是Class 固定的
class Class{
//…..
}
字节码文件在内存中只有一份,但是一个字节码文件可以产生很多对象
toString()方法:原理getClass().getName()+”@”+Integer.toHexString(hashCode())
任何一个对象如果想建立其特定的字符串表现形式,就直接将其toString重写