2022.01.12Java基础阶段练习题
2022.01.12阶段性习题
1.main方法选择题
class Test { public static void main(String[] args) { String foo = args[1]; String bar = args[2]; String baz = args[3]; } }
d:\>java Test Red Green Blue
what is the value of baz?
A. baz has value of ""
B. baz has value of null
C. baz has value of "Red"
D. baz has value of "Blue"
E. baz has value of "Green"
F. the code does not compile
G. the program throw an exception
答案:G
考main方法的(String[] args)部分,没有给args数组分配空间,调用args[1]会造成空指针异常。
2.接口基础知识填空题
_____是声明接口的关键字,可以把它看成一个特殊类。接口中的数据成员默认的修饰符是_____,接口中的成员方法默认的修饰符是_____。
答案:interface、public final static、public abstract
public interface Runner { public static final int ID = 1; public abstract void start(); public abstract void run(); public abstract void stop(); }
//前面的修饰是默认的可以省略
3.补全代码(匿名内部类)
interface Inter { void show(int a, int b); void func();. } class Demo { public static void main(String[] args) { // 补足代码;调用两个函数,要求用匿名内部类 Inter in = new Inter() { public void show(int a, int b) { } public void func() { } }; in.show(4, 5); in.func(); } }
匿名内部类不能定义任何静态成员、方法和类,只能创建匿名内部类的一 个实例。一个匿名内部类一定是在new的后面,用其隐含实现一个接口或 实现一个类。
格式: new 父类构造器(实参列表)|实现接口(){ //匿名内部类的类体部分 }
匿名内部类的特点 :
- 匿名内部类必须继承父类或实现接口、
- 匿名内部类只能有一个对象
- 匿名内部类对象只能使用多态形式引用
4.判断程序的输出结果(异常处理)
public class ReturnExceptionDemo { static void methodA() { try { System.out.println("进入方法A"); throw new RuntimeException("制造异常"); }finally { System.out.println("用A方法的finally"); } } static void methodB() { try { System.out.println("进入方法B"); return; } finally { System.out.println("调用B方法的finally"); } } public static void main(String[] args) { try { methodA(); } catch (Exception e) { System.out.println(e.getMessage()); } methodB(); } }
进入方法A
用A方法的finally
制造异常
进入方法B
正确的输出结果:
进入方法A
用A方法的finally
制造异常
进入方法B
调用B方法的finally
需要注意的是方法B中的finally语句中的代码也会执行