一、
解析:
A.一个类只能有一个直接父类,一个类可以实现多个接口,一个接口可以继承多个类;
B.接口中都是常量,没有普通变量,默认修饰符:public static final;
C.JDK8之前,接口中的方法都是默认public abstract的,JDK8之后,接口中可以有static、default的修饰的方法,一旦被修饰,方法必须有方法体(抽象方法可是没有方法体的),接口中的方法都不能被private和protected修饰,同时外部接口、类只能被public修饰或者不写,但是内部接口、类可以被四个访问修饰符修饰。
D.接口无法被实例化,但可以被实现。一个实现接口的类,必须实现接口中的所有方法,否则必须声明为抽象类。
二、
解析:略
三、
解析:
- 粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明。受检查的异常必须在编译时被捕捉处理,命名为 Checked Exception 是因为Java编译器要进行检查,Java虚拟机也要进行检查,以确保这个规则得到遵守。
- 蓝色的是不可查异常包括运行时异常和error。
2.1. 绿色的异常是运行时异常(runtime exceptions),需要程序员自己分析代码决定是否捕获和处理,比如 空指针,被0除...
2.2. 而声明为Error的,则属于严重错误,如系统崩溃、虚拟机错误、动态链接失败等,这些错误无法恢复或者不可能捕捉,将导致应用程序中断,Error不需要捕捉。
四、
解析:
一条鞭法,把原来的田赋、徭役和杂税合并起来,折成银两,分摊到田亩上,按田亩多少收税。***只收取银两,不再管理和收取其它形式的税收。而接口的思想是提供一个对 外的通道,而不用管内部是怎么实现的。故选C。
五、
解析:
将a,b传递给x,y后执行x.appead(y),a指向的堆内存中的存储内容变成"AB";y=x,表示引用y指向x指向的存储区域,没有改变引用b,b引用指向的存储内容依旧为"B"。故选D。
六、
解析:
ArrayList底层是动态数组,增加数据时需要扩容并进行移位操作,速度慢;而LinkedList底层是双向链表,其增删速度快。
七、
解析:
引用x指向A,并追加了B,对象A也就变成了AB;引用y指向引用x,此时引用a,x,y都指向同一对象AB,b的指向不变。
八、
解析:
方法调用时,会创建栈帧在栈中,调用完程序自动释放出栈,而垃圾回收器(GC)主要针对的是堆区。
九、
解析:
throw用于抛出异常。
throws关键字可以在方法上声明该方法要抛出的异常,然后在方法内部通过throw抛出异常对象。
try是用于检测被包住的语句块是否出现异常,如果有异常,则抛出异常,并执行catch语句。
cacth用于捕获从try中抛出的异常并作出处理。
finally语句块是不管有没有出现异常都要执行的内容。
十、
解析:
- 一个子类只能继承一个抽象类,但能实现多个接口;
- 抽象类可以有构造方法,接口没有构造方法;
- 抽象类可以有普通成员变量,接口没有普通成员变量;
- 抽象类和接口都可有静态成员变量,抽象类中静态成员变量访问类型任意,接口只能public static final(默认);
- 抽象类可以没有抽象方法,抽象类可以有普通方法,接口中都是抽象方法;
- 抽象类可以有静态方法,接口不能有静态方法;
- 抽象类中的方法可以是public、protected;接口方法只有public。