1. Given: 1. public class returnIt { 2. returnType methodA(byte x, double y){ 3. return (short) x/y * 2; 4. } 5. } What is the valid returnType for methodA in line 2? A. int B. byte C. long D. short E. float F. double Answer F 注释:short 类型的x,除以double 类型的y,再乘int 的2,所以结果是double 类型的。注意第三行的强制转换,只是转换了 x。 2. 1) class Super{ 2) public float getNum(){return 3.0f;} 3) } 4) 5) public class Sub extends Super{ 6) 7) } which method, placed at line 6, will cause a compiler error? A. public float getNum(){return 4.0f;} B. public void getNum(){} C. public void getNum(double d){} D. public double getNum(float d){return 4.0d;} Answer :B 注意这道题主要考的是方法的overload 和 override。对于 overload,只有参数列表不同,才做为标准,而返回值和访问控制关键字不能做为标准,所以B 错在方法名相同,但只有返回值不同,这是错的。C 和 D 是正确的overload。对于 override,则访问控制关键字只能更加公有化,异常只能是超类方法抛出的异常的子类,也可以不抛出。返回类型,参数列表必须精确匹配。所以A 是正确的override。 3. 1)public class Foo{ 2) public static void main(String args[]){ 3) try{return;} 4) finally{ System.out.println("Finally");} 5) } 6) } what is the result? A. The program runs and prints nothing. B. The program runs and prints “Finally”. C. The code compiles, but an exception is thrown at runtime. D. The code will not compile because the catch block is missing. Answer:b try......catch......finally 的问题。程序中如果遇到 return,则 finally 块先被执行,然后再执行retrun,而 finally 块后面的语句将不被执行。如果遇到 System.exit(1),则 finally 块及其后的语句都不执行,整个程序退出,还执行什么呀。 4. 1) public class Test{ 2) public static String output=""; 3) public static void foo(int i){ 4) try { 5) if(i==1){ 6) throw new Exception(); 7) } 8...