IBM Java笔试题和面试题答案

招聘笔试题2018-11-22李天扬老师

  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,?

相关推荐

猜你喜欢

大家正在看

换一换