IBM Java笔试题和面试题答案
1. 如下代码
class A {
A() { }
}
class B extends A {
}
哪两个说明是正确的?
A. B类的构造器应该是 public.
B. B类的构造器应该是没有参数
C. B类的构造器应该调用this().
D. B类的构造器应该调用super().
答案:BD
解析:默认构造器的修饰符只跟当前类的修饰符有关。 比如B如果是public的,则默认构造方法是public的。 如果B是默认的访问权限,则构造方法相同。 当B是内部类是,前面也可以有protected,private等,默认添加的构造方法仍然和类的修饰符一致。
2. 如下代码
public class Test {
public int aMethod() {
static int i = 0;
i ;
return i;
}
public static void main (String args[]) {
Test test = new Test();
test.aMethod();
int j = test.aMethod();
System.out.println(j);
}
}
输出结果是什么?
A. 0
B. 1
C. 2
D. 编译失败
答案:D
解析:static在Java语言中的使用有四种:(成员变量、成员方法、代码块、内部类)
3. 如下代码
int i =1,j =10;
do {
if(i > --j) {
continue;
}
} while (i <5);
System.out.println("i = " i "and j = " j);
输出结果是什么?
A. i = 6 and j = 5
B. i = 5 and j = 5
C. i = 6 and j = 5
D. i = 5 and j = 6
E. i = 6 and j = 6
答案:D
4. 如下代码:
boolean bool = true;
if(bool = false) {
System.out.println("a");
} else if (bool) {
System.out.println("c");
} else if (!bool) {
System.out.println("c");
} else {
System.out.println("d");
}
输出结果是什么?
A. a
B. b
C. c
D. d
E. 编译失败
答案:C
5. 如下代码:
public class SwitchTest {
public static void main(String[] args) {
System.out.println("value = " switchIt(4));
}
public static int switchIt(int x) {
int j = 1;
switch (x) {
case 1: j ;
case 2: j ;
case 3: j ;
case 4: j ;
case 5: j ;
default: j ;
}
return j x;
}
}
输出结果是什么?
A. value = 3
B. value = 4
C. value = 5
D. value = 6
E. value = 7
F. value = 8
答案:F
6. 以下数组的定义,哪三条是正确的?
A. public int a []
B. static int [] a
C. public [] int a
D. private int a [3]
E. private int [3] a []
F. public final int [] a
答案:A,B,F
7. 如下代码:
class Super {
public Integer getLenght() { return new Integer(4); }
}
public class Sub extends Super {
public Long GetLenght() { return new Long(5); }
public static void main(String[] args) {
Super sooper = new Super();
Sub sub = new Sub();
System.out.println(sooper.getLenght().toString() ","
sub.getLenght().toString() );
}
}
输出是什么?
A. 4,4
B. 4,5
C. 5,4
D. 5,5
E. 编译失败.
答案:A
8. 在接口中以下哪条定义是正确的? (两个答案)
A. void methoda();
B. public double methoda();
C. public final double methoda();
D. static void methoda(double d1);
E. protected void methoda(double d1);
答案:A,B
9. 如下代码:
public void test(int x) {
int odd = x%2;
if (odd) {
System.out.println("odd);
} else {
System.out.println("even");
}
}
哪个描述正确?
A. 编译失败.
B. "odd" 永远被输出.
C. "even" 永远被输出
D. "odd" 输出x的值,
E. "even" 输出x的值
答案:A
10. 如下代码:
public class X {
public X aMethod() { return this;}
}
public class Y extends X {
}
哪两个方法能加到Y类的定义中?
A. public void aMethod() {}
B. private void aMethod() {}
C. public void aMethod(String s) {}
D. private Y aMethod() { return null; }
E. public X aMethod() { return new Y(); }
答案:E,?