天天看點

Java 專項練習【21- 30】(每日精進系列)

在程式代碼中寫的注釋太多,會使編譯後的程式尺寸變大。

A、正确

B、錯誤

解析

我們使用

javac

來編譯代碼,使用

javadoc

來識别注釋,兩者之間是互不影響的。

參考答案

B

以下二維數組聲明合法的是( )

A、

char[2][3] ch = new char[][]

B、

char[2][] ch = new char[][3]

C、

char[][] ch = new char[2][3]

D、

char[][] ch = new [2]char[3]

解析

Java 中,當我們定義一個數組時,指派符号左側是不能出現數字的,是以排除 A、B。而要定義一個二位數組,定義的格式如下:

type[][] typeName = new type[typeLength1][typeLength2];           

複制

一般

typeLength1

typeLength2

都是要給出的,而且必須是正整數。當然,我們也可以隻給出

typeLength1

,而不用給出

typeLength2

type[][] typeName = new type[typeLength1][];           

複制

參考答案

C

以下程式的執行結果是:

static boolean foo(char c)
{
    System.out.print(c);
    return true;
}

public static void main(String[] args) {
    int i =0;
    for(foo('A');foo('B')&&(i<2);foo('C'))
    {
        i++;
        foo('D');
    }
}           

複制

A、ABDCBDCB

B、ABCDABCD

C、編譯時出錯

D、運作時抛出異常

解析

主要還是考察

for

循環的三條語句的執行順序。

for(循環開始條件; 判斷條件; 循環後條件){
	// 循環體
}           

複制

首先執行循環開始條件,然後執行是否滿足判斷條件,滿足則執行循環體,然後再執行循環後條件,然後再次判斷是否滿足判斷條件,直到不滿足;不滿足則直接跳出

for

循環。

參考答案

A

Java 如何傳回 request 範圍記憶體在的對象?

A、request.getRequestURL()

B、request.getAttribute()

C、request.getParameter()

D、request.getWriter()

解析

request.getAttribute()

方法傳回

request

範圍記憶體在的對象;

request.getParameter()

方法是擷取

http

送出過來的資料;

getAttribute

是傳回對象;

getParameter

傳回字元串。

參考答案

B

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

A、正确

B、錯誤

解析

對于子類的構造函數,要調用父類構造函數時,需要使用

super

子類重寫父類方法後,如果要調用父類中被重寫的方法,此時也需要使用

super

而子類要調用父類中未被重寫的方法時,直接使用

super

關鍵字調用即可。

參考答案

B

下面程式的輸出結果是什麼。

public class A2{ 
    public static void main(String[] args){
        int[] a={2,4,6,8,3,6,9,12};
        doSomething(a,0,a.length-1);
        for(int i=0;i<=a.length-1;i++)
            System.out.print(a[i]+" ");
    } 
    private static void doSomething(int[] a,int start,int end){
        if(start<end){
            int p=core(a,start,end);
            doSomething(a,start,p-1);
            doSomething(a,p+1,end);
        }
    }
    private static int core(int[] a,int start,int end)
    {
        int x=a[end];
        int i=start;
        for(int j=start;j<=end-1;j++){
            if(a[j]>=x){
                swap(a,i,j);
                i++;//交換了幾次 
            }
        }//把最大的放到最後
        swap(a,i,end);//把最大的放到i的位置 
        return i;
    } 

    private static void swap(int[] a,int i,int j) 
    {
        int tmp=a[i];
        a[i]=a[j];
        a[j]=tmp;
    }
}            

複制

A、找到最大值

B、找到最小值

C、從大到小的排序

D、從小到大的排序

解析

思想類似于快速排序,總是以最後一個數作為分界嶺,比它大的放前面,比它小的放後面,然後遞歸分界嶺左右兩個區間。

參考答案

C

下面哪個不屬于 HttpServletResponse 接口完成的功能?

A、設定 HTTP 頭标

B、設定 cookie

C、讀取路徑資訊

D、輸出傳回資料

解析

設定 HTTP 頭标:

setHeader()

設定

cookie

addCookie()

讀取路徑資訊是

request

的功能。

輸出傳回資料

getOutputStream().write()

參考答案

C

ServletConfig 接口預設是哪裡實作的?

A、Servlet

B、GenericServlet

C、HttpServlet

D、使用者自定義 servlet

解析

Java 專項練習【21- 30】(每日精進系列)

參考答案

B

以下表達式中,正确的是()

A、

byte i = 128

B、

boolean i = null

C、

long i = 0xfffL

D、

double i = 0.9239d

解析

對于 A,

byte

其範圍是

-128 ~ 127

,是以 A 越界。

對于 B,

boolean

的值隻有

true

false

對于 C,使用十六進制表示,未越界,是以是可以的。

對于 D,為了區分

float

double

的差別,我們一般推薦在

double

類型的數值之後加上

d

字母。

參考答案

C、D

下面關于面向對象的一些了解哪些是錯誤的( )

A、面向對象的最重要的特性是支援繼承、封裝和多态

B、系統設計應該遵循開閉原則,系統應該穩定不不可修改,但應支援通過繼承、組合等方式進行擴充

C、函數式的語言必然是面向對象的語言

D、面向對象設計時,每個類的職責應該單一,不要再一個類中引入過多的接口

E、過程式語言和面向對象的語言各有其優勢,過程式語言更加靈活,面向對象語言更加強調抽象和封裝

F、Java 和 C++ 都是靜态類型的面向對象程式設計語言

解析

面向對象的三大特性:繼承、封裝、多态。

動态類型語言是指在運作期間才去做資料類型檢查的語言,也就是說,在用動态類型的語言程式設計時,永遠也不用給任何變量指定資料類型,該語言會在你第一次指派給變量時,在内部将資料類型記錄下來。

靜态類型語言與動态類型語言剛好相反,它的資料類型是在編譯其間檢查的,也就是說在寫程式時要聲明所有變量的資料類型。

C/C++ 是靜态類型語言的典型代表,其他的靜态類型語言還有 C#、JAVA 等。

參考答案

C

總結

以上所有題目整理自牛客網