閱讀屋>筆試> Java基礎筆試選擇題含答案

Java基礎筆試選擇題含答案

Java基礎筆試選擇題含答案

  選擇題

  1. 以下屬於面向物件的特徵的是(C,D)。(兩項)

  A) 過載

  B) 重寫

  C) 封裝

  D) 繼承

  2. 以下程式碼執行輸出是(C)

  public class Person{

  private String name=”Person”;

  int age=0;

  }

  public class Child extends Person{

  public String grade;

  public static void main(String[] args){

  Person p = new Child();

  System.out.println(p.name);

  }

  }

  A) 輸出:Person

  B) 沒有輸出

  C) 編譯出錯

  D) 執行出錯

  3. 在使用super 和this關鍵字時,以下描述正確的是(A)

  A) 在子類構造方法中使用super()顯示呼叫父類的構造方法,super()必須寫在子類構造方法的第一行,否則編譯不透過

  B) super()和this()不一定要放在構造方法內第一行

  C) this()和super()可以同時出現在一個建構函式中

  D) this()和super()可以在static環境中使用,包括static方法和static語句塊

  4. 以下對封裝的描述正確的是(D)

  A) 只能對一個類中的方法進行封裝,不能對屬性進行封裝

  B) 如果子類繼承了父類,對於父類中進行封裝的方法,子類仍然可以直接呼叫

  C) 封裝的意義不大,因此在編碼時儘量不要使用

  D) 封裝的主要作用在於對外隱藏內部實現細節,增強程式的安全性

  5. 以下對繼承的描述錯誤的是(A)

  A)Java中的繼承允許一個子類繼承多個父類

  B) 父類更具有通用性,子類更具體

  C)Java中的繼承存在著傳遞性

  D) 當例項化子類時會遞迴呼叫父類中的構造方法

  6. 以下程式的執行結果是(D)

  class Person{

  public Person(){

  System.out.println(“this is a Person”);

  }

  }

  public class Teacher extends Person{

  private String name=”tom”;

  public Teacher(){

  System.out.println(“this is a teacher”);

  super();

  }

  public static void main(String[] args){

  Teacher teacher = new Teacher();

  System.out.println(this.name);

  }

  }

  A) this is a Person

  this is a teacher

  tom

  B) this is a teacher

  this is a Person

  tom

  C) 執行出錯

  D) 編譯有兩處錯誤

  7. 以下說法錯誤的是()

  A) super.方法()可以呼叫父類的所有非私有方法

  B) super()可以呼叫父類的所有非私有建構函式

  C) super.屬性可以呼叫父類的所有非私有屬性

  D) this和super關鍵字可以出現在同一個建構函式中

  8. 以下關於final關鍵字說法錯誤的是(A,C)(兩項)

  A) final是java中的修飾符,可以修飾類、介面、抽象類、方法和屬性

  B) final修飾的類肯定不能被繼承

  C) final修飾的方法不能被過載

  D) final修飾的變數不允許被再次賦值

  9. 訪問修飾符作用範圍由大到小是(D)

  A) private-default-protected-public

  B) public-default-protected-private

  C) private-protected-default-public

  D) public-protected-default-private

  10. 以下(D)不是Object類的方法

  A) clone()

  B) finalize()

  C) toString()

  D) hasNext()

  11. 多型的表現形式有(A)

  A) 重寫

  B) 抽象

  C) 繼承

  D) 封裝

  12. 以下對過載描述錯誤的是(B)

  A) 方法過載只能發生在一個類的內部

  B) 構造方法不能過載

  C) 過載要求方法名相同,引數列表不同

  D) 方法的返回值型別不是區分方法過載的條件

  13. 以下(D)新增到ComputerBook中不會出錯

  class Book{

  protected int getPrice(){

  return 30;

  }

  }

  public class ComputerBook extends Book{

  }

  A) protected float getPrice(){}

  B) protected int getPrice(int page){}

  C) int getPrice(){}

  D) public int getPrice(){return 10;}

  14. 以下對抽象類的描述正確的是(C)

  A) 抽象類沒有構造方法

  B) 抽象類必須提供抽象方法

  C) 有抽象方法的類一定是抽象類

  D) 抽象類可以透過new關鍵字直接例項化

  15. 以下對介面描述錯誤的有(D)

  A) 介面沒有提供構造方法

  B) 介面中的方法預設使用public、abstract修飾

  C) 介面中的屬性預設使用public、static、final修飾

  D) 介面不允許多繼承

  16. 以下程式碼,描述正確的有(A)

  interface IDemo{

  public static final String name;1

  void print();2

  public void getInfo();3

  }

  abstract class Person implements IDemo{4

  public void print(){

  }

  }

  A) 第1行錯誤,沒有給變數賦值

  B) 第2行錯誤,方法沒有修飾符

  C) 第4行錯誤,沒有實現介面的全部方法

  D) 第3行錯誤,沒有方法的實現

  17. 介面和抽象類描述正確的有(B,C)(兩項)

  A) 抽象類沒有建構函式

  B) 介面沒有建構函式

  C) 抽象類不允許多繼承

  D) 介面中的方法可以有方法體

  18. 以下描述錯誤的有(C)

  A) abstract 可以修飾類、介面、方法

  B) abstract修飾的類主要用於被繼承

  C) abstract 可以修飾變數

  D) abstract修飾的類,其子類也可以是abstract修飾的.

  19. 以下描述正確的有(B)

  A) 方法的重寫應用在一個類的內部

  B) 方法的過載與返回值型別無關

  C) 構造方法不能過載

  D) 構造方法可以重寫

  20. 以下程式執行結果是(A)

  public class Test extends Father{

  private String name=”test”;

  public static void main(String[] args){

  Test test = new Test();

  System.out.println(test.getName());

  }

  }

  class Father{

  private String name=”father”;

  public String getName() {

  return name;

  }

  }

  A) father

  B) test

  C) 編譯出錯

  D) 執行出錯,無輸出

  21. 以下對異常的描述不正確的有(C)

  A) 異常分為Error和Exception

  B) Throwable是所有異常類的父類

  C) Exception是所有異常類父類

  D) Exception包括RuntimeException和RuntimeException之外的異常

  22. 在try-catch-finally語句塊中,以下可以單獨與finally一起使用的是(B)

  A) catch

  B) try

  C) throws

  D) throw

  23. 下面程式碼執行結果是(B)

  public class Demo{

  public int add(int a,int b){

  try{

  return a+b;

  }catch(Exception e){

  System.out.println(“catch 語句塊”);

  }finally{

  System.out.println(“finally 語句塊”);

  }

  return 0;

  }

  public static void main(String[] args){

  Demo demo = new Demo();

  System.out.println(“和是:”+demo.add(9,34));

  }

  }

  A) 編譯異常

  B) finally語句塊 和是:43

  C) 和是:43 finally語句塊

  D) catch語句塊 和是:43

  24. 以下描述不正確的有(D)

  A) try塊不可以省略

  B) 可以使用多重catch塊

  C) finally塊可以省略

  D) catch塊和finally塊可以同時省略

  25. 以下對自定義異常描述正確的是(C)

  A) 自定義異常必須繼承Exception

  B) 自定義異常可以繼承自Error

  C) 自定義異常可以更加明確定位異常出錯的位置和給出詳細出錯資訊

  D) 程式中已經提供了豐富的異常類,使用自定義異常沒有意義

  26. 以下程式執行結果是(D)

  public class Test {

  public int div(int a, int b) {

  try {

  return a / b;

  }catch(Exception e){

  System.out.println(“Exception”);

  }catch(NullPointerException e){

  System.out.println(“ArithmeticException”);

  }

  catch (ArithmeticException e) {

  System.out.println(“ArithmeticException”);

  } finally {

  System.out.println(“finally”);

  }

  return 0;

  }

  public static void main(String[] args) {

  Test demo = new Test();

  System.out.println(“商是:” + demo.div(9, 0));

  }

  }

  A) Exception finally 商是:0

  B) ArithmeticException finally 商是:0

  C) finally商是:0

  D) 編譯報錯

  27. 以下對TCP和UDP描述正確的是(D)

  A) TCP不能提供資料的可靠性

  B) UDP能夠保證資料庫的可靠性

  C) TCP資料傳輸效率高於UDP

  D) UDP資料傳輸效率高於TCP

  28. 在Java中,下面對於建構函式的描述正確的是(D)。(選擇一項)

  A) 類必須顯示定義建構函式

  B) 建構函式的返回型別是void

  C) 建構函式和類有相同的名稱,並且不能帶任何引數

  D) 一個類可以定義多個建構函式

  29. 根據下面的程式碼,

  String s = null;

  會丟擲NullPointerException異常的有(A,C)。[兩項]

  C) if( (s==null) | (s.length()==0) )

  D) if( (s==null) || (s.length()==0) )

  30. .在Java中,關於HashMap類的描述,以下廉潔錯誤的是( B )。

  A) HashMap使用鍵/值得形式儲存資料

  B) HashMap 能夠保證其中元素的順序

  C) HashMap允許將null用作鍵

  D) HashMap允許將null用作值

  31. 下列選項中關於java中super關鍵字的說法錯誤的是( B )

  A) super關鍵字是在子類物件內部指代其父類物件的引用

  B) super關鍵字不僅可以指代子類的直接父類,還可以指代父類的父類

  C) 子類可以透過super關鍵字呼叫父類的方法

  D) 子類可以透過super關鍵字呼叫父類的屬性

  32. 在Java中,以下程式碼( A )正確地建立了一個InputStreamReader物件。

  A) InuptStreamReader(new FileInputStream(“1.dat”));

  B) InuptStreamReader(new FileReader(“1.dat”));

  C) InuptStreamReader(new BufferReader(“1.dat”));

  D) InuptStreamReader (“1.dat”);

  33. 在Java中,( D )類提供定位本地檔案系統,對檔案或目錄及其屬性進行基本操作。

  A) FileInputStream

  B) FileReader

  C) FileWriter

  D) File

  34.Java中的集合類包括ArrayList、LinkedList、HashMap等類,下列關於集合類描述錯誤的是(C)(選擇一項)

  A) ArrayList和LinkedList均實現了List介面

  B) ArrayList的訪問速度比LinkedList快

  C) 新增和刪除元素時,ArrayList的表現更佳

  D) HashMap實現Map介面,它允許任何型別的鍵和值物件,並允許將null用作鍵或值

  35. 在Java中開發JDBC應用程式時,使用DriverManager類的getConnection()方法

  建立與資料來源的連線語句為:

  Connection con = DriverManager.getConnection(“jdbc:odbc:news”);

  URL連線中的”n ews”表示的是(C)(選擇一項)

  A) 資料庫中表的名稱

  B) 資料庫伺服器的機器名

  C) 資料來源的名稱

  D) 使用者名稱

  36. 在Java中,JDBCAPI定義了一組用於與資料庫進行通訊的介面和類,它們包括在(B)包中。

  A) java.lang

  B) java.sql

  C) java.util

  D) java.math

  37.Java中,以下( B )介面以鍵_值對的方式儲存物件。

  A) java.util.Collection

  B) java.util.Map

  C) java.util.List

  D) java.util.Set

  38. 以下關於物件序列化描述正確的是( C,D )[兩項]

  A) 使用FileOutputStream可以將物件進行傳輸

  B) 使用PrintWriter可以將物件進行傳輸

  C) 使用ObjectOutputStream類完成物件儲存,使用ObjectInputStream類完成物件讀取

  D) 物件序列化的所屬類需要實現Serializable介面

  39. 在Java中,( A )類可用於建立連結串列資料結構的物件。

  A) LinkedList

  B) ArrayList

  C) Collection

  D) HashMap

  40. 分析下面這段Java程式碼,它的執行結果是( C )。

  Import java.io.*;

  Public class B{

  Public static void main(string [] args){

  int i=12;

  System.out.println(i+=i-=i*=i);}}

  A) 100

  B) 0

  C) -120

  D) 程式無法編譯

  41. 使用JDBC事務的步驟是(C,A,B,D)(多選)

  A) 取消Connection的事務自動提交方式

  B) 發生異常回滾事務

  C) 獲取Connection物件

  D) 操作完畢提交事務

  42. 以下對JDBC事務描述錯誤的是( B )

  A) JDBC事務屬於JAVA事務的一種

  B) JDBC事務屬於容器事務型別

  C) JDBC事務可以保證操作的完整性和一致性

  D) JDBC事務是由Connection發起的,並由Connection控制

  43. 要透過可滾動的結果集更新資料,以下正確的是(A

  A) pst=con.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE)

  B) pst=con.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY)

  C) pst=con.prepareStatement(sql, Resu ltSet.TYPE_SCROLL_SENSITIVE)

  D) pst=con.prepareStatement(sql, ResultSet.CONCUR_UPDATABLE)

  44. 儲存過程pro有兩個引數,第一個為輸入引數,第二個為輸出引數,以下程式碼正確的是(C)

  A) CallableStatement cst=con.prepareCall(“(call pro(?,?))”);

  B) CallableStatement cst=con.prepareCall(“(call pro(?))”);

  C) CallableStatement cst=con.prepareCall(“{call pro(?,?)}”);

  D) CallableStatement cst=con.prepareCall(“{call pro(?,?,?)}”);

  45. 以下描述正確的是(B)

  A) CallableStatement是PreparedStatement的父介面

  B) PreparedStatement是CallableStatement的父介面

  C) CallableStatement是Statement的子介面

  D) PreparedStatement是Statement的父介面

  46. 要刪除book表中書籍(bookName)是”java”的記錄,以下程式碼正確的是(A

  String sql=” from book where bookName=?”;

  PreparedStatement pst=con.preparedStatement(sql);

  ______________________________

  pst.execute();

  A) pst.setString(1,”java”);

  B) pst.setString(0,”java”);

  C) pst.setInt(0,”java”);

  D) 以上選項都不正確

  47. 獲取ResutlSet物件rst的第一行資料,以下正確的是(B)

  A) rst.hashNext();

  B) rst.next();

  C) rst.first();

  D) rst.nextRow();

  48. 以下可以正確獲取結果集的有(AD)(多選)

  A) Statement sta=con.createStatement();

  ResultSet rst=sta.executeQuery(“select * from book”);

  B) Statement sta=con.createStatement(“select * from book”);

  ResultSet rst=sta.executeQuery();

  C) PreparedStatement pst=con.preparedStatement();

  ResultSet rst=pst.executeQuery(“select * from book”);

  D) PreparedStatement pst=con.preparedStatement(“select * from book”);

  ResultSet rst=pst.executeQuery();

  49. 以下負責建立與資料庫連線的是(D)

  A) Statement

  B) PreparedStatement

  C) ResultSet

  D) DriverManager

  50. 使用JDBC連線資料庫的順序是(B,A,D,C,E)(多選)

  A) 載入驅動

  B) 匯入驅動包

  C) 傳送並處理SQL語句

  D) 建立於資料庫的連線

  E 關閉連線

【Java基礎筆試選擇題含答案】相關文章: