久久久久无码精品,四川省少妇一级毛片,老老熟妇xxxxhd,人妻无码少妇一区二区

java考試試題及答案

時(shí)間:2024-10-25 09:20:20 賽賽 JAVA認(rèn)證 我要投稿

java考試試題及答案

  無論是在學(xué)習(xí)還是在工作中,只要有考核要求,就會(huì)有試題,試題有助于被考核者了解自己的真實(shí)水平。一份好的試題都是什么樣子的呢?以下是小編精心整理的java考試試題及答案,歡迎大家分享。

java考試試題及答案

  java考試試題及答案 1

  簡答應(yīng)用題

  1.下面程序運(yùn)行后,可以使用上下左右鍵移動(dòng)組件。 補(bǔ)充下畫線部分的代碼。

  import java.awt.*;

  import java.awt.event.*;

  public class E6 extends Frame implements keyListener

  {

  TextField b1;

  int x,y;

  E6()

  {

  setLayout (new FlowLayout());

  b1 = new TextField("走");

  __[1]__

  b.addkeyListener(this);

  setSize (200,120);

  addWindowListener(new WindowListener()

  {

  public void windowClosing(WindowEvent e)

  {

  System.exit(0);

  }

  });

  }

  public void keyPressed(KeyEvent e)

  {

  x=b1.getBouds().x;

  y=b1.getBouds().y;

  if(e.getKeyCode()==__[2]__)

  {

  y=y-3;

  if(y<=1)y=50;

  b1.setLocation(x,y);

  }

  if(e.getkeyCode()==keyEven.VK_DOWN)

  {

  y=y+3;

  if(y>=100)y=50;

  b1.setLocation(x,y);

  }

  if(e.getkeyCode()==keyEvent.VK_LEFT)

  {

  x=x-3;

  if(x<=1)x=50;

  __[3]__;

  }

  if(e.getkeyCode()==keyEvent.VK_RIGHT)

  {

  x=x+3;

  if(x>=100)x=50;

  b1.setLocation(x,y);

  }

  }

  public void keyTyped(KeyEvent e)

  {}

  public void keyReleased(KeyEvent e)

  {}

  public static void main (String args[])

  {

  E6 a = new E6();

  __[4]__;

  }

  }

  2.下面程序是從命令窗口界面輸入圓半徑,然后計(jì)算球圓面積與周長。把劃線部分填上語句,將程序補(bǔ)充完整。

  import java.io.*;

  public class Qiumianji

  {

  public static void main (String args[ ])

  {

  int a = 0;

  double b,c;

  Sting s;

  try{

  BufferedReader br =new BufferedReader (new InputStreamReader (___【1】__));

  s = br.readLine();

  a = __【2】__;

  }

  catch(IOExcepion e)

  {}

  b = 3.14*a*a;

  c = 2*3.14*a;

  System.out.println(”該圓面積為”+b+””+”周長為”+c);

  }

  }

  java考試試題及答案 2

  1. 下面哪些是Thread類的方法()

  A start() B run() C exit() D getPriority()

  答案:ABD

  解析:看Java API docs吧:http://docs.oracle.com/javase/7/docs/api/,exit()是System類的方法,如System.exit(0)。

  2. 下面關(guān)于java.lang.Exception類的說法正確的是()

  A 繼承自Throwable B Serialable CD 不記得,反正不正確

  答案:A

  解析:Java異常的基類為java.lang.Throwable,java.lang.Error和java.lang.Exception繼承 Throwable,RuntimeException和其它的Exception等繼承Exception,具體的RuntimeException繼承RuntimeException。

  擴(kuò)展:錯(cuò)誤和異常的區(qū)別(Error vs Exception)

  1) java.lang.Error: Throwable的子類,用于標(biāo)記嚴(yán)重錯(cuò)誤。合理的應(yīng)用程序不應(yīng)該去try/catch這種錯(cuò)誤。絕大多數(shù)的錯(cuò)誤都是非正常的,就根本不該出現(xiàn)的。

  java.lang.Exception: Throwable的子類,用于指示一種合理的程序想去catch的條件。即它僅僅是一種程序運(yùn)行條件,而非嚴(yán)重錯(cuò)誤,并且鼓勵(lì)用戶程序去catch它。

  2) Error和RuntimeException 及其子類都是未檢查的異常(unchecked exceptions),而所有其他的Exception類都是檢查了的異常(checked exceptions).

  checked exceptions: 通常是從一個(gè)可以恢復(fù)的程序中拋出來的,并且最好能夠從這種異常中使用程序恢復(fù)。比如FileNotFoundException, ParseException等。檢查了的異常發(fā)生在編譯階段,必須要使用try…catch(或者throws)否則編譯不通過。

  unchecked exceptions: 通常是如果一切正常的話本不該發(fā)生的異常,但是的確發(fā)生了。發(fā)生在運(yùn)行期,具有不確定性,主要是由于程序的邏輯問題所引起的。比如ArrayIndexOutOfBoundException, ClassCastException等。從語言本身的角度講,程序不該去catch這類異常,雖然能夠從諸如RuntimeException這樣的異常中catch并恢復(fù),但是并不鼓勵(lì)終端程序員這么做,因?yàn)橥耆珱]要必要。因?yàn)檫@類錯(cuò)誤本身就是bug,應(yīng)該被修復(fù),出現(xiàn)此類錯(cuò)誤時(shí)程序就應(yīng)該立即停止執(zhí)行。 因此,面對Errors和unchecked exceptions應(yīng)該讓程序自動(dòng)終止執(zhí)行,程序員不該做諸如try/catch這樣的事情,而是應(yīng)該查明原因,修改代碼邏輯。

  RuntimeException:RuntimeException體系包括錯(cuò)誤的類型轉(zhuǎn)換、數(shù)組越界訪問和試圖訪問空指針等等。

  處理RuntimeException的原則是:如果出現(xiàn) RuntimeException,那么一定是程序員的錯(cuò)誤。例如,可以通過檢查數(shù)組下標(biāo)和數(shù)組邊界來避免數(shù)組越界訪問異常。其他(IOException等等)checked異常一般是外部錯(cuò)誤,例如試圖從文件尾后讀取數(shù)據(jù)等,這并不是程序本身的錯(cuò)誤,而是在應(yīng)用環(huán)境中出現(xiàn)的外部錯(cuò)誤。

  3. 下面程序的運(yùn)行結(jié)果是()

  String str1 = "hello";

  String str2 = "he" + new String("llo");

  System.err.println(str1 == str2);

  答案:false

  解析:因?yàn)閟tr2中的llo是新申請的內(nèi)存塊,而==判斷的是對象的地址而非值,所以不一樣。如果是String str2 = str1,那么就是true了。

  4. 下列說法正確的有()

  A. class中的constructor不可省略

  B. constructor必須與class同名,但方法不能與class同名

  C. constructor在一個(gè)對象被new時(shí)執(zhí)行。

  D.一個(gè)class只能定義一個(gè)constructor

  答案:C

  解析:這里可能會(huì)有誤區(qū),其實(shí)普通的類方法是可以和類名同名的,和構(gòu)造方法唯一的區(qū)分就是,構(gòu)造方法沒有返回值。

  5. 具體選項(xiàng)不記得,但用到的知識(shí)如下:

  String []a = new String[10];

  則:a[0]~a[9] = null

  a.length = 10

  如果是int []a = new int[10];

  則:a[0]~a[9] = 0

  a.length = 10

  6. 下面程序的運(yùn)行結(jié)果:()

  public static void main(String args[]) {

  Thread t = new Thread() {

  public void run() {

  pong();

  }

  };

  t.run();

  System.out.print("ping");

  }

  static void pong() {

  System.out.print("pong");

  }

  #FormatImgID_0#

  A pingpong B pongping C pingpong和pongping都有可能 D 都不輸出

  答案:B

  解析:這里考的是Thread類中start()和run()方法的區(qū)別了。start()用來啟動(dòng)一個(gè)線程,當(dāng)調(diào)用start方法后,系統(tǒng)才會(huì)開啟一個(gè)新的線程,進(jìn)而調(diào)用run()方法來執(zhí)行任務(wù),而單獨(dú)的調(diào)用run()就跟調(diào)用普通方法是一樣的,已經(jīng)失去線程的特性了。因此在啟動(dòng)一個(gè)線程的時(shí)候一定要使用start()而不是run()。

  7. 下列屬于關(guān)系型數(shù)據(jù)庫的是()

  A. Oracle B MySql C IMS D MongoDB

  答案:AB

  解答:IMS(Information Management System )數(shù)據(jù)庫是IBM公司開發(fā)的兩種數(shù)據(jù)庫類型之一;

  一種是關(guān)系數(shù)據(jù)庫,典型代表產(chǎn)品:DB2;

  另一種則是層次數(shù)據(jù)庫,代表產(chǎn)品:IMS層次數(shù)據(jù)庫。

  非關(guān)系型數(shù)據(jù)庫有MongoDB、memcachedb、Redis等。

  8. GC線程是否為守護(hù)線程?()

  答案:是

  解析:線程分為守護(hù)線程和非守護(hù)線程(即用戶線程)。

  只要當(dāng)前JVM實(shí)例中尚存在任何一個(gè)非守護(hù)線程沒有結(jié)束,守護(hù)線程就全部工作;只有當(dāng)最后一個(gè)非守護(hù)線程結(jié)束時(shí),守護(hù)線程隨著JVM一同結(jié)束工作。

  守護(hù)線程最典型的應(yīng)用就是 GC (垃圾回收器)

  9. volatile關(guān)鍵字是否能保證線程安全?()

  答案:不能

  解析:volatile關(guān)鍵字用在多線程同步中,可保證讀取的可見性,JVM只是保證從主內(nèi)存加載到線程工作內(nèi)存的值是最新的讀取值,而非cache中。但多個(gè)線程對

  volatile的寫操作,無法保證線程安全。例如假如線程1,線程2 在進(jìn)行read,load 操作中,發(fā)現(xiàn)主內(nèi)存中count的值都是5,那么都會(huì)加載這個(gè)最新的值,在線程1堆count進(jìn)行修改之后,會(huì)write到主內(nèi)存中,主內(nèi)存中的count變量就會(huì)變?yōu)?;線程2由于已經(jīng)進(jìn)行read,load操作,在進(jìn)行運(yùn)算之后,也會(huì)更新主內(nèi)存count的變量值為6;導(dǎo)致兩個(gè)線程及時(shí)用volatile關(guān)鍵字修改之后,還是會(huì)存在并發(fā)的情況。

  10. 下列說法正確的是()

  A LinkedList繼承自List

  B AbstractSet繼承自Set

  C HashSet繼承自AbstractSet

  D WeakMap繼承自HashMap

  答案:AC

  解析:下面是一張下載的Java中的集合類型的繼承關(guān)系圖,一目了然。

  #FormatImgID_1#

  11. 存在使i + 1 < i的數(shù)嗎()

  答案:存在

  解析:如果i為int型,那么當(dāng)i為int能表示的最大整數(shù)時(shí),i+1就溢出變成負(fù)數(shù)了,此時(shí)不就

  擴(kuò)展:存在使i > j || i <= j不成立的數(shù)嗎()

  答案:存在

  解析:比如Double.NaN或Float.NaN,感謝@BuilderQiu網(wǎng)友指出。

  12. 0.6332的數(shù)據(jù)類型是()

  A float B double C Float D Double

  答案:B

  解析:默認(rèn)為double型,如果為float型需要加上f顯示說明,即0.6332f

  13. 下面哪個(gè)流類屬于面向字符的輸入流( )

  A BufferedWriter B FileInputStream C ObjectInputStream D InputStreamReader

  答案:D

  解析:Java的IO操作中有面向字節(jié)(Byte)和面向字符(Character)兩種方式。

  面向字節(jié)的操作為以8位為單位對二進(jìn)制的數(shù)據(jù)進(jìn)行操作,對數(shù)據(jù)不進(jìn)行轉(zhuǎn)換,這些類都是InputStream和OutputStream的子類。

  面向字符的操作為以字符為單位對數(shù)據(jù)進(jìn)行操作,在讀的時(shí)候?qū)⒍M(jìn)制數(shù)據(jù)轉(zhuǎn)為字符,在寫的時(shí)候?qū)⒆址D(zhuǎn)為二進(jìn)制數(shù)據(jù),這些類都是Reader和Writer的子類。

  總結(jié):以InputStream(輸入)/OutputStream(輸出)為后綴的是字節(jié)流;

  以Reader(輸入)/Writer(輸出)為后綴的是字符流。

  14. Java接口的修飾符可以為()

  A private B protected C final D abstract

  答案:CD

  解析:接口很重要,為了說明情況,這里稍微啰嗦點(diǎn):

  (1)接口用于描述系統(tǒng)對外提供的所有服務(wù),因此接口中的成員常量和方法都必須是公開(public)類型的,確保外部使用者能訪問它們;

  (2)接口僅僅描述系統(tǒng)能做什么,但不指明如何去做,所以接口中的方法都是抽象(abstract)方法;

  (3)接口不涉及和任何具體實(shí)例相關(guān)的細(xì)節(jié),因此接口沒有構(gòu)造方法,不能被實(shí)例化,沒有實(shí)例變量,只有靜態(tài)(static)變量;

  (4)接口的中的變量是所有實(shí)現(xiàn)類共有的,既然共有,肯定是不變的東西,因?yàn)樽兓臇|西也不能夠算共有。所以變量是不可變(final)類型,也就是常量了。

  (5) 接口中不可以定義變量?如果接口可以定義變量,但是接口中的方法又都是抽象的,在接口中無法通過行為來修改屬性。有的人會(huì)說了,沒有關(guān)系,可以通過 實(shí)現(xiàn)接口的.對象的行為來修改接口中的屬性。這當(dāng)然沒有問題,但是考慮這樣的情況。如果接口 A 中有一個(gè)public 訪問權(quán)限的靜態(tài)變量 a。按照 Java 的語義,我們可以不通過實(shí)現(xiàn)接口的對象來訪問變量 a,通過 A.a = xxx; 就可以改變接口中的變量 a 的值了。正如抽象類中是可以這樣做的,那么實(shí)現(xiàn)接口 A 的所有對象也都會(huì)自動(dòng)擁有這一改變后的 a 的值了,也就是說一個(gè)地方改變了 a,所有這些對象中 a 的值也都跟著變了。這和抽象類有什么區(qū)別呢,怎么體現(xiàn)接口更高的抽象級別呢,怎么體現(xiàn)接口提供的統(tǒng)一的協(xié)議呢,那還要接口這種抽象來做什么呢?所以接口中 不能出現(xiàn)變量,如果有變量,就和接口提供的統(tǒng)一的抽象這種思想是抵觸的。所以接口中的屬性必然是常量,只能讀不能改,這樣才能為實(shí)現(xiàn)接口的對象提供一個(gè)統(tǒng) 一的屬性。

  通俗的講,你認(rèn)為是要變化的東西,就放在你自己的實(shí)現(xiàn)中,不能放在接口中去,接口只是對一類事物的屬性和行為更高層次的抽象。對修改關(guān)閉,對擴(kuò)展(不同的實(shí)現(xiàn) implements)開放,接口是對開閉原則的一種體現(xiàn)。

  所以:

  接口的方法默認(rèn)是public abstract;

  接口中不可以定義變量即只能定義常量(加上final修飾就會(huì)變成常量)。所以接口的屬性默認(rèn)是public static final 常量,且必須賦初值。

  注意:final和abstract不能同時(shí)出現(xiàn)。

  15. 不通過構(gòu)造函數(shù)也能創(chuàng)建對象嗎()

  A 是 B 否

  答案:A

  解析:Java創(chuàng)建對象的幾種方式(重要):

  (1) 用new語句創(chuàng)建對象,這是最常見的創(chuàng)建對象的方法。

  (2) 運(yùn)用反射手段,調(diào)用java.lang.Class或者java.lang.reflect.Constructor類的newInstance()實(shí)例方法。

  (3) 調(diào)用對象的clone()方法。

  (4) 運(yùn)用反序列化手段,調(diào)用java.io.ObjectInputStream對象的 readObject()方法。

  (1)和(2)都會(huì)明確的顯式的調(diào)用構(gòu)造函數(shù) ;(3)是在內(nèi)存上對已有對象的影印,所以不會(huì)調(diào)用構(gòu)造函數(shù) ;(4)是從文件中還原類的對象,也不會(huì)調(diào)用構(gòu)造函數(shù)。

  坐完筆試后,很多人都希望能提前預(yù)知面試題目,最好的方法就是整理一些經(jīng)典的面試題,java面試的專業(yè)性比較強(qiáng),如果你的基礎(chǔ)不夠扎實(shí),那么最好找些經(jīng)典的java面試題及答案分析,提前參透一下吧!

  java面試題1、說說HashMap和Hashtable的差別

  答案分析:

  都屬于Map接口的類,實(shí)現(xiàn)了將惟一鍵映射到特定的值上。

  HashMap類沒有分類或排序。他允許一個(gè)null鍵和多個(gè)null值。

  Hashtable類似于HashMap,不過不允許null鍵和null值。他也比HashMap慢,因?yàn)樗峭降摹?/p>

  java面試題2、Anonymous Inner Class (匿名內(nèi)部類)是否能extends(繼承)其他類,是否implements(實(shí)現(xiàn))interface(接口)?

  答案分析:

  匿名的內(nèi)部類是沒有名字的內(nèi)部類。不能extends(繼承)其他類,但一個(gè)內(nèi)部類能作為一個(gè)接口,由另一個(gè)內(nèi)部類實(shí)現(xiàn)。

  java面試題3、STRING與STRINGBUFFER的區(qū)別是什么?

  答案分析:

  STRING的長度是不可變的,STRINGBUFFER的長度是可變的。如果你對字符串中的內(nèi)容經(jīng)常進(jìn)行操作,特別是內(nèi)容要修改時(shí),那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法。

  java面試題4、什么時(shí)候用assert

  答案分析:

  斷言是個(gè)包含布爾表達(dá)式的語句,在執(zhí)行這個(gè)語句時(shí)假定該表達(dá)式為true。如果表達(dá)式計(jì)算為false,那么系統(tǒng)會(huì)報(bào)告一個(gè)AssertionError,他用于調(diào)試目的。

  java面試題5、Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)和否呢?是用==還是equals()?他們有何差別?

  答案分析:

  Set里的元素是不能重復(fù)的,那么用iterator()方法來區(qū)分重復(fù)和否。equals()是判讀兩個(gè)Set是否相等。

  equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,為的是當(dāng)兩個(gè)分離的對象的內(nèi)容和類型相配的話,返回真值。

  java面試題6、List, Set, Map是否繼承自Collection接口?

  答案分析:

  List,Set是

  Map不是

  java考試試題及答案 3

  選擇題

  1). 下面( )是合法的標(biāo)識(shí)符。

  A.$persons

  B.2Users

  C.*poi nt

  D.this

  正確答案:A

  答案解析:本題考查Java 標(biāo)識(shí)符的命名,屬于考試重點(diǎn)內(nèi)容,應(yīng)該掌握。Java 中標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符以字母、下畫線或美元符作為首字符的字符串序列;標(biāo)識(shí)符是區(qū)分大小寫的;標(biāo)識(shí)符的字符數(shù)沒有限制。由此可見,Java 中標(biāo)識(shí)符不能以數(shù)字開頭,所以選項(xiàng)B錯(cuò)誤;不能以“*”開頭,選項(xiàng)C錯(cuò)誤;this 是專用標(biāo)識(shí)符,具有專門的意義和用途,選項(xiàng)D 錯(cuò)誤,只有選項(xiàng)A 正確。

  2). 設(shè)有一個(gè)已按各元素的值排好序的順序表(長度大于2),現(xiàn)分別用順序查找法和二分查找法查找與給定值k相等的元素,比較的次數(shù)分別是s和b,在查找不成功情況下s和b的關(guān)系是( )。

  A.s =b

  B.s>b

  C.s

  D.s>=b

  正確答案:B

  答案解析:順序查找的'基本思想是:從表的一端開始,順序掃描線性表,依次將掃描到結(jié)點(diǎn)的關(guān)鍵字和給定值k進(jìn)行比較,若當(dāng)前掃描到結(jié)點(diǎn)的關(guān)鍵字與k相等,則查找成功;若掃描結(jié)束后,仍未找到關(guān)鍵字等于k的結(jié)點(diǎn),則查找失敗。二分查找法是一種效率較高的查找方法,要求線性表是有序表;舅枷胧牵菏紫葘⒋榈膋值和有序表R[O]~R[n -1]的中間位置mid上的結(jié)點(diǎn)的關(guān)鍵字進(jìn)行比較,若相等,則查找完成;否則,若R[mi d]. key>k,則說明待查找的結(jié)點(diǎn)只可能在左子表R[O]~R[mi d -1]中,我們只需在左子表中繼續(xù)進(jìn)行折半查找,若R[mi d]. key

  3). 定義一個(gè)表示10個(gè)值為null的字符串?dāng)?shù)組,下面選項(xiàng)正確的是( )。

  A.String []a;

  B.String a[];

  C.char a[10][];

  D.String a[]=new String[10];

  正確答案:D

  答案解析:本題考查字符串?dāng)?shù)組變量的聲明。選項(xiàng)A和選項(xiàng)B的效果是一樣的,都是用來定義一個(gè)字符串?dāng)?shù)組,但沒有指明數(shù)組個(gè)數(shù),不滿足題目要求;選項(xiàng)C是一個(gè)二維的字符數(shù)組,在C語言中,一個(gè)二維的字符數(shù)組就可以表示一個(gè)一維的字符串?dāng)?shù)組,而在Java中,字符char是基本類型,字符串String則是以對象的形式來表示的;選項(xiàng)D正確,它定義了一個(gè)含有10個(gè)元素的字符串?dāng)?shù)組,如果沒有給字符串?dāng)?shù)組賦值,則默認(rèn)為null。

  4). Thread類中能運(yùn)行線程的方法是( )。

  A.resume()

  B.start()

  C.run()

  D.init()

  正確答案:C

  答案解析:resume()是Thread類提供的用于線程控制的方法;start()是Thread類中的方法,新建的線程不會(huì)自動(dòng)運(yùn)行,必須調(diào)用線程的start()方法才能運(yùn)行該線程;run()是Thread類中的方法,在該方法中定義了線程的具體行為,線程開始執(zhí)行時(shí),就是從它的run()方法開始執(zhí)行的,就像Java應(yīng)用程序從main()開始、Applet從init()開始一樣;init()不是Thread類中的方法。

  5). 在面向?qū)ο蟮姆椒ㄖ,一個(gè)對象請求另一個(gè)對象為其服務(wù)的方式是通過發(fā)送

  A.調(diào)用語句

  B.命令

  C.口令

  D.消息

  正確答案:D

  6). 下列的( )原始類型在使用流時(shí)可以互換。

  A.byte和boolean

  B.char和int

  C.byte和char

  D.String和char

  正確答案:B

  答案解析:本題考查Java語言中字節(jié)類型的概念。在Java語言中,byte是字節(jié)類型,用1字節(jié)表示.boolean是布爾類型,用true和false表示,它們的表示方法并不一樣,也不提供它們之間的轉(zhuǎn)換,選項(xiàng)A錯(cuò)誤。Java內(nèi)部用整數(shù)來表示char,通?梢栽诜椒ㄕ{(diào)用和其他語句中互換使用char和int,選項(xiàng)B正確。char用2字節(jié)表示,byte字節(jié)類型用l字節(jié)表示,Java內(nèi)部也不允許互換使用它們,選項(xiàng)C錯(cuò)誤。String在Java語言中是一個(gè)類,它提供對字符串的一系列操作,而char是Java語言中的一個(gè)基本類型,它不是一個(gè)類,兩者有本質(zhì)的區(qū)別,故而它們是不能互換使用的,選項(xiàng)D錯(cuò)誤。需要注意的是,在Java語言中提供的類都是以大寫字母開頭,基本類型都用小寫字母表示。

  7). 下列說法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容是( )。

  A.數(shù)據(jù)結(jié)構(gòu)

  B.數(shù)據(jù)操作

  C.數(shù)據(jù)查詢

  D.數(shù)據(jù)約束

  正確答案:C

  答案解析:數(shù)據(jù)模型所描述的內(nèi)容包括三個(gè)部分

【java考試試題及答案】相關(guān)文章:

java認(rèn)證考試試題及答案03-04

2017年JAVA考試試題及答案02-26

java基礎(chǔ)筆試題及答案03-03

2016最新java考試題庫及答案03-09

java考試習(xí)題及答案03-26

java面試題2017及答案03-06

2017年Java筆試題及答案03-09

2016年Java筆試題及答案03-12

Java工程師面試?荚囶}及答案03-12