java試題覆盤——9月8日

 

 上:java

1.可將語句塊或方法設爲同步使用的語句是(A)程序員

 

 A synchronized              用於方法或者代碼塊前,使此方法或者代碼變成同步的web

 B static                            用於聲明靜態變量正則表達式

 C abstract                       用於定義抽象類或者方法數據庫

 D final                              用於聲明常量,即只能賦值一次的變量編程

 

 

2.關於 Java 線程,下面說法錯誤的是(C)。數組

 

 A 建立線程能夠經過實現Runnable接口和繼承Thread類安全

 B java利用線程使整個系統成爲異步服務器

 C 新線程一旦被建立,它將自動開始運行cookie

 

 

 

3.對於一個已經不被任何變量引用的對象,當垃圾回收器準備回收該對象所佔用的內存時,將自動調用該對象的哪一個方法(A)

A  finalize

B  notify

C  notifyAll

D  hashCode

 

題解:就在移除一個對象並回收它的內存空間以前,Java垃圾回收器將會調用各個實例的finalize()方法,這樣實例對象就有機會能夠釋放掉它佔用的資源。儘管finalize()方法是保證在回收內存空間以前執行的,可是對具體的執行時間和執行順序是沒有任何保證的。多個實例之間的finalize()執行順序是不能提早預知的,甚至有可能它們是並行執行的。程序不該該預先假設實例執行finalize()的方法,也不該該使用finalize()方法來回收資源。

    • 在finalize過程當中拋出的任何異常都默認被忽略掉了,同時對象的銷燬過程被取消
    • JVM規範並無討論關於弱引用的垃圾回收,這是明確聲明的。具體的細節留給實現者決定。
    • 垃圾回收是由守護進程執行的

 

 

4.有如下程序片斷且Interesting不是內部類,下列哪一個選項不能插入到行1。(  D  )

 

public class Interesting{

 // 省略代碼

}

 

 import java.awt.*;

 package mypackage;

 class OtherClass{   }

 public class MyClass{ }

 

題解:在同一個java原文件中,能夠有多個class類,可是隻能有一個公共的public class類

 

5.在類Tester中定義方法以下,B

 

public double max(int x, int y) { // 省略 }

 

則在該類中定義以下哪一個方法頭是對上述方法的重載(Overload)?

 

 A public int max(int a, int b) {}

 B public int max(double a, double b) {}

 C public double max(int x, int y) {}

 D private double max(int a, int b) {}

 

題解:重載就是一句話:同名不一樣參,返回值無關。

               覆蓋/重寫:同名同參

 

6.Math.round(11.5) 等於:(C)

 A.11

 B.11.5

 C.12

 D.12.5

 

題解:四捨五入

 

7.在Java中,如下關於方法重載和方法重寫描述正確的是?D

 A.方法重載和方法的重寫實現的功能相同

 B.方法重載出如今父子關係中,方法重寫是在同一類中

 C.方法重載的返回值類型必須一致,參數項必須不一樣

 D.方法重寫的返回值類型必須相同或相容。(或是其子類)

 

題解:

方法重載(overload):

1.必須是同一個類

2方法名(也能夠叫函數)同樣

3參數類型不同或參數數量不同

 

方法的重寫(override)兩同兩小一大原則:

方法名相同,參數類型相同

子類返回類型小於等於父類方法返回類型,

子類拋出異常小於等於父類方法拋出異常,

子類訪問權限大於等於父類方法訪問權限。

 

 

 

8.如下描述錯誤的一項是(C)?

 

 A.程序計數器是一個比較小的內存區域,用於指示當前線程所執行的字節碼執行  到了第幾行,是線程隔離的

 B.原則上講,全部的對象都是在堆區上分配內存,是線程之間共享的

 C.方法區用於存儲JVM加載的類信息、常量、靜態變量,即便編譯器編譯後的代碼等數據,是線程隔離的

 D.Java方法執行內存模型,用於存儲局部變量,操做數棧,動態連接,方法出口等信息,是線程隔離的

 

題解:首先來講這個答案是很容易選出來的,只要知道靜態變量是屬於類的,在方法中是沒有靜態變量的,就能夠選出正確答案了,但這兒還要把A C D說一下。大多數 JVM 將內存區域劃分爲 Method Area(Non-Heap)(方法區) ,Heap(堆) , Program Counter Register(程序計數器) ,   VM Stack(虛擬機棧,也有翻譯成JAVA 方法棧的),Native Method Stack  ( 本地方法棧 ),其中Method Area 和  Heap 是線程共享的  ,VM Stack,Native Method Stack  和Program Counter Register  是非線程共享的(每一個線程運行的時候都會單獨的建立)。方法區在JVM中也是一個很是重要的區域,它與堆同樣,是被 線程共享 的區域。 在方法區中,存儲了每一個類的信息(包括類的名稱、方法信息、字段信息)、靜態變量、常量以及編譯器編譯後的代碼等。

 

 

9.如下java程序代碼,執行後的結果是(B)

public class Test {

    public static void main(String[] args) {  

        Object o = new Object() { 

             public boolean equals(Object obj) { 

                 return true;

         }

     };  

     System.out.println(o.equals("Fred"));

     }

}

 A.Fred

 B.true

 C.編譯錯誤

 D.運行時拋出異常

 

 

10.下面代碼執行後的結果爲(   C   )

int main()

{

int sum=0;

int i=0,j=0;

 

for(j=0;j<6;j++)

{

if(j%2)continue;

sum++;

}

 

printf("sum=%d",sum);

 

return 0;

}

 A.sum=1

 B.sum=2

 C.sum=3

 D.其餘幾項都不對

 

 

11.關於抽象類的敘述正確的是?(A)

 A.抽象類不能夠實例化

 B.抽象類就是一種特殊的接口

 C.抽象類的方法都是抽象方法

 D.抽象類的導出類必定不是抽象類

 

題解:

A選項中,抽象類不能實例化,這句是正確的。後面,抽象類不能申明爲對象,是錯誤的。java中,接口和抽象類,均可以聲明爲對象,只須要在實例化的時候,用一個該接口/抽象類的實現類實例化就好了。即:

interface / abstract class obj = new class();其中,new後面的class是前面接口/抽象類的實現類。

B選項中,接口是一種特殊的抽象類。其中,成員變量都是默認public static final修飾的,方法都是public abstract修飾的,而且除了default和static的之外,只有聲明,沒有方法體。

C選項中,抽象類的方法,能夠是抽象abstract的,也能夠是普通的。就算所有是普通方法,也能夠用abstract修飾。

D選項中,導出類,及子類,抽象類的子類能夠是抽象的,也能夠是普通的

 

 

 

12.下面代碼的輸出結果是什麼?D

public class ZeroTest {

    public static void main(String[] args) {

     try{

       int i = 100 / 0;

       System.out.print(i);

  }catch(Exception e){

       System.out.print(1);

       throw new RuntimeException();

  }finally{

       System.out.print(2);

  }

      System.out.print(3);

 }

 }

 A.3

 B.123

 C.1

 D.12

 

題解:

仍是須要理解Try...catch...finally與直接throw的區別:try catch是直接處理,處理完成以後程序繼續往下執行,throw則是將異常拋給它的上一級處理,程序便不往下執行了。本題的catch語句塊裏面,打印完1以後,又拋出了一個RuntimeException,程序並無處理它,而是直接拋出,所以執行完finally語句塊以後,程序終止了

 

13.能單獨和finally語句一塊兒使用的塊是( A )

 

 A.try

 B.catch

 C.throw

 D.throws

 

 

 

14.下列有關Thread的描述,哪一個是正確的?C

 A.啓動一個線程的方法是:thread. run()

 B.結束一個線程的一般作法是:thread. stop()

 C.將一個線程標記成daemon線程,意味着當主線程結束,而且沒有其它正在運行的非daemon線程時,該daemon線程也會自動結束。

 D.讓一個線程等待另外一個線程的通知的方法是:thread. sleep()

 

 

 

15.java中下面哪一個能建立並啓動線程(C)

public class MyRunnable implements Runnable          {

     public void run()             {

         //some code here

     }

 }

 A.new Runnable(MyRunnable).start()

 B.new Thread(MyRunnable).run()

 C.new Thread(new MyRunnable()).start()

 D.new MyRunnable().start()

 

 

16.HashMap和HashTable的描述,錯誤的是?D

 A.他們都實現了Map接口。

 B.HashMap非線程安全,在多個線程訪問Hashtable時,不須要本身爲它的方法實現同步,而HashMap就必須爲之提供額外同步。

 C.HashMap容許將null做爲一個entry的key或者value,而Hashtable不容許。

 D.經過contains方法能夠判斷一個對象是否存在於HashMap或者Hashtable中。

 

題解:

contains方法容易引發歧義,所以在HashMap中改爲containsKey和containsValue方法來替換。

 

 

17.嘗試編譯如下程序會產生怎麼樣的結果?(C)

public class MyClass {

    long var;

    public void MyClass(long param) { var = param; }//(1)

    public static void main(String[] args) {

        MyClass a, b;

        a =new MyClass();//(2)

        b =new MyClass(5);//(3)

    }

}

 

 A.編譯錯誤將發生在(1),由於構造函數不能指定返回值

B.編譯錯誤將發生在(2),由於該類沒有默認構造函數

 C.編譯錯誤將在(3)處發生,由於該類沒有構造函數,該構造函數接受一個int類型的參數

D.該程序將正確編譯和執行

 

 

 

18.以下代碼的輸出是

package Test;

public class Test {

    private static void test(int[] arr) {

        for (int i = 0; i < arr.length; i++) {

            try {

                if (arr[i] % 2 == 0) {

                    throw new NullPointerException();

                } else {

                    System.out.print(i);

                }

            } finally {

                System.out.print("e");

            }

        }

    }

 

    public static void main(String[]args) {

        try {

            test(new int[] {0, 1, 2, 3, 4, 5});

        } catch (Exception e) {

            System.out.print("E");

        }

    }

 

}

能夠獲得的結論是( B)

A.編譯出錯

B.eE

C. Ee

D. eE1eE3eE5

E. Ee1Ee3Ee5

 

 

19.下面有關servlet service描述錯誤的是? B

 A.無論是post仍是get方法提交過來的鏈接,都會在service中處理

 B.doGet/doPost 則是在 javax.servlet.GenericServlet 中實現的

 C.service()是在javax.servlet.Servlet接口中定義的

 D.service判斷請求類型,決定是調用doGet仍是doPost方法

 

 

 

20.正則表達式中,表示匹配非數字字符的字符是(D)?

 A.\b

 B.\d

 C.\B

 D.\D

 

 

21.What is displayed when the following is executed;   A

double d1=-0.5;

System.out.println("Ceil d1="+Math.ceil(d1));

System.out.println("floor d1="+Math.floor(d1));

 

 A.Ceil d1=-0.0

floor d1=-1.0

 B.Ceil d1=0.0

floor d1=-1.0

 C.Ceil d1=-0.0

floor d1=-0.0

 D.Ceil d1=0.0

floor d1=0.0

 E.Ceil d1=0

floor d1=-1

題解:

1.Math.round():根據「round」的字面意思「附近、周圍」,能夠猜想該函數是求一個附近的整數,看下面幾個例子就明白。

小數點後第一位<5

正數:Math.round(11.46)=11

負數:Math.round(-11.46)=-11

 

小數點後第一位>5

正數:Math.round(11.68)=12

負數:Math.round(-11.68)=-12

 

小數點後第一位=5

正數:Math.round(11.5)=12

負數:Math.round(-11.5)=-11

總結:(小數點後第一位)大於五所有加,等於五正數加,小於五全不加。

 

2.Math.ceil():向上取整

例如:

Math.ceil(11.46)=Math.ceil(11.68)=Math.ceil(11.5)=12

Math.ceil(-11.46)=Math.ceil(-11.68)=Math.ceil(-11.5)=-11

 

3.Math.floor():向下取整

例如:

Math.floor(11.46)=Math.floor(11.68)=Math.floor(11.5)=11

Math.floor(-11.46)=Math.floor(-11.68)=Math.floor(-11.5)=-12

 

 

22.(多選)下面的Java賦值語句哪些是有錯誤的 (B F)

A. int i =1000;

B. float f = 45.0;

C. char s = ‘\u0639’;

D. Object o = ‘f’;

E. String s = "hello,world\0";

F. Double d = 100;

 

 

 

23.(多選)關於Java的一些概念,下面哪些描述是正確的:(   B F   )

A. 全部的Java異常和錯誤的基類都是java.lang.Exception, 包括java.lang.RuntimeException

B. 經過try … catch … finally語句,finally中的語句部分不管發生什麼異常都會獲得執行

C. java中全部的數據都是對象

D. Java經過垃圾回收回收再也不引用的變量,垃圾回收時對象的finallize方法必定會獲得執行

E. Java是跨平臺的語言,不管經過哪一個版本的Java編寫的程序都能在全部的Java運行平臺中運行

F. Java經過synchronized進行訪問的同步,synchronized做用非靜態成員方法和靜態成員方法上同步的目標是不一樣的

 

題解:

A:Java中全部錯誤和異常的父類是java.lang.Throwable

C:基本數據類型不是對象,不能用new的方法獲取,可是每一個基本數據類型都對應着封裝類型,這些封裝類型爲了解決基本數據類型面向對象用的。

D:Java垃圾回收器負責回收無用對象佔據的內存資源,但對象沒有使用new獲取了一塊特殊區域,這塊特殊區域的回收使用finallize()

F:Synchronized修飾非靜態方法,其實是對調用該方法的對象加鎖,俗稱「對象鎖」

Synchronized修飾靜態方法,其實是對該類對象加鎖,俗稱「類鎖」。

 

 

 

24.(多選)關於Java中的數組,下面的一些描述,哪些描述是準確的:(   A C F    )

 A.數組是一個對象,不一樣類型的數組具備不一樣的類

 B.數組長度是能夠動態調整的

 C.數組是一個連續的存儲結構

 D.一個固定長度的數組可相似這樣定義: int array[100]                 沒有這樣的定義

 E.兩個數組用equals方法比較時,會逐個便利其中的元素,對每一個元素進行比較                使用equals比較

 F.能夠二維數組,且能夠有多維數組,都是在Java中合法的

 

 

25.爲AB類的一個無形式參數無返回值的方法method書寫方法頭,使得使用類名AB做爲前綴就能夠調用它,該方法頭的形式爲(   A   )。

 

A. static  void  method( )

B. public  void  method( )

C. final  void  method( )

D. abstract  void  method( )

 

 

26.在程序代碼中寫的註釋太多,會使編譯後的程序尺寸變大。B

 A.正確

 B.錯誤

 

 

 

 

27.abstract和final能夠同時做爲一個類的修飾符。(B  )

 

 A.正確

 B.錯誤

 

 

28.分析如下代碼,說法正確的是(D)

public static void main(String[] args) {

     System.out.println(val());

 }

 

 public static int val() {

     int num = 5;

     try {

     num = num / 0;

 } catch (Exception e) {

     num = 10;

 } finally {

     num = 15;

 }

 return num;

 }

 

A. 運行時報錯

B. 程序正常運行,輸出值爲5

C. 程序正常運行,輸出值爲10

D. 程序正常運行,輸出值爲15

 

 

29.如下表達式的類型和值是什麼?(注意整數除法)(D)

 

-5 + 1/4 + 2*-3 + 5.0

 

A. int -3

B. int -4

C. double -5.5

D. double -6.0

 

30.關於JAVA的垃圾回收機制,下面哪些結論是正確?B

 A.程序能夠任意指定釋放內存的時間

 B.JAVA程序不能依賴於垃圾回收的時間或者順序

 C.程序可明確地標識某個局部變量的引用再也不被使用                  局部變量聲明在棧中,當函數調用完畢後自動清空棧,並非由jvm來回收的,jvm只負責回收堆中內存。

 D.程序能夠顯式地當即釋放對象佔有的內存

 

 

 

31.代碼行float t=5.1; int i=t; ,不正確的是 B

 A.代碼不能編譯

 B.代碼編譯, i被設置爲5            在t前面沒有增強制轉換

 C.第二行若改成 int i=(byte)t 則可編譯

 D.第一行若改成 float t=5.1f 則可編譯

 

 

 

32.下面有關jdbc statement的說法錯誤的是?C

 A.JDBC提供了Statement、PreparedStatement 和 CallableStatement三種方式來執行查詢語句,其中 Statement 用於通用查詢, PreparedStatement 用於執行參數化查詢,而 CallableStatement則是用於存儲過程

 B.對於PreparedStatement來講,數據庫可使用已經編譯過及定義好的執行計劃,因爲 PreparedStatement 對象已預編譯過,因此其執行速度要快於 Statement 對象」

 C.PreparedStatement中,「?」 叫作佔位符,一個佔位符能夠有一個或者多個值

 D.PreparedStatement能夠阻止常見的SQL注入式攻擊

 

 

 

33.以下代碼的 結果是什麼 ?  B

 

class Base {

    Base() {

    System.out.print("Base");

    }

}

public class Alpha extends Base {

    public static void main( String[] args ) {

        new Alpha();

        //調用父類無參的構造方法

        new Base();

    }

}

 

A. Base

B. BaseBase

C. 編譯失敗

D. 代碼運行但沒有輸出

E. 運行時拋出異常

 

 

34.關於訪問權限,說法正確的是? ( A)

 

 

A. 類A和類B在同一包中,類B有個protected的方法testB,類A不是類B的子類(或子類的子類),類A能夠訪問類B的方法testB

B. 類A和類B在同一包中,類B有個protected的方法testB,類A不是類B的子類(或子類的子類),類A不能夠訪問類B的方法testB

C. 訪問權限大小範圍:public > 包權限 > protected > private

D. 訪問權限大小範圍:public > 包權限 > private > protected

 

 

 

 

35.關於protected 修飾的成員變量,如下說法正確的是  A

A. 能夠被該類自身、與它在同一個包中的其它類、在其它包中的該類的子類所訪問

B. 只能被該類自己和該類的全部的子類訪問

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

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

 

 

題解:

(1)public:能夠被全部其餘類所訪問。

(2)private:只能被本身訪問和修改。

(3)protected:自身,子類及同一個包中類能夠訪問。

(4)default(默認):同一包中的類能夠訪問,聲明時沒有加修飾符,認爲是friendly。

 

 

 

36.下列不正確的 Java 語言標識符是( C)

 

A. Sky

B. $Computer

C. for                 關鍵字

D.NULL

 

 

37.如下哪一個類包含方法flush()?(B)

 

A. InputStream

B. OutputStream

C. A 和B 選項都包含

D. A  和B 選項都不包含

 

題解:

flush()函數強制將緩衝區中的字符流、字節流等輸出,目的是若是輸出流輸出到緩衝區完成後,緩衝區並無填滿,那麼緩衝區將會一直等待被填滿。因此在關閉輸出流以前要調用flush()。

 

 

38.關於 訪問權限說法正確 的是 ? (  B  )

 

A. 類定義前面能夠修飾public,protected和private

B. 內部類前面能夠修飾public,protected和private

C. 局部內部類前面能夠修飾public,protected和private

D. 以上說法都不正確

 

 

 

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

Thread t = new Thread() {

 

public void run() {

360DW();

}

};

 

t.run();

System.out.print("DW");

 

}

 

static void 360DW() {

 

System.out.print("360");

 

}   B

 A.DW

 B.360

 C.360DW

 D.都不輸出

 

 

 

40.java8中,下面哪一個類用到了解決哈希衝突的開放定址法    C

 A.LinkedHashSet

 B.HashMap

 C.ThreadLocal

 D.TreeMap

 

題解:

Threadlocalmap使用開放定址法解決hash衝突,hashmap使用鏈地址法解決hash衝突。

 

41(多選).如下哪些方法能夠取到http請求中的cookie值(B D)?

 A.request.getAttribute

 B.request.getHeader

 C.request.getParameter

 D.request.getCookies

 

題解:

連接:

1)Cookie[] getCookies()
返回一個數組,包含客戶端發送該請求的全部的 Cookie 對象。

 

2)Object getAttribute(String name)
以對象形式返回已命名屬性的值,若是沒有給定名稱的屬性存在,則返回 null。

 

3)String getHeader(String name)
以字符串形式返回指定的請求頭的值。Cookie也是頭的一種;

 

4)String getParameter(String name)
以字符串形式返回請求參數的值,或者若是參數不存在則返回 null。

 

 

 

42(多選).Java程序的種類有(B C D )

A. 類(Class)

B. Applet

C. Application

D. Servlet

 

43(多選).byte b1=1,b2=2,,b6,b8;

final byte b4=4,b5=6,b7;

b3=(b1+b2);  /*語句1*/

b6=b4+b5;    /*語句2*/

b8=(b1+b4);  /*語句3*/

b7=(b2+b5);  /*語句4*/

System.out.println(b3+b6);

下列代碼片斷中,存在編譯錯誤的語句是( B C D )

 A.語句2

 B.語句1

 C.語句3

 D.語句4

 

題解:

------------知識點------------

Java表達式轉型規則由低到高轉換

一、全部的byte,short,char型的值將被提高爲int型;

二、若是有一個操做數是long型,計算結果是long型;

三、若是有一個操做數是float型,計算結果是float型;

四、若是有一個操做數是double型,計算結果是double型;

五、被fianl修飾的變量不會自動改變類型,當2個final修飾相操做時,結果會根據左邊變量的類型而轉化。

--------------解析--------------

語句1錯誤:b3=(b1+b2);自動轉爲int,因此正確寫法爲b3=(byte)(b1+b2);或者將b3定義爲int;

語句2正確:b6=b4+b5;b四、b5爲final類型,不會自動提高,因此和的類型視左邊變量類型而定,即b6能夠是任意數值類型;

語句3錯誤:b8=(b1+b4);雖然b4不會自動提高,但b1仍會自動提高,因此結果須要強轉,b8=(byte)(b1+b4);

語句4錯誤:b7=(b2+b5); 同上。同時注意b7是final修飾,即只可賦值一次,便不可再改變

 

 

 

44.覆蓋(重寫)與重載的關係是(A)。

 

A. 覆蓋(重寫)只有出如今父類與子類之間,而重載能夠出如今同一個類中

B. 覆蓋(重寫)方法能夠有不一樣的方法名,而重載方法必須是相同的方法名

C. final修飾的方法能夠被覆蓋(重寫),但不能被重載

D. 覆蓋(重寫)與重載是同一回事

 

題解:
首先,重載和重寫都是多態的一種體現方式。重載是編譯期間的活動,重寫是運行期間的活動。
     其次,重載是在一個類中定義相同的名字的方法,方法的參數列表或者類型要互相不一樣,可是返回值類型不做爲是否重載的標準,能夠修改可見性;
     重寫是不一樣的,要求子類重寫基類的方法時要與父類方法具備相同的參數類型和返回值,可見性須要大於等於基類的方法

 

 

 

45.對接口的描述正確的是(A)

 

A. 一個類能夠實現多個接口

B. 接口能夠有非靜態的成員變量

C. 在jdk8以前,接口能夠實現方法

D. 實現接口的任何類,都須要實現接口的方法

 

 

 

46.覆蓋與重載的關係是( A)

 

 

 A.覆蓋只有發生在父類與子類之間,而重載能夠發生在同一個類中

 B.覆蓋方法和重載方法均可以不一樣名,也能夠同名

 C.final修飾的方法能夠被覆蓋,但不能被重載

 D.覆蓋與重載是同一回事

 

 

47.基本的Java語言函數存儲在如下哪一個java包中?(A)

 

A. java.lang

B. java.io

C. java.net

D. java.util

 

 

48.對於Java中異常的描述正確的是(D )

 

A. 用throws定義了方法可能拋出的異常,那麼調用此方法時必定會拋出此異常。

B. 若是try塊中沒有拋出異常,finally塊中的語句將不會被執行。

C. 拋出異常意味着程序發生運行時錯誤,須要調試修改

D. Java中的可不檢測(unchecked)異常可能來自RuntimeException類或其子類。

題解:
A錯 在調用此方法的時候 也能夠再次申明以將異常交由更高一級處理。
B錯 finally塊中的語句必定會被執行。除非catch塊中有System.exit(0)
C錯 拋出異常不必定是運行時異常,也有多是編譯時異常。
D對 運行時異常的特色是Java編譯器不會檢查它。

 

49.如下對選擇語句描述錯誤的是(A)

 

A. 根據某一條件重複執行一部分代碼直到知足終止條件爲止

B. 能夠根據條件控制程序流程,改變程序執行的順序

C. 選擇語句能夠嵌套使用

D. 當條件知足時就會執行相應的語句

 

 

50.Java程序中的類名稱必須與存放該類的文件名相同。B

A. 對

B. 錯

 

 

 

51.如下代碼執行後輸出結果爲( A)

public class Test {

    public static void main(String[] args) {

        System.out.println("return value of getValue(): " +

        getValue());

    }

     public static int getValue() {

         try {

             return 0;

         } finally {

             return 1;

         }

     }

 }

A. return value of getValue(): 1

B. return value of getValue(): 0

C. return value of getValue(): 0return value of getValue(): 1

D. return value of getValue(): 1return value of getValue(): 0

 

 

 

52.多重繼承的概念在Java中實現是經過以下哪些?(B)

I. 擴展兩個或多個類

II. 擴展一個類並實現一個或多個接口。

III. 實現兩個或更多接口。

 

A. 只有I &amp;II

B. 只有II &amp; III

C. 只有III

D. 都是

 

 

 

53.This調用語句必須是構造函數中的第一個可執行語句。B

A. 正確

B. 錯誤

 

 

 

54.下列關於構造函數的描述中,錯誤的是(D)

A. 構造函數能夠設置默認的參數

B. 構造函數在定義類對象時自動執行

C. 構造函數能夠是內聯函數

D. 構造函數不能夠重載

 

 

 

55.int i=5;

 

int s=(i++)+(++i)+(i--)+(--i);

 

s=( )//s 的值是什麼? E

 

 A.28

 B.25

 C.21

 D.26

 E.24

 F.23

 

 

56.子類要調用繼承自父類的方法,必須使用super關鍵字。B

A. 正確

B. 錯誤

 

 

 

57.下列代碼執行結果爲(A)

public static void main(String args[])throws InterruptedException{

            Thread t=new Thread(new Runnable() {

                public void run() {

                    try {

                        Thread.sleep(2000);

                    } catch (InterruptedException e) {

                        throw new RuntimeException(e);

                    }

                    System.out.print("2");

                }

            });

            t.start();

            

            t.join();

            System.out.print("1");

        }

 

A. 21

B. 12

C. 可能爲12,也可能爲21

D. 以上答案都不對

 

題解:

一、子類構造函數調用父類構造函數用super

二、子類重寫父類方法後,若想調用父類中被重寫的方法,用super

三、未被重寫的方法能夠直接調用。

 

 

58.下列不屬於Java語言性特色的是  D

A. Java致力於檢查程序在編譯和運行時的錯誤

B. Java能運行虛擬機實現跨平臺

C. Java本身操縱內存減小了內存出錯的可能性

D. Java還實現了真數組,避免了覆蓋數據類型的可能

 

題解:

Java致力於檢查程序在編譯和運行時的錯誤。
Java虛擬機實現了跨平臺接口
類型檢查幫助檢查出許多開發早期出現的錯誤。
Java本身操縱內存減小了內存出錯的可能性。
Java還實現了真數組,避免了覆蓋數據的可能。
注意,是避免數據覆蓋的可能,而不是數據覆蓋類型

 

 

59.下面程序段的時間複雜度是(B)

i = k = 0;

while( k < n ){

   i ++ ;

k += i ;

}

 

 A.O(n)

 B.O(n^1/2)

 C.O(n*i)

 D.O(n+i)

 

 

 

60.如下描述正確的是(B)?

 

 A.while循環語句的循環體至少執行1次

 B.do-while循環能夠寫成while循環的格式

 C.continue語句能夠出如今各類循環體中

 D.break語句不能夠出如今循環體內

 

 

 

61.下列不屬於java語言性特色的是B

 A.java能檢查程序在編譯和運行時的錯誤

 B.java能運行虛擬機實現跨平臺

 C.java本身操縱內存減小了內存出錯的可能性

 D.java還實現了真數組,避免了覆蓋數據的可能

 

 

 

62.關於如下代碼的說明,正確的是( C)

1. class StaticStuff

2. {

3. static int x=10;

4. static { x+=5;}

5. public static void main(String args[ ])

6. {

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

8. }

9. static { x/=3;}

10. }

 

 

 

 A.4行與9行不能經過編譯,由於缺乏方法名和返回類型

 B.9行不能經過編譯,由於只能有一個靜態初始化器

 C.編譯經過,執行結果爲:x=5

 D.編譯經過,執行結果爲:x=3

 

63(多選).java中Hashtable, Vector, TreeSet, LinkedList哪些線程是安全的?A B

 A.Hashtable

 B.Vector

 C.TreeSet

 D.LinkedList

 

題解:

HashMap是線程安全的HashMap

Vector是線程安全的ArrayList

TreeSet和LinkedList都不是線程安全的

 

 

 

64.(多選)對Collection和Collections描述正確的是 B D

 A.Collection是java.util下的類,它包含有各類有關集合操做的靜態方法

 B.Collection是java.util下的接口,它是各類集合結構的父接口

 C.Collections是java.util下的接口,它是各類集合結構的父接口

 D.Collections是java.util下的類,它包含有各類有關集合操做的靜態方法

 

 

65.(多選)經常使用的servlet包的名稱是? B D

 A.java.servlet

 B.javax.servlet

 C.servlet.http

 D.javax.servlet.http

 

 

66.(多選)如下哪一種方式實現的單例是線程安全的 A B C D

 A.枚舉

 B.靜態內部類

 C.雙檢鎖模式

 D.餓漢式

 

 

67.StringBuffer類對象建立以後能夠再修改和變更. A

 

A.正確

B.錯誤

 

 

68.下面關於繼承的描述正確的是  A

A.在Java中只容許單一繼承

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

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

D.Java的單一繼承使代碼不可靠

 

 

 

69.類Car裏面有個方法run(),若是直接用Car.run(),則方法run前面必須用的關鍵詞是?  (D )

 

 

A.class

B.final

C.public

D.static

 

題解:

被sataic聲明的爲靜態方法,能夠直接經過類名調用而不須要經過對象調用。

 

70.代碼

System.out.println(10%3*2);

將打印?B

A.1

B.2

C.4

D.6

 

 

 

71.下面有關java實例變量,局部變量,類變量和final變量的說法,錯誤的是? B

A.實例變量指的是類中定義的變量,即成員變量,若是沒有初始化,會有默認值。

B.局部變量指的是在方法中定義的變量,若是沒有初始化,會有默認值                  必需要初始化

C.類變量指的是用static修飾的屬性

D.final變量指的是用final 修飾的變量

 

 

 

72.若是一個接口Cup有個方法use(),有個類SmallCup實現接口Cup,則在類SmallCup中正確的是?  ( C)

A.void use() { …}

B.protected void use() { …}

C.public void use() { …}

D.以上語句均可以用在類SmallCup中

 

 

 

 

73.java接口的方法修飾符能夠爲?(忽略內部接口)       D

A.private

B.protected

C.final

D.abstract

 

 

 

 

74.已知以下類說明:

 

public class Test{

    private float f=1.0f;

    int m=12;

    static int n=1;

    public static void main(String args[]){

        Test t=new Test();

    }

}

以下哪些使用是正確的(D)

A.t.f = 1.0

B.this.n

C.Test.m

D.Test.n

 

 

 

75.觀察如下代碼:

 

class Car extends Vehicle

{

    public static void main (String[] args)

    {

        new  Car(). run();

    }

    private final void run()

    {

        System. out. println ("Car");

    }

}

class Vehicle

{

    private final void run()

    {

        System. out. println("Vehicle");

    }

}

 

下列哪些針對代碼運行結果的描述是正確的?A

A.Car

B.Vehicle

C.Compiler error at line 3

D.Compiler error at line 5

E.Exception thrown at runtime

 

 

 

正確:31

錯誤:44

 

 

 

下:

 

Java測試(下)

一、下面關於繼承的描述正確的是 A

  1. 在Java中只容許單一繼承
  2. 在Java中一個類只能實現一個接口
  3. 在Java中一個類不能同時繼承一個類和實現一個接口
  4. Java的單一繼承使代碼不可靠

 

二、下列說法哪一個正確( C )

A.  不須要定義類,就能建立對象
B.  對象中必須有數據域和方法
C.  數據域能夠是基本類型變量,也能夠是一個對象
D.  數據域必須是基本類型變量

 

三、關於 Socket 通訊編程,如下描述錯誤的是:( D)

A.  服務器端經過new ServerSocket()建立TCP鏈接對象
B.  服務器端經過TCP鏈接對象調用accept()方法建立通訊的Socket對象
C.  客戶端經過new Socket()方法建立通訊的Socket對象
D.  客戶端經過new ServerSocket()建立TCP鏈接對象
 
題解:
Client經過 new socket(ip,端口號)來創建與服務端鏈接

 

四、BufferedReader的父類是如下哪一個?D

  1. FilterReader
  2. InputStreamReader
  3. PipedReader
  4. Reader

 

五、給出如下代碼 

1

2

3

4

5

6

7

8

9

10

public class TestObj{

    public static void main(String[] args){

        Object o=new Object(){

            public boolean equals(Object obj){

                return true;

            }

        };

        System.out.println(o.equals(「Fred」));

    }

}

請給出結果:(B)

  1. 運行時拋出異常
  2. true
  3. Fred
  4. 第三行編譯錯誤

 

六、在第16行插入哪段代碼能夠得到一個Point對象的座標?(  D)

10. class Line {
11. public class Point { public int x,y;}
12. public Point getPoint() { return new Point(); }
13. }
14. class Triangle {
15. public Triangle() {
16. // insert code here
17. }
18. }

  1. Point p = Line.getPoint();
  2. Line.Point p = Line.getPoint();
  3. Point p = (new Line()).getPoint();
  4. Line.Point p = (new Line()).getPoint();

 

 

七、下列關於容器集合類的說法正確的是?C

  1. LinkedList繼承自List
  2. AbstractSet繼承自Set
  3. HashSet繼承自AbstractSet
  4. WeakMap繼承自HashMap

 

題解:

A.LinkedList是繼承自AbstractSequentialList(抽象類,實現了List接口)的,而且實現了List接口。因此A錯誤。

B.AbstractSet是實現了Set接口的,自己是一個抽象類。繼承自AbstractCollection(抽象類,實現了Collection接口)。因此B錯誤。

C.HashSet是繼承自AbstractSet,實現了Set接口。因此C正確。

D.WeakMap不存在於java集合框架的。只有一個叫作WeakHashMap(繼承自AbstractMap)。

 

 

八、(多選)關於多線程和多進程,下面描述正確的是(A C):

  1. 多進程裏,子進程可得到父進程的全部堆和棧的數據;而線程會與同進程的其餘線程共享數據,擁有本身的棧空間。
  2. 線程由於有本身的獨立棧空間且共享數據,全部執行的開銷相對較大,同時不利於資源管理和保護。
  3. 線程的通訊速度更快,切換更快,由於他們在同一地址空間內。
  4. 一個線程能夠屬於多個進程。

 

題解:
一、一個線程只能屬於一個進程,而一個進程能夠有多個線程,但至少有一個線程(一般說的主線程)。
二、資源分配給進程,同一進程的全部線程共享該進程的全部資源。
三、線程在執行過程當中,須要協做同步。不一樣進程的線程間要利用消息通訊的辦法實現同步。
四、處理機分給線程,即真正在處理機上運行的是線程。
五、線程是指進程內的一個執行單元,也是進程內的可調度實體。

 

九、(多選)在java中重寫方法應遵循規則的包括(B C)

  1. 訪問修飾符的限制必定要大於被重寫方法的訪問修飾符
  2. 能夠有不一樣的訪問修飾符
  3. 參數列表必須徹底與被重寫的方法相同
  4. 必須具備不一樣的參數列表

 

 

十、Java 語言中建立一個對象使用的關鍵字是(C)

A.  class
B.  interface
C.  new
D.  create

 

十一、欲構造ArrayList類的一個實例,此類實現了List接口,下列哪一個方法是正確的?

  1. ArrayList myList=new Object(B)
  2. List myList=new ArrayList()
  3. ArrayList myList=new List()
  4. List myList=new List()

 

十二、如下哪項不是java基礎類型(C)

  1. int
  2. boolean
  3. String
  4. Float

 

題解:

緣由:Java語言提供了八種基本類型。六種數字類型(四個整數型,兩個浮點型),一種字符類型,還有一種布爾型。
一、整數:包括int,short,byte,long
二、浮點型:float,double
三、字符:char
四、布爾:boolean


1三、已知 聲明並初始化二維數組 int a[ ][ ]={{1,2},{3,4},{5,6}} ,則 a[1][1] 的值爲(C)

  1. 1
  2. 2
  3. 4
  4. 5

 

1四、在Java中,一個類可同時定義許多同名的方法,這些方法的形式參數個數、類型或順序各不相同,傳回的值也能夠不相同。這種面向對象程序的特性稱爲C

  1. 隱藏
  2. 覆蓋
  3. 重載
  4. Java不支持此特性

 

1五、Java的Daemon線程,setDaemon( A)設置必需要?

  1. 在start以前
  2. 在start以後
  3. 先後均可以

 

題解:

setDaemon()方法必須在線程啓動以前調用,當線程正在運行時調用會產生異常。

 

1六、有這麼一段程序:

1

2

3

4

5

6

7

8

public class Test{ 

    public String name="abc"; 

    public static void main(String[] args){ 

        Test test=new Test(); 

        Test testB=new Test(); 

        System.out.println(test.equals(testB)+","+test.name.equals(testB.name)); 

    } 

}

請問以上程序執行的結果是(C)

  1. true,true
  2. true,false
  3. false,true
  4. false,false

1七、如下多線程對int型變量x的操做,哪幾個不須要進行同步(D)

  1. x=y;
  2. x++;
  3. ++x;
  4. x=1;

 

題解:

這個題只要看操做受不受多線程的影響,是否加鎖

A,由於y的初值不肯定,因此要加鎖

B和C卻須要執行2步操做,因此也須要加鎖

只有D的結果不受多線程影響

因此選ABC

 

 

1八、能夠把任何一種數據類型的變量賦給Object類型的變量。A

  1. 正確
  2. 錯誤

 

1九、事務隔離級別是由誰實現的?C

  1. Java應用程序
  2. Hibernate
  3. 數據庫系統
  4. JDBC驅動程序

 

20、類A1和類A2在同一包中,類A2有個protected的方法testA2,類A1不是類A2的子類(或子類的子類),類A1能夠訪問類A2的方法testA2。( A )

A.  正確
B.  錯誤

 

2一、

1

2

3

public interface IService {

String NAME="default";

}

與上面等價表示是哪一項(D)?

  1. public String NAME=」default」;
  2. public static String NAME=」default」;
  3. private String NAME=」default」;
  4. public static final String NAME=」default」;

 

2二、ArrayList和Vector主要區別是什麼?A

  1. Vector與ArrayList同樣,也是經過數組實現的,不一樣的是Vector支持線程的同步
  2. Vector與ArrayList同樣,也是經過數組實現的,不一樣的是ArrayList支持線程的同步
  3. Vector是經過鏈表結構存儲數據,ArrayList是經過數組存儲數據
  4. 上述說法都不正確

 

 

 

 

 

2三、面這條語句一共建立了多少個對象:String s="welcome"+"to"+360; A

  1. 1
  2. 2
  3. 3
  4. 4

 

2四、HashMap和HashTable的描述,錯誤的是?D

  1. 他們都實現了Map接口。
  2. HashMap非線程安全,在多個線程訪問Hashtable時,不須要本身爲它的方法實現同步,而HashMap就必須爲之提供額外同步。
  3. HashMap容許將null做爲一個entry的key或者value,而Hashtable不容許。
  4. 經過contains方法能夠判斷一個對象是否存在於HashMap或者Hashtable中。

 

2五、下列關於Java併發的說法中正確的是(B)

  1. CopyOnWriteArrayList適用於寫多讀少的併發場景
  2. ReadWriteLock適用於讀多寫少的併發場景
  3. ConcurrentHashMap的寫操做不須要加鎖,讀操做須要加鎖
  4. 只要在定義int類型的成員變量i的時候加上volatile關鍵字,那麼多線程併發執行i++這樣的操做的時候就是線程安全的了

 

題解:

A,CopyOnWriteArrayList適用於寫少讀多的併發場景

B,ReadWriteLock即爲讀寫鎖,他要求寫與寫之間互斥,讀與寫之間互斥,

   讀與讀之間能夠併發執行。在讀多寫少的狀況下能夠提升效率

C,ConcurrentHashMap是同步的HashMap,讀寫都加鎖

D,volatile只保證多線程操做的可見性,不保證原子性

 

 

2六、(多選)下面選項中,哪些是interface中合法方法定義?(A C D)

  1. public void main(String [] args);
  2. private int getSum();
  3. boolean setFlag(Boolean [] test);
  4. public float get(int x);

 

2七、覆蓋與重載的關係是(A)

A.  覆蓋只有發生在父類與子類之間,而重載能夠發生在同一個類中
B.  覆蓋方法和重載方法均可以不一樣名,也能夠同名
C.  final修飾的方法能夠被覆蓋,但不能被重載
D.  覆蓋與重載是同一回事

 

2八、在Java中,main()方法的返回值的類型是: C

A.  public
B.  static
C.  void
D.  String

 

 

2九、下面是findSum(int m.int n)方法的定義,方法調用findSum(1,5)的返回結果是(D )

 

int findSum(int m, int n){

    int sum=0;

    for(int i=m;i<=n;i++){

        sum+=i;

    }

    return sum;

}

  1. 1
  2. 5
  3. 10
  4. 15

 

30、在 java 中 , 一個類(B)

A.  能夠繼承多個類
B.  能夠實現多個接口
C.  在一個程序中只能有一個子類
D.  只能實現一個接口

 

3一、在某個類A中存在一個方法:void set(int x),如下不能做爲這個方法的重載的聲明的是(A)

A.  void set(int y)
B.  int set(int x,double y)
C.  double set(int x,int y)
D.  void set(int x,int y)

 

3二、執行下列程序的輸出結果爲(   D   )

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

public class Test {

 public static void main(String[] args) {

 String s1 = "HelloWorld";

 String s2 = new String("HelloWorld");

 if (s1 == s2) {

 System.out.println("s1 == s2");

 } else {

 System.out.println("s1 != s2");

 }

 if (s1.equals(s2)) {

 System.out.println("s1 equals s2");

 } else {

 System.out.println("s1 not equals s2");

 }

 }

 }

  1. s1 == s2
    s1 not equals s2
  2. s1 == s2
    s1 equals s2
  3. s1 != s2
    s1 not equals s2
  4. s1 != s2
    s1 equals s2

 

3三、如下那個數據結構是適用於"數據必須以相反的順序存儲而後檢索" ? (A)

A.  Stack
B.  Queue
C.  List
D.  Liink List

 

3四、下面哪一個Set類是排序的?C

  1. LinkedHashSet
  2. TreeSet
  3. HashSet
  4. AbstractSet

 

題解:

TreeSet天然排序,LinkedHashSet按添加順序排序

 

3五、String s = new String("xyz");建立了幾個StringObject?A

  1. 兩個或一個都有可能
  2. 兩個
  3. 一個
  4. 三個

 

3六、如下J2EE中經常使用的名詞解釋錯誤的是?B

  1. EJB容器:Enterprise java bean 容器
  2. JNDI:JAVA事務服務。提供各類分佈式事務服務。應用程序只需調用其提供的接口便可。
  3. JMS:JAVA消息服務。主要實現各個應用程序之間的通信。包括點對點和廣播。
  4. JAF:JAVA安全認證框架。提供一些安全控制方面的框架。

 

題解:

J2EE中經常使用的名詞解釋

1.web容器:給處於其中的應用程序組件(JSP,SERVLET)提供一個環境,使JSP,SERVLET直接和容器中的環境變量接接口互,沒必要關注其它系統問題。主要有WEB服務器來實現。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的接口嚴格遵照J2EE規範中的WEB APPLICATION 標準。咱們把遵照以上標準的WEB服務器就叫作J2EE中的WEB容器。

2.Web container:實現J2EE體系結構中Web組件協議的容器。這個協議規定了一個Web組件運行時的環境,包括安全,一致性,生命週期管理,事務,配置和其它的服務。一個提供和JSP和J2EE平臺APIs界面相同服務的容器。一個Web container 由Web服務器或者J2EE服務器提供。

3.EJB容器:Enterprise java bean 容器。更具備行業領域特點。他提供給運行在其中的組件EJB各類管理功能。只要知足J2EE規範的EJB放入該容器,立刻就會被容器進行高效率的管理。而且能夠經過現成的接口來得到系統級別的服務。例如郵件服務、事務管理。一個實現了J2EE體系結構中EJB組件規範的容器。 這個規範指定了一個Enterprise bean的運行時環境,包括安全,一致性,生命週期,事務, 配置,和其餘的服務。

4.JNDI:(Java Naming & Directory Interface)JAVA命名目錄服務。主要提供的功能是:提供一個目錄系統,讓其它各地的應用程序在其上面留下本身的索引,從而知足快速查找和定位分佈式應用程序的功能。

5.JMS:(Java Message Service)JAVA消息服務。主要實現各個應用程序之間的通信。包括點對點和廣播。

6.JTA:(Java Transaction API)JAVA事務服務。提供各類分佈式事務服務。應用程序只需調用其提供的接口便可。

7.JAF:(Java Action FrameWork)JAVA安全認證框架。提供一些安全控制方面的框架。讓開發者經過各類部署和自定義實現本身的個性安全控制策略。

8.RMI/IIOP:(Remote Method Invocation /internet對象請求中介協議)他們主要用於經過遠程調用服務。例如,遠程有一臺計算機上運行一個程序,它提供股票分析服務,咱們能夠在本地計算機上實現對其直接調用。固然這是要經過必定的規範才能在異構的系統之間進行通訊。RMI是JAVA特有的。RMI-IIOP出現之前,只有RMI和CORBA兩種選擇來進行分佈式程序設計。RMI-IIOP綜合了RMI和CORBA的優勢,克服了他們的缺點,使得程序員能更方便的編寫分佈式程序設計,實現分佈式計算。首先,RMI-IIOP綜合了RMI的簡單性和CORBA的多語言性(兼容性),其次RMI-IIOP克服了RMI只能用於Java的缺點和CORBA的複雜性(能夠不用掌握IDL)。

 

 

3七、從如下哪個選項中能夠得到Servlet的初始化參數? C

  1. Servlet
  2. ServletContext
  3. ServletConfig
  4. GenericServlet

3八、如下描述錯誤的一項是(C )?

A.程序計數器是一個比較小的內存區域,用於指示當前線程所執行的字節碼執行  到了第幾行,是線程隔離的
B.原則上講,全部的對象都是在堆區上分配內存,是線程之間共享的
C.方法區用於存儲JVM加載的類信息、常量、靜態變量,即便編譯器編譯後的代碼等數據,是線程隔離的
D.Java方法執行內存模型,用於存儲局部變量,操做數棧,動態連接,方法出口等信息,是線程隔離的
 
題解:

Java運行時內存

1. 程序計數器,線程私有。能夠看做是當前線程所執行的字節碼的行號指示器,字節碼解釋器工做時就是經過改變整個計數器的值來選取下一條須要執行的字節碼指令,分支、循環、跳轉、異常處理、線程恢復等功能。

因爲JVM的多線程是經過線程輪流切換並分配處理器執行時間的方式來實現的,在任何一個肯定的時刻,一個處理器(對於多核處理器來講是一個內核)都只會執行一條線程中的指令。所以爲了線程切換後能恢復到正確的執行位置,每條線程都須要一個獨立的程序計數器,各條線程之間計數器互不影響,獨立存儲,因此線程私有。

程序計數器是惟一一個在Java虛擬機規範中沒有規定任何OOM的區域。

2. Java虛擬機棧,線程私有。生命週期和線程相同。虛擬機棧描述的是Java方法執行的內存模型,每一個方法在執行的同時都會建立一個棧幀。每一個方法從調用到執行完成的過程,就對應着一個棧幀在虛擬機中入棧到出棧的過程。

3. 本地方法棧,線程私有。和虛擬機棧的區別就在於一個是爲了執行Java方法服務,一個是爲了虛擬機使用到的Native方法服務。

4. 堆,線程共享。存放對象實例和數組。

5. 方法區,線程共享。存放已經被JVM加載的類信息,常量,靜態變量,即時編譯器編譯後的代碼。

 

 

3九、如下哪項不屬於java類加載過程?B

  1. 生成java.lang.Class對象
  2. int類型對象成員變量賦予默認值
  3. 執行static塊代碼
  4. 類方法解析

 

40、Math.floor(-8.5)=(D )

  1. (float)-8.0
  2. (long)-9
  3. (long)-8
  4. (double)-9.0

 

4一、列哪一個選項是正確計算42度(角度)的餘弦值?C

  1. double d=Math.cos(42)
  2. double d=Math.cosine(42)
  3. double d=Math.cos(Math.toRadians(42))
  4. double d=Math.cos(Math.toDegrees(42))

 

4二、下列關於構造函數說法正確的是(C)

  1. 構造函數的返回值爲void
  2. 構造函數不能夠被重載
  3. 構造函數能夠是內聯函數
  4. 構造函數能夠沒有參數

 

4三、下面有關重載函數的說法中正確的是   C

  1. 重載函數必須具備不一樣的返回值類型
  2. 重載函數形參個數必須不一樣
  3. 重載函數必須有不一樣的形參列表
  4. 重載函數名能夠不一樣

 

4四、在Java中,一個類可同時定義許多同名的方法,這些方法的形式參數的個數、類型或順序各不相同,傳回的值也能夠不相同。這種面向對象程序特性稱爲(C)

  1. 隱藏
  2. 重寫
  3. 重載
  4. Java不支持此特性

 

4五、類聲明中,聲明一個類不能再被繼承的關鍵字是(C)

  1. public
  2. abstract
  3. final
  4. static

 

4六、Java Application 中的主類需包含main方法,如下哪項是main方法的正確形參?B

A.  String  args
B.  String[] args
C.  Char  arg
D.  StringBuffer[] args

 

4七、以下Java語句 double x=2.0; int y=4; x/=++y; 執行後,x的值是(C)

A.  0.5
B.  2.5
C.  0.4
D.  2.0

 

4八、如下代碼的輸出的正確結果是   D

1

2

3

4

5

6

public class Test {

public static void main(String args[]) {

String s = "祝你考出好成績!";

System.out.println(s.length());

}

}

 

  1. 24
  2. 16
  3. 15
  4. 8

4九、一個Java源程序文件中定義幾個類和接口,則編譯該文件後生成幾個以.class爲後綴的字節碼文件。A

  1. 正確
  2. 錯誤

 

50、下列哪一種異常是檢查型異常,須要在編寫程序時聲明?C

  1. NullPointerException
  2. ClassCastException
  3. FileNotFoundException
  4. IndexOutOfBoundsException

 

51. (多選)在java中重寫方法應遵循規則的包括(B C)

A.訪問修飾符的限制必定要大於被重寫方法的訪問修飾符

B.能夠有不一樣的訪問修飾符

C.參數列表必須徹底與被重寫的方法相同

D.必須具備不一樣的參數列表

 

52.(多選) final、finally和finalize的區別中,下述說法正確的有?(A B)

A.final用於聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。

B.finally是異常處理語句結構的一部分,表示老是執行。

C.finalize是Object類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法,能夠覆蓋此方法提供垃圾收集時的其餘資源的回收,例如關閉文件等。

D.引用變量被final修飾以後,不能再指向其餘對象,它指向的對象的內容也是不可變的

53.(多選) 下列說法哪一個正確(A C D)

A.abstract類只能用來派生子類,不能用來建立abstract類的對象。

B.final類不但能夠用來派生子類,也能夠用來建立final類的對象。

C.abstract不能與final同時修飾一個類。

D.abstract類定義中能夠沒有abstract方法。

 

54. 如下聲明合法的是(B)

A.default  String  s

B.public  final  static  native  int  w( )

C.abstract  double  d

D.abstract  final  double  hyperbolicCosine( )

55. 如有下列定義,下列哪一個表達式返回false?(B)

String s = "hello";

String t = "hello";

char c[] = {'h','e','l','l','o'} ;

A.s.equals(t);
B.t.equals(c);
C.s==t;
D.t.equals(new String("hello"));
 
題解:
A、D選項是對字符串內容的比較。JVM爲了減小字符串對象的重複建立,其維護了一個特殊的內存,這段內存被成爲字符串常量池。代碼中出現字面量形式建立字符串對象時,JVM首先會對這個字面量進行檢查,若是字符串常量池中存在相同內容的字符串對象的引用,則將這個引用返回,不然新的字符串對象被建立,而後將這個引用放入字符串常量池,並返回該引用。因此返回true。

C選項是引用地址的比較,同上也屬於常量池的同一個字符串地址,因此相等返回true。

 
 
56. 關於 JAVA 堆,下面說法錯誤的是(D)
A.全部類的實例和數組都是在堆上分配內存的
B.對象所佔的堆內存是由自動內存管理系統回收
C.堆內存由存活和死亡的對象,空閒碎片區組成
D.數組是分配在棧中的
 
題解:
數組是一種對象,全部的對象類都是在堆內存中,基本數據類型在棧內存中
 
57.java中,靜態變量static在不一樣線程的不一樣實例中地址是否同樣?他們儲存在什麼區域(C)
A.地址同樣,在堆棧區。
B.地址不同,在堆棧區。
C.地址同樣,在全局區。
D.地址不同,在全局區。
 
題解:

類信息、常量、靜態變量等數據儲存在方法區,只會在類加載的時候儲存一次,地址同樣。

由於方法區又稱做爲Non-Heap(非堆),直接把ABD都排除了,我也不知道全局區是個啥...

 
 
58. 若是要創建一個java.scut.computer的包,敘述正確的是?  (A )
A.只需在代碼中加入「package java.scut.computer;」一個語句,而且必須放在代碼的第一行
B.只需在代碼中加入「package java.scut;」一個語句
C.必須在代碼中加入「package java.scut;」和「package java.scut.computer;」兩個語句
D.在代碼中,不必定是第一句,只要是類定義前,加入package語句便可

59.transient變量和下面哪一項有關(A)?

A.Serializable
B.Cloneable
C.Runnable
D.Throwable
E.Comparable

60.下列哪一個說法是正確的(D)

A.ConcurrentHashMap使用synchronized關鍵字保證線程安全
B.HashMap實現了Collction接口
C.Array.asList方法返回java.util.ArrayList對象
D.SimpleDateFormat是線程不安全的

61.當咱們須要全部線程都執行到某一處,才進行後面的的代碼執行咱們可使用?A

A.CountDownLatch
B.CyclicBarrier
C.Semaphore
D.Future
 
題解:
CountDownLatch 是等待一組線程執行完,才執行後面的代碼。此時這組線程已經執行完。
CyclicBarrier 是等待一組線程至某個狀態後再同時所有繼續執行線程。此時這組線程還未執行完。
 

62.若是但願監聽TCP端口9000,服務器端應該怎樣建立socket?  B

A.new Socket("localhost",9000);
B.new ServerSocket(9000);
C.new Socket(9000);
D.new ServerSocket("localhost",9000);
 
題解:
客戶端:

ServerSocket (int port)

Creates a server socket, bound to the specified port.

 

服務端:

Socket(InetAddress address, int port)

Creates a stream socket and connects it to the specified port number at the specified IP address.

 

63.(多選)下列有關java構造函數敘述正確的是(C D)

A.構造器的返回值爲void類型
B.若是一個源文件中有多個類,那麼構造器必須與公共類同名
C.構造器能夠有0個,1個或一個以上的參數
D.每一個類能夠有一個以上的構造器

64.下列js可讓一個input的背景顏色變成紅色的是? A

A.inputElement.style.backgroundColor = 'red';
B.inputElement.backgroundColor = 'red';
C.inputElement.style.backgroundColor = '#0000';
D.inputElement.backgroundColor = '#0000';
65.如下js表達式返回false的是(C)
A.1==true
B.「」==false
C.false==null
D.null==undefined

66.下面哪條語句能夠獲取元素e相鄰的下一個元素(D)

A.e.next()
B.e.nextElement()
C.e.nextElementSibling()
D.e.nextSibling()

67.老王去年種了一塊菜地,今年他又新開發出了一塊比去年大的正方形菜地,這塊新地的捲心菜的產量比去年多211只。請問他今年總共可從這兩塊菜地上收穫多少隻捲心菜?(假設面積相等的菜地去年和今年的產量同樣)。 A

A.11235
B.9874
C.7934
D.8216
E.13186

68.一個包裏有5個黑球,10個紅球和17個白球。每次能夠從中取兩個球出來,放置在外面。那麼至少取_____A___次之後,必定出現過取出一對顏色同樣的球。

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

69.2個空瓶換1瓶水,1元錢買1瓶水,20元錢一共可以喝多少瓶水?(能夠朝老闆借水或者瓶子)D

A.19

B.20

C.30

D.40

70.下列關於修飾符混用的說法,錯誤的是( D)

A.abstract不能與final並列修飾同一個類
B.abstract 類中不建議有private的成員
C.abstract 方法必須在abstract類或接口中
D.static方法中能直接處理非static的屬性

71.方法一般存儲在進程中的哪一區(D)

A.堆區
B.棧區
C.全局區
D.方法區


72. Web程序中,當前用戶上下文信息應該保存在下面哪一個對象中(C)

A.page
B.request
C.session
D.Applicatio
73. 在類設計中,類的成員變量要求僅僅可以被同一package下的類訪問,請問應該使用下列哪一個修飾詞(D)
A.protected
B.public
C.private
D.不須要任何修飾詞

74.JVM內存不包含以下哪一個部分(D )

A.Stacks
B.PC寄存器
C.Heap
D.Heap Frame
75.關於訪問權限,說法正確的是? (A )
A.類A和類B在同一包中,類B有個protected的方法testB,類A不是類B的子類(或子類的子類),類A能夠訪問類B的方法testB
B.類A和類B在同一包中,類B有個protected的方法testB,類A不是類B的子類(或子類的子類),類A不能夠訪問類B的方法testB
C.訪問權限大小範圍:public > 包權限 > protected > private
D.訪問權限大小範圍:public > 包權限 > private > protected

 

 

 

正確:38

錯誤:37

相關文章
相關標籤/搜索