java筆試題(一)

一、單選題

1、當試圖編譯並運行下面程序時會出現什麼結果()

 class A{ 

         public int getNumber(int a){ 

            return a+1; 

         } 

    } 

    class B extends A{ 

         public int getNumber(int a, char c){ 

            return a+2; 

        } 

         public static void main(String[] args){ 

            B b=new B(); 

            System.out.println(b.getNumber(0)); 

         } 

        }

A、編譯錯誤

B、運行錯誤

C1

D2

答案:C

當編譯並運行下面程序時會出現什麼結果( )

public class MyAr{

     public static void main(String argv[]){

          int[] i = new int[5];

          System.out.println(i[5]);

     }

}

A、編譯錯誤

B、運行錯誤

C、輸出0

D、輸出“null

答案:B

當編譯並運行下面程序時會發生什麼結果()

public class Bground extends Thread{

       public static void main(String argv[]){

            Bground b = new Bground();

           b.run();

       }

public void start(){

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

             System.out.println("Value of i = " + i);

       }

}

}

A、編譯錯誤,指明run方法沒有定義

B、運行錯誤,指明run方法沒有定義

C、編譯通過並輸出09

D、編譯通過但無輸出

答案:D

5、在Java中,如果父類中的某些方法不包含任何邏輯,並且需要由子類重寫,應該使用()關鍵字來聲明父類的這些方法。

AFinal

BStatic

CAbstract

DVoid

答案:C

當編譯並運行下面程序時會發生什麼結果:

public class Hope{

      public static void main(String argv[]){

          Hope h = new Hope();

      }

      protected Hope(){

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

               System.out.println(i);

          }

      }

}

A、編譯錯誤,構造方法不能被聲明爲protected

B、運行錯誤,構造方法不能被聲明爲protected

C、編譯並運行輸出010

D、編譯並運行輸出09

答案:D

當編譯並運行下面程序時會發生什麼結果?( )

public class Test{ 

   public static void stringReplace(String text){ 

        text=text+c

    } 

    public static void bufferReplace(StringBuffer text){ 

        text=text.append("c"); 

     } 

   public static void main(String args[]){   

        String textString=new String("java"); 

        StringBuffer textBuffer=new StringBuffer("java"); 

        stringReplace(textString); 

        bufferReplace(textBuffer); 

        System.out.println(textString+textBuffer); 

      } 

   }

A、編譯並運行輸出javac   javac

B、編譯並運行輸出java    java

C、編譯並運行輸出java    javac

D、編譯並運行輸出 javac   java

答案:C

當編譯和運行下面程序時,哪項描述可以最準確的表達發生了什麼事情( )

public class MyAr{

       public static void main(String argv[]) {

              MyAr m = new MyAr();

              m.amethod();

       }

public void amethod(){

      int i;

      System.out.println(i);

}

}

A、編譯並輸出0

B、編譯錯誤

C、編譯並輸出null

D、運行錯誤

答案:C

給定如下java代碼程序片斷:

class A{

public A(){

System.out.println(A);

}

}

class B extends A{

public B(){

System.out.println(B);

}

public static void main(String[] args){

B b=new B();

}

}

上述程序將()

A、不能通過編譯

B、通過編譯,輸出爲AB

C、通過編譯,輸出爲B

D、通過編譯,輸出爲A

答案:C

給定JAVA代碼如下,編譯運行後,輸出結果是()

public class test{

   static int i;

   public int test(){

    i++;

     return i;

  }

public static void main(String args[]){

 Test test=new Test();

  test.test();

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

  }

}

A0

B1

C2

D3

答案:C

14、給定JAVA代碼如下,關於super的用法,以下描述正確的是( )

class C extends B

{

    public C()

    {

         super();

    }

}

A、用來調用類B中定義的super()方法

B、用來調用類C中定義的super()方法

C、用來調用類B中的無參構造方法

D、用來調用類B中第一個出現的構造方法

答案:C

17、下面哪些是正確的描述了關鍵字synhronized ( )

A、允許兩個進程並行運行但其之間相互通信

B、保證任何時候只有一個線程訪問一個方法或對象

C、保證兩個或多個進程同時啓動和結束

D、保證兩個或多個線程同時啓動和結束

答案:C

18、下列哪一種敘述是正確的()

Aabstract修飾符可修飾屬性、方法和類

B、抽象方法的body部分必須用一對大括號{ }

C、聲明抽象方法,大括號可有可無

D、聲明抽象方法不可寫出大括號

答案:C

21、給定java代碼如下,編譯運行結果是()

public class Test{

   public int count(){

     return 1%9;

   }

   public static void main(String[]args){

     System.out.println(count());

   }

}

A、編譯錯誤

B、運行錯誤

C、正常運行,輸出1

D、正常運行,輸出0

答案:C

22、將對象序列化,要實現哪個接口()

ACloneable

BRunnable

CSerializable

DComparator

答案:C

23、以下代碼輸出結果爲( ) 

public class Test{ 

  public static String output=""; 

    public static void foo(int i){ 

      try { 

         if(i==1){ 

                  throw new Exception(); 

          } 

         output +="1"; 

     } catch(Exception e){ 

           output+="2"; 

   return;

     } finally{ 

         output+="3"; 

    output+="4"; 

  } 

 public static void main(String args[]){ 

 foo(0); 

 foo(1); 

 System.out.println(output);  

    } 

}

A1342 

B123

C134234 

D13423

答案:C

24、在JAVA,()接口位於集合框架的頂層( ) 

ACollection

BCollections

CList

DSet

答案:C

25、在Java中,下列()類不能派生出子類( ) 

Apublic class MyClass{}

Bclass MyClass{}

Cabstract class MyClass{}

Dfinal class MyClass{}

答案:C

26、啓動一個線程,應調用什麼方法()。

Astart()

Brun()

Cbegin()

Dnotify()

答案:C

27、在java中,已定義兩個接口BC,要定義一個實現這兩個接口的類,以下語句正確的是( )

Ainterface A extends B,C

Binterface A implements B,C

Cclass A implements B,C

Dclass A implements B,implements C

答案:C

28、在Java中,以下定義數組的語句正確的是( )

Aint t[10]=new int[];

Bchar a[]="hefg";

Cint t[]=new int[10];

Ddouble d=new double[10];

答案:C

29、給定一個java程序的main方法的代碼片段如下:假如d目錄下不存在abc.txt文件,現運行該程序,下面的結果正確的是():

try{

PrintWriter out  =

new PrintWriter(new FileOutputStream("d:/abc.txt"));

      String name="chen";

      out.print(name);

}catch(Exception e){

   System.out.println("文件沒有發現!");

}

A、將在控制檯上打印:"文件沒有發現!"

B、正常運行,但沒有生成文件abc.txt

C、運行後生成abc.txt,但該文件中可能無內容

D、運行後生成abc.txt,該文件內容爲:chen

答案:C

30、集合框架中,要實現對集合裏的元素進行自定義排序,要實現哪個接口()

ACloneable

BRunnable

CSerializable

DComparator

答案:C

研究下面的JAVA代碼( )

public class TestException {

/**

 * @param args

 */

public static void main(String[] args) {

int a[] = {0,1,2,3,4};

        int sum=0;

        try

        {

        for(int i=0;i<6;i++)

        {

        sum+=a[i];

        }

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

        }

        catch(java.lang.ArrayIndexOutOfBoundsException e)

        {

        System.out.println("數組下標越界");

        }

        finally

        {

        System.out.println("程序結束");

        }

}

}

輸出結果將是()

A10 數組下標越界 程序結束

B10 程序結束

C、數組下標越界 程序結束

D、程序結束

答案:C

研究下面JAVA代碼

public class TestException {

public static void main(String[] args) {

try

{

System.out.println("hello,jr");

System.exit(0);

}

finally

{

System.out.println("88");

}

}

}

輸出結果爲()

Ahello,jr

B88

Chello,jr後是88

D、不能編譯

答案:C

二、多選題

3finalfinallyfinalize三個關鍵字的區別是()

Afinal是修飾符(關鍵字)可以修飾類、方法、變量

Bfinally在異常處理的時候使用,提供finally塊來執行任何清除操作

Cfinalize是方法名,在垃圾收入集器將對象從內存中清除出去之前做必要的清理工作

Dfinallyfinalize一樣都是用異常處理的方法

答案:ABC

7、下列說法正確的是?()

A、數組有length()方法

BStringlength()方法

C、數組有length屬性

DStringlength屬性

答案:BC

以下哪些表達式返回爲真()

String a=My field1;

String b=My field1;

String c=new String(My field1);

String d=new String(My field1);

Aa ==b

Ba==c

Cc==d

Da.equals(b)

Ea.equals(c)

Fc.equals(d)

答案:ADEF

12、關於線程,以下說法正確的是:()

Asleep方法執行時會釋放對象鎖。

Bwait方法執行時會釋放對象鎖。

Csleep方法必須寫在同步方法或同步塊中

Dwait方法必須寫在同步方法或同步塊中

答案:BD

15、哪些是Thread類中本身的方法(不包括繼承) ( )

Astart()

Bsleep(long mi)

Cwait()

Dnotify()

答案:AB

16、下面哪些爲真() 

A、接口裏可定義變量,並且變量的值不能修改

B、任何情況下,類都不能被private修飾

C、類可以被protected修飾

D、接口不能實例化

答案:ACD

19、下面關於網絡通信正確的描述是()

ATCP/IP協議是一種不可靠的網絡通信協議。

BUDP協議是一種可靠的網絡通信協議。

CTCP/IP協議是一種可靠的網絡通信協議。

DUDP協議是一種不可靠的網絡通信協議。

答案:CD

20、在Java中,下面關於抽象類的描述正確的是()

A、抽象類可以被實例化

B、如果一個類中有一個方法被聲明爲抽象的,那麼這個類必須是抽象類

C、抽象類的方法都必須是抽象的

D、聲明抽象類必須帶有關鍵字abstract

答案:C

31、 

 class Super{ 

       protected float getNum(){return 3.0f;} 

   } 

  public class Sub extends Super{ 

       //Here

  }

下面哪些代碼可放在Here

Afloat getNum(){return 4.0f;}

Bpublic void getNum(){}

Cprivate void getNum(double d){}

Dpublic double Getnum(){return 4.0d;}

Epublic float getNum(){return 9;}

答案:BD

32、在Java語言中,如果你編寫一個多線程序,可以使用的方法是()。

A、擴展類Thread

B、實現Runnable接口

C、擴展類Runnable

D、實現接口Thread

答案:CDE

33、下面哪些接口直接繼承自Collection接口()

AList

BMap

CSet

DIterator

答案:AB

34、關於HashMapHashtable正確的說法有()

A、都實現了Map接口

BHashtable類不是同步的,而HashMap類是同步的

CHashtable 不允許null鍵或值

DHashMap 不允許null鍵或值

答案:AC

35、下面關於構造方法的說法正確的是()

A、構造方法不能被繼承

B、構造方法不能被重寫

C、構造方法不能被重載

D、構造方法不能聲明爲private

答案:AC

考慮下面的代碼

public   class  ConstOver{

public  ConstOver(int  x,int  y,int  z){}

}

說出哪些重載了ConstOver構造器?

AConstOver(){}

Bprotected  int  ConstOver(){}

Cprivate  ConstOver(int  z,int  y,byte  z){}

Dpublic  void  ConstOver(byte  x,byte  y,byte  z){}

Epublic  Object  ConstOver(int  x,int  y,int  z){}

答案:AC

有以下代碼:

package com;

public class Test {

public static void main(String[] args) {

Test test = new Test();

//here

}

}

here處加上以下什麼語句,可以獲得Class對象?

AClass  c  =  new Class();

BClass  c  =  test.class;

CClass  c  =  Test.class;

DClass  c  =  test.getClass();

EClass  c  =  Class.forName(com.Test);

FClass  c  =  Class.forName(Test);

答案:CDE

40、能用來修飾interface方法的有( )

Aprivate

Bpublic

Cprotected

Dstatic

E、不加修飾符

答案:BE

 

由“JAVA筆試題庫”收集整理

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