一、选择题(不定项选择题,每题2分,共30分)1. 以下程序段执行的结果是:【 】int sum = 0;for(int i = 0; i < 10; ++i){ if(i == 5) break; if(i > 3) continue; sum += i; }System.out.println(i + sum);A.11 B.16C.编译错误 D.抛出运行期异常2. 下列哪些数据类型不能用于switch语句中(多选):【 】A.char B.long C.byte D.double E.short F.float3. 请选择下列代码的正确输出结果:【 】两个类:class A { static int i = 100; void func() { System.out.println(“in A.func(), and i = “ + i); }} class B extends A { static int i = 200; void func() { System.out.println(“in B.func(), and i = “ + i); }}执行代码:A a = new B();a.func();输出结果为:A.in A.func(), and i = 100 B.in A.func(), and i = 200 C.in B.func(), and i = 100 D.in B.func(), and i = 2004. 下列哪些语句关于Java内存回收的说明是正确的:【 】A、程序员必须创建一个线程来释放内存B、内存回收程序负责释放无用内存C、内存回收程序允许程序员直接释放内存D、内存回收程序可以在指定的时间释放内存对象E.手工调用System.gc()方法后,垃圾回收机就会马上启动5. FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个类可能是FilterOutputStream构造函数的参数类型?【 】A、OutputStream B、File C、InputStream D、BufferedOutputStream6. 下列关于异常的断言,哪些是正确的(多选):【 】A.由于Java的异常机制是强制性的,所以,所有可能抛出异常都必须捕捉B.对于方法内部不能处理的可检视异常必须加入方法的异常声明列表中C.如果某个异常没有被方法栈中的任何方法捕捉,则会导致程序的终结D.运行期异常(RuntimeException)是不能被捕捉的E.运行期异常(RuntimeException)是系统定义的,我们不能定义运行期异常类F.在异常处理代码段中,即使try语句块内部用了return语句退出方法,finally语句块还是会执行7. 执行下列代码,输出结果是:【 】public class Test { public static void main(String[] args) { func(100); } public static void func(short v) { System.out.println(“invoke short”); } public static void func(long v) { System.out.println(“invoke long”); } public static void func(Integer v) { System.out.println(“invoke Integer”); } public static void func(int ... v) { System.out.println(“invoke int ...”); } public static void func(Object v) { System.out.println(“invoke Object”); }} 选择结果:A.编译错误B.invoke shortC.invoke longD.invoke IntegerE.invoke int ...F.invoke Object8. 下列关于对象序列化的断言,哪些是正确的(多选):【 】A.对象序列化是Object类提供的一种特性,任何对象都能被序列化B.用transient修饰的属性将不会被序列化C.对象序列化的工作是把对象的方法和属性以字节流的方式传送到相应介质D.由于序列化是以字节流的方式传送保存的,所以我们用OutputStream/InputStream接口进行序列化和反序列化操作E.对象序列化可以跨越不同VM和操作系统平台F.一个类如果包含了基础数据类型的属性(如:int、float)则不能被序列化G.String类的实例是可以被序列的9. 下列关于多线程的断言,哪些是正确的(多选):【 】A.在多线程环境下数据是共享的,代码是不共享的,所以只需同步对数据的访问B.如果主线程(入口线程)执行完成则程序也会结束C.除非高优先级线程被阻塞,否则低优先级线程必须等高优先级线程结束才执行D.如果线程被sleep()或wait()阻塞,可以可以调用interrupt()方法中断阻塞E.除主线程外,所有其他线程的入口方法都是:public void start()F.无论实例方法还是类方法(静态方法),如果方法声明中加入synchronized修饰符表明:调用方法前必须取得该类实例的锁G.wait()、notify()、notifyAll()和sleep()方法继承自Object类10. 下列哪些修饰符不能修饰interface的成员(多选):【 】A.privateB.protectedC.staticD.finalE.abstract11. 下列代码的输出结果是:【 】interface Playable { void play();}interface Bounceable { void play();}interface Rollable extends Playable, Bounceable { Ball ball = new Ball(“basket ball”);}public class Ball implements Rollable { private String name; public Ball(String name) { this.name = name; }public void play() { System.out.println(ball.name); }public static void main(String[] args) { Ball ball = new Ball(“tennis ball”); ball.play(); }}A.编译错误:Ball类需要实现两个play()方法B.编译错误:Rollable接口不能定义成员Ball ball;C.编译错误:Ball类的play()方法中,参数ball.name未定义;D.basket ballE.tennis ball12. 关于Filter,下列说法正确的是 【 】A. 要写一个Filter, 必须实现接口GenericFilter B. Filter的生命周期可以由三个方法init(),doFilter(),destroy()来体现 C. ServletResponseWrapper用来在Filter中截取应答 D. ServletRequestWrapper用来在Filter中截取请求13. 假设在helloapp应用中有一个HelloServlet类,它在web.xml文件中的配置如下:<servlet><servlet-name> HelloServlet </servlet-name><servlet-class>org.javathinker.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name> HelloServlet </servlet-name><url-pattern>/hello</url-pattern></servlet-mapping>那么在浏览器端访问HelloServlet的URL是什么? 【 】A. http://localhost:8080/HelloServlet B. http://localhost:8080/helloapp/HelloServlet C. http://localhost:8080/helloapp/org/javathinker/hello