日韩欧美另类久久久精品_亚洲大色堂人在线无码_国产三级aⅴ在线播放_在线无码aⅴ精品动漫_国产精品精品国产专区

java代碼查錯(cuò)面試題(附答案)

  JAVA代碼查錯(cuò)

  1.

  abstract class Name {

  private String name;

  public abstract boolean isStupidName(String name) {}

  }

  大俠們,這有何錯(cuò)誤?

  答案: 錯(cuò)。abstract method必須以分號(hào)結(jié)尾,且不帶花括號(hào)。

  2.

  public class Something {

  void doSomething () {

  private String s = "";

  int l = s.length();

  }

  }

  有錯(cuò)嗎?

  答案: 錯(cuò)。局部變量前不能放置任何訪問(wèn)修飾符 (private,public,和protected)。final可以用來(lái)修飾局部變量

  (final如同abstract和strictfp,都是非訪問(wèn)修飾符,strictfp只能修飾class和method而非variable)。

  3.

  abstract class Something {

  private abstract String doSomething ();

  }

  這好像沒什么錯(cuò)吧?

  答案: 錯(cuò)。abstract的methods不能以private修飾。abstract的methods就是讓子類implement(實(shí)現(xiàn))具體細(xì)節(jié)的,怎么可以用private把a(bǔ)bstract

  method封鎖起來(lái)呢? (同理,abstract method前不能加final)。

  4.

  public class Something {

  public int addOne(final int x) {

  return ++x;

  }

  }

  這個(gè)比較明顯。

  答案: 錯(cuò)。int x被修飾成final,意味著x不能在addOne method中被修改。

  5.

  public class Something {

  public static void main(String[] args) {

  Other o = new Other();

  new Something().addOne(o);

  }

  public void addOne(final Other o) {

  o.i++;

  }

  }

  class Other {

  public int i;

  }

  和上面的很相似,都是關(guān)于final的問(wèn)題,這有錯(cuò)嗎?

  答案: 正確。在addOne method中,參數(shù)o被修飾成final。如果在addOne method里我們修改了o的reference

  (比如: o = new Other();),那么如同上例這題也是錯(cuò)的。但這里修改的是o的member vairable

  (成員變量),而o的reference并沒有改變。

  

本文已影響6827
上一篇:java面試題及答案(四) 下一篇:軟件測(cè)試面試題(完整版)一

相關(guān)文章推薦

|||||