03:本题考点为try后跟多个catch时,后面的catch抓取的异常要么与前面catch抓取的异常无关,要么是前面catch抓取的异常的父类。
07:本题考点为缓冲字节流在写较小内容时,需要手动刷新缓冲区或者关闭缓冲流,才能使较小的内容写入文件中。
08:本题考点为try后跟多个catch时,父类异常要放子类异常后面。
11: 当抓取到异常时会直接返回异常,不会执行后续代码。
13: 子类重写父类方法时,如果父类抛出了异常,子类对异常可以有两种方式,一种是不抛,一种是抛比父类小的异常。
14: 本题考线程与进程的关系,具体看图。
17:当父类没有抛出异常时,子类也不能抛异常。
18:包装类虽然在使用上与基本数据类型可以无缝切换(依靠装箱与拆箱),但是包装类是引用数据类型,在声明时如果没有初始化,默认的值是null ,所以会出现空指针异常。
20:此题为线程的两种创建方式:1、实现Runnable接口;2、 继承Thread类。第三种未涉及的方式为实现Callable接口,用于线程池中。
21:无任何错误,直接Thread调用静态方法sleep,会使当前线程(主方法)sleep阻塞
23:synchronized用在方法上不需要对象。
25:此题考RamdomAccessFile,仔细去读API
26:Class B中的classC是成员变量,没有初始化的情况下是null,题中会出现空指针异常。
27:父类没有抛出异常,子类就不能抛出异常
30:BufferedInputStream是缓冲字节流,读出的是字节。
32:dt为守护线程的情况下,当main线程一结束,dt就会立即结束。同时Java虚拟机中有垃圾回收机制的gc线程,gc线程也是守护线程。
33:漏选了B,确实是成为可运行,而不是立即运行,因为要先进入就绪状态然后等待CPU分配时间片才能进入运行状态。
36:A中缺少异常抛出,B中缺少read方法需要抛出的IO异常,D中catch解决异常时需要父类异常放在子类异常后面。C中抛出了IOException异常,二IOException包含了FileNotFoundException,所以没有问题。
40:漏选了A选项,AC都是可以的,只是写的逻辑不同而已。
44:锁对象调用notify方法只是给其他线程通知进入就绪状态而已,当前线程还是持有锁对象,只有当前线程内容执行完之后,才会释放锁对象。