复习2月18日内容


异常分为两大类:

Error + Exception(RuntimeException+受检查异常/编译期异常)

java程序写成的文件叫java源代码文件(.java)-->编译,字节码文件(后缀名是.class)-->运行,JVM

异常的五个关键字try{可能产生异常的代码} catch(异常类型 参数名){打印异常信息} finally{强制执行的代码,一般包括释放资源等}

try如果不紧跟这catch语句,则必须添加finally语句

try语句后续可以接多个catch语句,如果包含多个catch语句块,需要先写子类异常,再写父类异常

throws:抛出异常:方法名 throws 异常类型名称

throw:抛出一个具体的异常 ,写法:方法体内throw 一个具体的异常对象;

面试笔试必考题:写出不少于5个的常见异常

ClassCastException:类型转换异常

NullPointerException:空指针异常

ArithmeticException:数学异常

IndexOutOfBoundsException:索引越界异常

IllegalArgumentException:参数异常

FileNotFoundException:文件没有找到异常

ClassNotFoundException:没有找到类异常

2月19日内容

1、java中所有类的祖先类都是Object,一个类如果没有显示写出父类,那么系统默认父类是Object


2、建议子类重写父类的toString方法,直接输出一个对象名其实是调用了此对象的toString方法


3、toString: 包名.类名+@+一段数字,为什么字符串的toString方法返回形式不是这样呢?因为字符串重写了父类的toString方法

重写:在继承关系中,子类的方法名、参数类型、返回值完全和父类一致,方法的重写

4、hashcode是对象地址的整数映射

5、getClass返回值class 包名.类名

6、阐述final、finalize、finally三者的区别

final可以修饰类、属性和方法,修饰类时类不能被继承,属性的属性表示常量,修饰的方法表示方法不能被重写

finalize垃圾回收器调用的方法

finally异常中必须执行的方法(提前中断有可能不执行)

7、当equals方法被重写时,通常有必要重写 hashCode 方法

8、final修饰的属性是只引用不可变还是值不可变?

9.字符串使用构造方法初始化和使用"="初始化区别