Java 基礎測試題


一、選擇題

1.下面哪些是合法的變量名? ( DEG  )

 A2variable              

 B. variable2    

C. _whatavariable

 D_3_  

E$anothervar  

F#myvar      

 G. $_

2.請問 “abcdinstanceof Object返回的值是? (  B   )

A. abcd”  B. true  C. false  D. String

3.下面有關方法覆蓋說法不正確的是:( B  )

A. 方法覆蓋要求覆蓋和被覆蓋的方法有相同的名字,參數列以及返回值

B. 方法覆蓋要求覆蓋和被覆蓋的方法必須具有相同的訪問權限;

C. 覆蓋的方法不能比被覆蓋的方法拋出更多的異常

D. 覆蓋的方法一定不能是private

 

4. 下面代碼段中:(  A )

String String=String;    

System.out.println(String);

A. String  B. 不知道  C. 編譯出錯 D. 運行出錯

5. 下面哪種是正確的創建Map集合的方式:(  D )

A. Map m=new Map();

B. Map m=new Map(init capacity, increment capacity);

C. Map m=new Map(new Collection());

D. Map是接口,所以不能實例化。

6.關於被私有保護訪問控制符protected修飾的成員變量,以下說法正確的是? ( A  )

A.可以被三種類所引用:該類自身、與它在同一個包中的其他類、在其他包中的該類的子類  

B. 可以被兩種類訪問和引用:該類本身、該類的所有子類

C. 只能被該類自身所訪問和修改

D.只能被同一個包中的類訪問

7.下列有關繼承的說法。正確的是:(B   )

A. 子類能繼承父類的所有方法和屬性;

B. 子類能繼承父類的非私有方法和屬性  

C. 子類只能繼承父類public方法和屬性

D. 子類能繼承父類的方法,而不是屬性。

8.對於構造方法,下列敘述正確的是:(AC   )

A. 構造方法的方法名必須與類名相同;

B. 構造方法必須用void申明返回類型

C. 構造方法可以被程序調用

D. 若編程人員沒再類中定義構造方法,程序將報錯。

9.下面是有關子類繼承父類構造函數的描述,其中正確的是:(CD   )

A. 創建子類的對象時,先調用子類自己的構造函數,然后調用父類的構造函數。

B. 子類可以不調用父類的構造函數

C. 子類必須通過super()關鍵字調用父類的構造函數

D. 子類無法繼承父類的構造函數。

10. 下列說法中,正確的是:( A  )

A. 類是變量和方法的集合體

B. 數組是無序數據的集合

C. 抽象類可以實例化

D. 類成員數據必須是公有的

 

 

11.在創建對象時必須(  C 

A) 先聲明對象,然后才能使用對象

B) 先聲明對象,為對象分配內存空間,然后才能使用對象

C) 先聲明對象,為對象分配內存空間,對對象初始化,然后才能使用對象

D) 上述說法都對

12. Java中(  C 

A) 一個子類可以有多個父類,一個父類也可以有多個子類

B) 一個子類可以有多個父類,但一個父類只可以有一個子類

C) 一個子類可以有一個父類,但一個父類可以有多個子類

D) 上述說法都不對

13.Java語言具有許多優點和特點,哪個反映了Java程序並行機制的特點?(B   ) 

A) 安全性            B) 多線()            C) 跨平台            D) 可移植

14. Character流與Byte流的區別是( C  ) 

A) 每次讀入的字節數不同      B) 前者帶有緩沖,后者沒有

C) 前者是字符讀寫,后者是字節讀寫   D) 二者沒有區別,可以互換使用

15.關於以下application的說明,正確的是(    C       

1.  class   StaticStuff

2{  

3.                  static  int  x=10

4.                  static  { x+=5}

5.                  public  static  void  mainString  args[ ]

6.                  {

7.                       System.out.println(x=+ x);

8.                  }

9.                  static  { x/=3;}

 10.   }

A4行與9行不能通過編譯,因為缺少方法名和返回類型   

B9行不能通過編譯,因為只能有一個靜態初始化器

C、編譯通過,執行結果為:x=5

D、編譯通過,執行結果為:x=3

16.關於以下程序代碼的說明正確的是(     D   

1class  HasStatic{

2.    private  static  int  x=100

3.    public  static  void  main(String  args[  ]){

4.        HasStatic  hs1=new  HasStatic(  );

5.        hs1.x++;

6.        HasStatic  hs2=new  HasStatic(  );

7.        hs2.x++;

8.        hs1=new  HasStatic( );

9.        hs1.x++;

10.       HasStatic.x- -;

11.       System.out.println(x=+x);

12.    }

13}

A5行不能通過編譯,因為引用了私有靜態變量

B10行不能通過編譯,因為x是私有靜態變量

C、 程序通過編譯,輸出結果為:x=103

D、 程序通過編譯,輸出結果為:x=102

17.以下選項中循環結構合法的是(     C      

Awhile (int  i<7)

{     i++;

     System.out.println(i is +i);

 }

Bint  j=3;

while(j)

{   

System.out.println(j  is +j);

}

Cint  j=0;

for(int  k=0; j + k !=10; j++,k++)

{     

System.out.println(j  is + j + k  is+ k);

}

D、  int  j=0;

do{

      System.out.println( j  is +j++);

      if (j = = 3) {continue  loop;}

 }while  (j<10);

18.     Test1定義如下: 1public  class  Test1{

2.   public  float  aMethodfloat  afloat  b{return ..;   }  

3.     

4}        

將以下哪種方法插入行3是不合法的。(     B    

Apublic  float  aMethodfloat  afloat  bfloat  c{ return ..;  }

Bpublic  float  aMethodfloat  cfloat d{ return.. ;  }

Cpublic  int  aMethodint  aint b{ return ..;  }

Dprivate  float  aMethodint aint bint c{ return ..;  }

19.     Test1Test2定義如下:

1.  public  class  Test1

2{ public  float  aMethodfloat afloat bthrows

3.  IOException {      }

4}

5public  class  Test2  extends  Test1{

6

7}

將以下哪種方法插入行6是不合法的。( A     

Afloat  aMethodfloat  afloat  b{ }

Bpublic  int  aMethodint aint bthrows  Exception{ }

Cpublic  float  aMethodfloat  pfloat q{ }

Dpublic  int  aMethodint aint  bthrows IOException{ }

20.     關於以下程序段,正確的說法是(   C     

1.  String  s1=abc+def;

2.  String  s2=new  Strings1);

3.  ifs1= =s2

4.     System.out.println(= = succeeded);  

5.  if (s1.equals(s2))

6.     System.out.println(.equals()  succeeded);

A、行4與行6都將執行            B、行4執行,行6不執行

C、行6執行,行4不執行         C、行4、行6都不執行

21.     以下哪個方法用於定義線程的執行體? (  C     

Astart()            Binit()               Crun()               Dsynchronized()  

22.     以下哪個關鍵字可以用來為對象加互斥鎖?(    D   

Atransient         Bstatic               Cserialize         Dsynchronized

23.     有以下方法的定義,請選擇該方法的返回類型(   D   )。

ReturnType  method(byte x, double y)                            {

    return  (short)x/y*2;

}

Abyte                Bshort               Cint                   Ddouble

 

24         以下哪項是接口的正確定義?(    BD     

Ainterface  B

{  void print(){};}

Babstract  interface  B

{ void print() ;}

C abstract  interface  B  extends  A1,A2  //A1A2為已定義的接口

{ abstract  void  print(){  };}  

Dinterface  B

      {  void  print();}

25.   A派生出子類BB派生出子類C,並且在Java源代碼中有如下聲明:  

1.    A  a0=new  A();

2.    A  a1 =new  B();

3.    A  a2=new  C();

問以下哪個說法是正確的?     D    

A、只有第1行能通過編譯  B、第12行能通過編譯,但第3行編譯出錯

C、第123行能通過編譯,但第23行運行時出錯

D、第1行、第2行和第3行的聲明都是正確的  

26.  假設A類有如下定義,設aA類的一個實例,下列語句調用哪個是錯誤的?(   C    

class  A

{     int  i;

      static  String  s;

       void  method1() {   }

       static  void  method2()  {   }

}

ASystem.out.println(a.i)Ba.method1();  CA.method1();

  DA.method2()

27.  以下關於繼承的敘述正確的是(   A    )。

A、在Java中類只允許單一繼承

B、在Java中一個類只能實現一個接口  

C、在Java中一個類不能同時繼承一個類和實現一個接口  

D、在Java中接口只允許單一繼承  

28.   給出下面代碼,關於該程序以下哪個說法是正確的?( C      

public class Person{  

static int arr[] = new int[5];

public static void main(String a[]) {  

System.out.println(arr[0]);}

}  

}

A、編譯時將產生錯誤        B、編譯時正確,運行時將產生錯誤

C、輸出零            D、輸出空

29 在使用interface聲明一個接口時,只可以使用( D      )修飾符修飾該接口。

Aprivate            Bprotected         Cprivate  protected   Dpublic

30. 編譯並運行以下程序,以下描述哪個選項是正確的(   D    

1.  class  A{

2.      protected  boolean  equals(){

3.           return  super.equals();

4}

5. }    

A、編譯通過運行無異常     B、編譯通過但運行時出錯

C、行2出錯,不能成功編譯     D、不能成功編譯,行3出錯

31.  有語句String s=hello world; ,以下操作哪個是不合法的?  B     

  Aint i=s.length();       Bs>>>=3;

  CString ts=s.trim();    DString t=s+!;

32.     閱讀以下代碼:

import java.io.*;

import java.util.*;

public class foo{

public static void main (String[] args){

String s;

System.out.println("s=" + s);

}

}

 

輸出結果應該是:(   C    

 A.代碼得到編譯,並輸出“s=

B.代碼得到編譯,並輸出“s=null”  

C.由於String s沒有初始化,代碼不能編譯通過

D.代碼得到編譯,但捕獲到 NullPointException異常

33.     編譯運行以下程序后,關於輸出結果的說明正確的是   C    

       public  class   Conditional{

           public  static  void  main(String  args[ ]){

           int  x=4;

           System.out.println(value  is  + ((x>4) ? 99.9:9));

}

}

A.輸出結果為:value  is  99.9      B.輸出結果為:value  is  9

C.輸出結果為:value  is  9.0   

D.編譯錯誤

34. 執行完以下代碼int [ ]  x = new int[10];后,以下哪項說明是正確的( A    

Ax[9]0

Bx[9]未定義 

Cx[10]0

Dx[0]為空

 35.     關於以下程序段,正確的說法是( C     

1.  String  s1=a+b;

2.   String  s2=new  Strings1);

3.    ifs1= =s2

4.       System.out.println(= =  is succeeded);

5.     if (s1.equals(s2))

6.        System.out.println(.equals() is succeeded);

A.行4與行6都將執行            B.行4執行,行6不執行

C.行6執行,行4不執行         C.行4、行6都不執行

36.     以下程序的運行結果是:(  C    

public class Increment{

       public static void main(String args[]){

int c;

c = 2;

System.out.println(c);

System.out.println(c++);

System.out.println(c);

}     

}

A2 2 2          B2 3 3    C2 2 3   D3 4 4

 

37     a的值為3時,下列程序段被執行后,c的值是多少?(  C    

    if ( a>0 )   

        if ( a>3 )  c = 2;    

       else c = 3;  

     else c = 4;   

 A1           B2          C3          D4

38.      下面哪一個操作符的優先級最高?  (   D    

       A&&                       B||

       C!                          D( )

39.   執行語句int i = 1, j = ++i  +  ++i  + i--; ij的值分別為(  D     )。

       A2與6               B3與8 

       C3與5               D2與8 ++i先運算再取值)

40.     下面哪一個循環會導致死循環?(  C     

 Afor (int k = 0; k < 0; k++)     

 Bfor (int k = 10; k > 0; k--)

 Cfor (int k = 0; k < 10; k--)  

 Dfor (int k = 0; k > 0; k++)

41.     有如下程序段:

       int a = b = 5;

       String s1 = "祝你今天考出好成績!";

       String s2 = s1;

則表達式a == bs2 == s1的結果分別是:( A     )。

       Atruetrue               Bfalsetrue  

       Ctruefalse                Dfalsefalse

42. Java中用什么關鍵字修飾的方法可以直接通過類名來調用?  A    

  Astatic         Bfinal       Cprivate          Dvoid

43.     有如下程序段:

int total = 0;

for ( int i = 0; i < 4; i++ ){

  if ( i == 1) continue;  

  if ( i == 2) break;                             

  total += i;

}

則執行完該程序段后total的值為:(   A    )。

A0                    B1                     C3                     D6

44.如果希望某個變量只可以被類本身訪問和調用,則應該使用下列哪一種訪問控制修飾( A  )。

    Aprivate                    Bprotected

    Cprivate  protected         Dpublic

45.欲構造ArrayList類的一個實例,此類繼承了List接口,下列哪個方法是正確的?(  B   

AArrayList myList=new Object();

BList myList=new ArrayList();

CArrayList myList=new List();

DList myList=new List();

46.     指出正確的表達式 ( BD  

Abyte=128;   

BBoolean=null;  

Clong l=0xfffL;  

Ddouble=0.9239d;  

47.     指出下列程序運行的結果 (   B   

public class Example{  

    String str=new String("good");  

     char[] ch = {'a','b','c'};  

     public static void main(String args[]){  

         Example ex=new Example();  

         ex.change(ex.str,ex.ch);  

         System.out.print(ex.str+" and ");

      Sytem.out.print(ex.ch);

     }

    public void change(String str,char ch[]){  

         str="test ok";  

         ch[0]='g';  

     }

}

Agood and abc  

Bgood and gbc  

Ctest ok and abc  

Dtest ok and gbc  

48     運行下列程序, 會產生什么結果 (  D     

public class X extends Thread implements Runnable{  

     public void run(){  

         System.out.println("this is run()");  

     }  

     public static void main(String args[]) {  

         Thread t=new Thread(new X());  

         t.start();  

     }  

}  

A、 第一行會產生編譯錯誤  

B、 第六行會產生編譯錯誤  

C、 第六行會產生運行錯誤  

D、 程序會運行和啟動  

 

 

49.         下面語句在編譯時出現警告或錯誤的是(  ABCD     )

A. float f=3.14;    

B. char c=c;     

C. Boolean b=null;    

D. int i=10.0;      

50.         給出下面代碼段, 哪行將引起一個編譯時錯誤?  D  

1) public class Test {  

2)   int n = 0;  

3)   int m = 0;  

4)   public Test(int a) { m=a; }  

5)   public static void main(String arg[]) {  

6)     Test t1,t2;  

7)     int j,k;  

8)     j=3; k=5;  

9)     t1=new Test();           

10)    t2=new Test(k);  

11)  }  

12) }

A. 1                 B. 4                 C. 6                 D. 9

51.         下面程序中類ClassDemo中定義了一個靜態變量sum分析程序段的輸出結果。

 C  

class ClassDemo {

   public static int sum=1;

   public ClassDemo() {

      sum = sum + 5;   

   }

}

public class ClassDemoTest{

   public static void main(String args[]) {

   ClassDemo demo1=new ClassDemo();

   ClassDemo demo2=new ClassDemo();

   System.out.println(demo1.sum);   

  }

}

A. 0                      B. 6                      C. 11                  D. 2

52.     下面關於數組聲明和初始化的語句那個有語法錯誤?(  C     

Aint a1[]={3,4,5};

BString a2[]={"string1","string1","string1"};

CString a3[]=new String(3);

Dint[][] a4=new int[3][3];

53.     下面的方法,當輸入為2的時候返回值是多少?(   D    

    public int getValue(int i) {

        int result = 0;

        switch (i) {

            case 1:

                result = result + i;

            case 2:

                result = result + i * 2;

            case 3:

                result = result + i * 3;

        }

        return result;

    }

A0                    B2                    C4                     D10

54.     getCustomerInfo()方法如下,try中可以捕獲三種類型的異常,如果在該方法運行中產生了一個IOException,將會輸出什么結果(  A  

    public void getCustomerInfo() {  

          try {  

              // do something that may cause an Exception  

          } catch (java.io.FileNotFoundException  ex){  

                System.out.print("FileNotFoundException!");  

          } catch (java.io.IOException  ex){  

                System.out.print("IOException!");            } catch (java.lang.Exception  ex){  

                System.out.print("Exception!");  

          }

      }

AIOException!

BIOException!Exception!

CFileNotFoundException!IOException!

DFileNotFoundException!IOException!Exception!

55     新建一個流對象,下面哪個選項的代碼是錯誤的?(  B    

Anew BufferedWriter(new FileWriter("a.txt"));

Bnew BufferedReader(new FileInputStream("a.dat"));

Cnew GZIPOutputStream(new FileOutputStream("a.zip"));

Dnew ObjectInputStream(new FileInputStream("a.dat"));

56.     Java的集合框架中重要的接口java.util.Collection定義了許多方法。選項中哪個方法

不是Collection接口所定義的?(  C     )

Aint size()

Bboolean containsAll(Collection c)

CcompareTo(Object obj)

Dboolean remove(Object obj)

57.     一個線程在任何時刻都處於某種線程狀態(thread state,例如運行狀態、阻塞狀態、

就緒狀態等。一個線程可以由選項中的哪種線程狀態直接到達運行狀態?(  D     )

A)死亡狀態

B)阻塞狀態(對象lock池內)

C)阻塞狀態(對象wait池內)

D)就緒狀態

58.     選項中哪一行代碼可以替換題目中//add code here而不產生編譯錯誤?(  A     

public abstract class MyClass {

           public int constInt = 5;

          //add code here

           public void method() {

               }

}

Apublic abstract void method(int a);

Bvalue = value + 5;   

Cpublic int method();

Dpublic abstract void anotherMethod() {}

59.     下面是PeopleChild類的定義和構造方法,每個構造方法都輸出編號。在執行new

Child("mike")的時候都有哪些構造方法被順序調用?請選擇輸出結果 (   D   )

class People {

       String name;

       public People() {  System.out.print(1); }

       public People(String name) {

              System.out.print(2);

              this.name = name;

       }

}

class Child extends People {

       People father;

       public Child(String name) {

              System.out.print(3);

              this.name = name;

              father = new People(name + ":F");

       }

       public Child(){ System.out.print(4); }

}  

A312              B) 32

C)    432              D) 132

60.     下面哪個選項中的代碼沒有定義內部類,或者錯誤的定義了內部類? (    C   )

Apublic Class Line {

      int length;

      Class Point {//內部類代碼}

}

B)    public Class Line {

      public Point getPoint() {

         return new Point(){//內部類代碼};

      }

}

C)    public Class Line {

              //外部類代碼

}

Class Point {//內部類代碼}    

D) public Class Line {

      public int calcLength() {

         Class Point {//內部類代碼}

      }

}

 

 二、編程題

1 將數組 int [] a={9,5,7,8,1,3,2,6,4} 進行冒泡排序  

2 寫出單例設計模式

3 鍵盤輸入十行數據,直到輸入quit就退出程序,將輸入的數據保存在D:\temp\info.txt中,該文件不存在就創建該文件。

4 模擬生成1個班級,該班級有9個學生對象,用集合模擬下列操作。

  A.班級再增加一位學生

  B.將學號是S001的姓名修改為”張恆”

  C.統計所有學生的平均分

  D.將學生的所有信息保存到文件student.txt

5 模擬四個線程對同一個數據I進行操作

    1號和3號線程做加一

    2號和4號線程做減一

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM