Java基礎綜合題2

一、選擇題

  1. 在Java類中,使用以下()聲明語句來定義公有的int型常量MAX。(單選)
    A. public int MAX = 100;
    B. final int MAX = 100;
    C. public static int MAX = 100;
    D. public static final int MAX = 100;
    答案:D

  2. 在Java中,下列關於方法重載的說法中錯誤的是( )。(多選)
    A. 方法重載要求方法名稱必須相同
    B. 重載方法的參數列表必須不一致
    C.重載方法的返回類型必須一致
    D.一個方法在所屬的類中只能被重載一次
    答案:CD

  3. 以下代碼段將創建幾個對象()。

String s1="bc";
String s2="bc";   

A. 2
B. 3
C. 0
D. 1

答案:D

解析:
String str1 = "abc ";
String str2 = "abc ";
System.out.println(str1 == str2); //true
1、注意,我們這裏並不用str1.equals(str2);的方式,因爲這將比較兩個字符串的值是否相等。 == 號,根據JDK的說明,只有在兩個引用都指向了同一個對象時才返回真值。而我們在這裏要看的是,str1與str2是否都指向了同一個對象。
2、結果說明,JVM創建了兩個引用str1和str2,但只創建了一個對象,而且兩個引用都指向了這個對象。

String str1 = "abc ";
String str2 = new String( "abc ");
System.out.println(str1 == str2); //false
1、創建了兩個引用。創建了兩個對象。兩個引用分別指向不同的兩個對象。
2、以上兩段代碼說明,只要是用new()來新建對象的,都會在堆中創建,而且其字符串是單獨存值的,即使與棧中的數據相同,也不會與棧中的數據共享。

數據類型包裝類的值不可修改。不僅僅是String類的值不可修改,所有的數據類型包裝類都不能更改其內部的值。(StringBuffer 可改變),如:
String s1 = “bc”;
String s2 = s1;
s1 = “de”;
這時輸出s2會發現s2仍然等於"bc"
正是String的這個特性,佔用太多內存空間,後來纔有了StringBuffer/StringBuilder兩個類。

4)在Java中,下面對於構造函數的描述正確的是( )。 (單選)
A. 類必須顯式定義構造函數
B. 構造函數的返回類型是void
C. 構造函數和類有相同的名稱,並且不能帶任何參數
D.一個類可以定義多個構造函數
答案:D

5)關於垃圾收集的哪些敘述是對的。
A. 垃圾收集能夠在期望的時間釋放被java對象使用的內存。
B. 垃圾收集將檢查並釋放不再使用的內存。
C. 垃圾收集允許程序開發者明確指定並立即釋放該內存。
D. 程序開發者必須自己創建一個線程進行內存釋放的工作。
答案:B

6)下列選項中關於Java中封裝的說法錯誤的是( )。 (單選)
A. 封裝就是將屬性私有化,提供公有的方法訪問私有屬性
B. 屬性的訪問方法包括setter方法和getter方法
C. setter方法用於賦值、getter方法用於取值
D.類的屬性必須進行封裝,否則無法通過編譯
答案:D

7)使用Java實現封裝,第一步是修改屬性可見性來限制對屬性的訪問,第二步是創建賦值和取值方法,用於對屬性的訪問,第三步應該是( )。 (單選)
A.使用賦值和取值方法訪問屬性
B. 編寫常規方法訪問屬性
C.在賦值和取值方法中,加入對屬性的存取限制
D. 編寫main方法創建對象,調用賦值和取值方法訪問屬性
答案:C

8)分析如下所示的Java代碼,其中this關鍵字的意思是( )。 (單選)

public class Test {
    private String name;
    public String getName() {
    return name;
  }
public void setName(String name) {
    this.name = name;  
  }
}

A.name屬性
B.Test類的內部指代自身的引用
C. Test類的對象引用Test類的其他對象
D. 指所在的方法
答案:B

9)在Java語言中,下列關於類的繼承的描述,正確的是( )。 (單選)
A. 一個類可以繼承多個父類
B.一個類可以具有多個子類
C. 子類可以使用父類的所有方法 //私有方法不行
D. 子類一定比父類有更多的成員方法
答案:B

10)執行下面代碼,下面描述正確的是()

public class Person{
   static int arr[] = new int[10];
   public static void main(String a[]){
     System.out.println(arr[1]);
   }
}    

A. 產生編譯錯誤
B. 輸出空
C. 編譯正確,運行錯誤
D. 輸出0
答案:D

11)下列選項中關於Java中super關鍵字的說法錯誤的是( )。(單選)
A. super關鍵字是在子類對象內部指代其父類對象的引用
B.super關鍵字不僅可以指代子類的直接父類,還可以指代父類的父類
C. 子類可以通過super關鍵字調用父類的方法
D. 子類可以通過super關鍵字調用父類的屬性
答案:B

12)以下創建了幾個對象

String A,B,C
A="a";
B="b":
A=A+B;
StringBuffer D=new StringBuffer("abc");
D=D.append("567");

A. 6
B. 4
C. 3
D. 5
答案:B

13)以下關於Object類說法錯誤的是( )。(單選)
A. 一切類都直接或間接繼承自Object類
B. 接口亦繼承Object類
C. Object類中定義了toString()方法
D. Object類在java.lang包中
答案:B

14)給定Java代碼如下所示,則編譯運行後,輸出結果是( )。(單選)

class Parent {
  public void count() {
    System.out.println(10%3);
  }
}
public class Child  extends Parent{
  public void count() {
    System.out.println(10/3);
  }
  public static void main(String args[]) {
    Parent p = new Child();
    p.count();
  }
}

A. 1
B. 1.0
C.3
D. 3.3333333333333335
答案:C

15)分析如下Java代碼,如果想在控制檯上輸出“B類的test()方法”,則在橫線處應填入( )。(多選)

class A {
    public void test() {
        System.out.println("A類的test()方法");
    }
}
class B extends A {
    public void test() {
        System.out.println("B類的test()方法");
    }
    public static void main(String args[]) {
            ________________                               
    }
}

A.A a = new B();
a.test();
B. A a = new A();
a.test();
C. B b = new A();
b.test();
D.B b = new B();
b.test();

答案:AD

16)下面關於Java接口的說法錯誤的是( )。(單選)
A. 一個Java接口是一些方法特徵的集合,但沒有方法的實現
B. Java接口中定義的方法在不同的地方被實現,可以具有完全不同的行爲
C.Java接口中可以聲明私有成員
D. Java接口不能被實例化

答案:C
接口中的所有成員變量默認爲public static final,接口是公開的,裏面不能有私有的方法或變量,是用於讓別人使用的.
接口中的所有方法都是public abstract 公開抽象的,而且不能有構造方法。

17)給定如下Java程序代碼,在橫線處加入( )語句,可以使這段代碼編譯通過。(多選)

interface Parent{
    public int count(int i);
}
public class Test implements Parent {
    public int count(int i){
        return i % 9;
}
  public static void main(String[] args){
        ________________
        int i = p.count(20);
    }
}

A.Test p = new Test();
B.Parent p = new Test();AB
C.Parent p = new Parent();
D. Test p = new Parent();
答案:AB

18、設 String s = “story”; 下列選項中的語句書寫正確的是( )。
A. s += “books”;
B. char c = s[1];
C. int len = s .length;
D. s = s - “books”;

答案:A
length()是求String字符串對象中字符的個數,而length是求字符串數組中有多少個字符串。

19、三種字符串判空串方法:
1: bool isEmpty = (str.Length == 0);
2: bool isEmpty = (str == String.Empty);
3: bool isEmpty = (str == “”);
哪種方法正確?()。(選擇一項)
A. 1 B. 2 C. 3
答案:C

20、下列說法正確的是()。 (多選)
A. Java語言只允許單一繼承
B. Java語言只允許實現一個接口
C. Java語言不允許同時繼承一個類並實現一個接口
D. Java語言的單一繼承使得代碼更加可靠.
答案:AD

21、下面程序的運行結果是()。 (單選)

class A{
  static{
     System.out.print("a");
  }
  public A (){
     System.out.print("x");
   }
}

class B extends A{
   static{
      System.out.print("b");
   }
   public B (){
      System.out.print("y");
   }
}

public class Test{
public static void main(String[] args){
     A ab = new B ();
     ab = new B ();
  }
}

A、abxyxy
B、axxybx
C、abyxyx
D、xyxyab
答案:A

22、在類的定義中可以有兩個同名函數,這種現象稱爲函數( )。
(A)封裝 (B)繼承
(C)覆蓋 (D)重載
答案:D

23、在類的定義中構造函數的作用是( )。
(A)保護成員變量 (B)讀取類的成員變量
(C)描述類的特徵 (D)初始化成員變量
答案:D

24、下面哪一個是Java中不合法的標識符( )。
(A)$ persons (B)twoNum
(C)_myVar (D)*point
答案:D
1、首字母是英文字母、$和下劃線,由字母、數字和下劃線組成。
2、用駝峯命名法命名多個單詞組成的變量名。 [比如: setAge ]
3、變量名不要使用Java關鍵字

25、下面非法的是()。 (多選)
(A) int I = 32; (B) float f = 45.0;
© double d = 45.0; (D) char c = ‘u’; 
答案:BD

26、下面關於缺省構造方法的描述中正確的是( )
A. 當類中沒有定義任何構造方法時,Java編譯器將爲這個類創建缺省構造方法
B. 缺省構造方法可以初始化其他方法中定義的變量
C. Java編譯器會爲所有的類創建缺省構造方法。
D. 如果在一個類中定義的構造方法都聲明瞭參數,Java編譯器將爲這個類創建一個缺省構造方法
答案:A

27、下列類定義中哪些是合法的抽象類的定義?( )
A、abstract Animal{abstract void growl();}
B、class abstract Animal{abstract void growl();}
C、abstract class Animal{abstract void growl();}
D、abstract class Animal{abstract void growl(){System.out.println(“growl”);};}
答案:C

28、覆蓋與重載的關係是  (  )
A、覆蓋只有發生在父類與子類之間,而重載可以發生在同一個類中
B.覆蓋方法可以不同名,而重載方法必須同名
C.final修飾的方法可以被覆蓋,但不能被重載
D.覆蓋與重載是同一回事
答案:A

29、不允許作爲類及類成員的訪問控制符的是( )。
A. public B. private
C. static D. protected
答案:C

30、關於選擇結構下列哪個說法正確? ( )
A.if語句和 else語句必須成對出現
B.if語句可以沒有else語句對應
C.switch結構中每個case語句中必須用break語句
D.switch結構中必須有default語句
答案:B

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章