JAVA笔试题笔记(一)

1.下面有关 JAVA 异常类的描述,说法正确的有?
正确答案 : ABC
A:异常的继承结构:基类为 Throwable,其中Error 和 Exception 继承 Throwable,而RuntimeException 和 IOException 等继承 Exception
B:非 RuntimeException 一般是外部错误,其需要被 try{}catch 语句块所捕获,或者用throws子句声明抛出
C:Error 类体系描述了 Java 运行系统中的内部错误以及资源耗尽的情形,Error 通常不需要捕捉
D:RuntimeException 体系包括错误的类型转换、数组越界访问和试图访问空指针等等,必须被 try{}catch 语句块所捕获

2.执行下列代码的输出结果是?

public class Demo{
 public static void main(String args[]){
   int num = 10;
   System.out.println(test(num));
}
public static int test(int b){
   try
   {
    b += 10;
    return b;
   }
   catch(RuntimeException e)
   {
   }
   catch(Exception e2)
   {
   }
   finally
   {
    b += 10;
    return b;
   }
  }
}

答案是30,如果finally语句块中的return语句被注释则结果是20!

3.下面代码的输出结果是什么?
正确答案 : D

public class Demo {
    public static void main(String[] args) {
        try {
            int i = 100 / 0;
            System.out.print(i);
        } catch (Exception e) {
            System.out.print(1);
            throw new RuntimeException();
        } finally {
            System.out.print(2);
        }
        System.out.print(3);
    }
}

A.3 B.123 C.1 D.12
运行上述代码输出如下,可见catch块抛出异常后会继续执行finally块代码但是不会执行finally块后面的程序。

12Exception in thread "main" java.lang.RuntimeException

4.以下程序执行的结果是( )

class X{
    Y y=new Y();
    public X(){
        System.out.print("X");
    }
}
class Y{
    public Y(){
        System.out.print("Y");
    }
}
public class Z extends X{
    Y y=new Y();
    public Z(){
        System.out.print("Z");
    }
    public static void main(String[] args) {
        new Z();
    }
}
YXYZ

子类继承父类,子类创建对象时应首先对父类进行初始化。

5.子类A继承父类B, A a = new A(); 则父类B构造函数、父类B静态代码块、父类B非静态代码块、子类A构造函数、子类A静态代码块、子类A非静态代码块 执行的先后顺序是?
正确答案 : C
C.父类B静态代码块->子类A静态代码块->父类B非静态代码块->父类B构造函数->子类A非静态代码块->子类A构造函数

6.忽略内部接口的情况,不能用来修饰interface的有?
正确答案 : ACD(只能是缺省,abstract或public修饰)
A.private B.public C.protected D.static
(修饰类名时只允许使用public,abstract或final)

7.下列Java代码中的变量a、b、c分别在内存的__存储区存放。

class A {
    private String a = “aa”;
    public boolean methodB() {
        String b = “bb”;
        final String c = “cc”;
    }
}

正确答案 : C
C.堆区、栈区、栈区
参见:http://blog.csdn.net/clam_clam/article/details/6829960
局部变量存放在栈中,用完就自动释放掉。new出来的东西(对象)存储在堆中(引用变量存储在栈中),当没有对象引用时,由垃圾回收器负责回收(不确定时间)。

8.下列关于java 中的 wait( )方法和 sleep( )方法的区别描述错误的是?
正确答案 : D
A.wait()方法属于Object类,二sleep()属于Thread类
B.调用wait()方法的时候,线程会放弃对象锁
C.调用sleep()方法的过程中,线程不会释放对象锁
D.sleep()方法导致了程序暂停执行指定的时间,让出cpu给其他线程

9.有如下4条语句:
Integer i01 = 59;
int i02 = 59;
Integer i03 = Integer.valueOf(59);
Integer i04 = new Integer(59);
以下输出结果为false的是?
正确答案 : C
A.System.out.println(i01==i02);
B.System.out.println(i01==i03);
C.System.out.println(i03==i04);
D.System.out.println(i02==i04);

你可能感兴趣的:(JAVA笔试题笔记)