Java日常練習題,每天進步一點點(59)

1、java7後關鍵字 switch 支不支持字符串作為條件:()

正確答案:A

A 支持

B 不支持

題解:
1、 選A 看瞭一下,這個題大傢都說的不是很全面。 switch(exp),在JDK7之前,隻能是byte、short、char、int或者對應的包裝類,或者枚舉常量(內部也是由整型或字符類型實現)。 為什麼必須是這些呢,因為其實exp隻是對int型支持的,其他都是因為可以自動拆卸或者自動向上轉型到int,所以才可以。 到瞭JDK7的時候,String被引入瞭,為什麼String能被引入呢? 其實本質上還是對int類型值得匹配。 原理如下,通過對case後面得String對象調用hashCode方法,得到一個int類型得hash值,然後用這個hash值來唯一標識這個case。那麼當匹配時,首先調用exp的hashCode,得到exp的hash值,用這個hash值來匹配所有case,如果沒有匹配成功,就說明不存在;如果匹配成功瞭,接著會調用字符串的equals方法進行匹配。(hash值一致,equals可不一定返回的就是true)。 所以,exp不能為null,cas子句使用的字符串也不能為null,不然會出現空指針異常。
2、 你問我支持不支持,我當然是支持的。

2、下列選項中,用於在定義子類時聲明父類名的關鍵字是:( )

正確答案:C

A interface

B package

C extends

D class 

題解:
1、C A是接口 B是包 D是類
2、 愣是沒看懂題目
3、 這道題不用解釋

3、關於finally,下面哪個描述正確? ()

正確答案:B

A 在catch塊之前但在try塊之後執行finally塊

B finally塊會被執行無論是否拋出異常

C 隻有在執行catch塊之後才執行finally塊

D 都不是

題解:
1、結果 即使在try中產生異常也會執行。 第二種特殊情況: 結果 即使在try中return也會執行finally中的結果 第三種特殊情況:
2、 如果try或者catch裡有 System.exit(0);這段,就不會執行finally瞭吧 System.exit(status);這個方法是用來結束當前正在運行中的java虛擬機。
3、 finally塊執行的前提是try語句塊執行

4、有以下程序片段且Interesting不是內部類,下列哪個選項不能插入到行1。( ) 1. 2.public class Interesting{ 3. // 省略代碼 4.}

正確答案:D

A import java.awt.*;

B package mypackage;

C class OtherClass{ }

D public class MyClass{ }

題解:
1、在同一個java原文件中,可以有多個class類,但是隻有有一個公共的 public class
2、 我以為是插入到省略代碼處瞭,尷尬
3、 選D 一個.java文件中,可以有多個類,包括內部類和外部類。考慮到內部類的原因,一個.java文件可以中可以有多個public類。 但是對於外部類而言,一個.java文件必須隻能有一個public類,同時這個類的類名必須和.java的文件名一致(包括大小寫)。

5、

public boolean returnTest()
{
try
{
return true;
}
catch (Exception e)
{
}
finally
{
return false;
}
}

以上代碼返回值是什麼?

正確答案:B

A true

B false

題解:
1、一旦在finally塊中使用瞭return或throw語句,將會導致try塊,catch塊中的return,throw語句失效 摘自《瘋狂Java 講義》(第三版)P366
2、 try說我要return true結束運行瞭,finally你有啥事沒做的趕緊搞定哈,做完我好return。 finally說我這邊也就return個false,結束運行。咦?好像你的return,沒用上啊。我這邊先結束運行瞭。。。
3、 參考這裡 http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.10.2.5 我的理解: 1、首先執行到try裡的return,但是有finally語句還要執行,於是先執行return後面的語句,例如(x++),把要返回的值保存到局部變量。 2、執行finally語句的內容,其中有return語句,這時就會忽略try中的return,直接返回。 測試代碼: public static int returnTestInt(){ int a = 0; try { return a++; } catch (Exception e) {
} finally { return ++a; }
} 上面的代碼,在我的機器上返回結果是2. 於是本題就很簡單瞭,選擇false。

6、將類的成員的訪問權限設置為默認的,則該成員能被( )

正確答案:A

A 同一包中的類訪問

B 其它包中的類訪問

C 所有的類訪問

D 所有的類的子類訪問

題解:
1、訪問修飾符權限如下所示: 訪問修飾符的權限常容易搞混,特別是default和protected這兩種的訪問權限,於是使用簡化記憶的方式(訪問范圍有小到大):私下(private)裡友好(friendly),才能更好地保護(protected)公眾(public),通過這種方式,記憶幾遍之後就快速準確地解決瞭這種題型。 具體的說明如下: private使用范圍僅限本類中 ; protected使用范圍為含繼承關系的類中(子類可以使用父類); 什麼都不寫叫友好類,默認是本包中; public特別隨意,包內包外,類內類外都可訪問 。 而default和protected老有人記不住,隻要記住protected一個特點是隻要子類都能訪問,不管在不在一個包即可。
2、 默認權限為當前類和同一包,子孫類不能訪問,其他包更不能訪問
3、 默認訪問權限為同一包

7、如果一個list初始化為{5,3,1},執行以下代碼後,其結果為()? nums.add(6); nums.add(0,4); nums.remove(1);

正確答案:B

A 5

B 3

C 1

D 6

E 4

F 3

G 1

H 6

I 4

J 3

K 6

L 5

M 3

N 6

題解:
1、初始化為{5
2、3
3、1} nums.add(6)後list為{5
4、3
5、1
6、6} nums.add(0
7、4)是在0號索引上添加數字4得到list為{4
8、5
9、3
:、1
;、6} nums.remove(1)是將1號索引上的5進行remove得到list為{4
<、3
=、1
、6}
?、 這裡的參數默認為index
list.remove(1); 但是list中有remove(Object)方法,若想使用該方法,需要這樣操作 Integer one = 1; list.remove(one);

8、下面有關servlet service描述錯誤的是?

正確答案:B

A 不管是post還是get方法提交過來的連接,都會在service中處理

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

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

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

題解:
1、 doget/dopost與Http協議有關,是在 javax.servlet.http.HttpServlet 中實現的
2、 GenericServlet 抽象類 給出瞭設計 servlet 的一些骨架,定義瞭 servlet 生命周期,還有一些得到名字、配置、初始化參數的方法,其設計的是和應用層協議無關的

9、關於訪問權限說法正確 的是 ? ( )

正確答案:B

A 外部類前面可以修飾public

Bprotected和private

C 成員內部類前面可以修飾public

Dprotected和private

E 局部內部類前面可以修飾public

Fprotected和private

G 以上說法都不正確

題解:
1、private default protected public 同一個類中 √ √ √ √ 同一個包中 √ √ √ 子類中 √ √ 全局范圍內 √ ( 1 )對於外部類而言,它也可以使用訪問控制符修飾,但外部類隻能有兩種訪問控制級別: public 和默認。因為外部類沒有處於任何類的內部,也就沒有其所在類的內部、所在類的子類兩個范圍,因此 private 和 protected 訪問控制符對外部類沒有意義。 ( 2 )內部類的上一級程序單元是外部類,它具有 4 個作用域:同一個類( private )、同一個包( protected )和任何位置( public )。 ( 3 ) 因為局部成員的作用域是所在方法,其他程序單元永遠不可能訪問另一個方法中的局部變量,所以所有的局部成員都不能使用訪問控制修飾符修飾。
2、 1.類指外部類,最大的類,修飾符有public(表示該類在項目所有類中可以被導入),default(該類隻能在同一個package中使用)
3、abstract
4、final 2.內部類指位於類內部但不包括位於塊、構造器、方法內,且有名稱的類,修飾符有public
5、private
6、protected訪問控制符,也可以用static
7、final關鍵字修飾,public和private比較簡單,一個表示所有可以被所有類訪問,一個表示隻能被自身訪問,protected修飾的成員類可以被同一個包中的類和子類訪問。而default修飾的成員類隻能被同一個包中的類訪問。 3.局部內部類指位於塊、構造器、方法內的有名稱類,最多隻能有final修飾 參考:http://blog.csdn.net/a327369238/article/details/52780442
8、 可以把局部內部類當做一個局部變量,所以它是不需要加任何修飾符的 局部內部類前不能用修飾符public和private
9、protected 內部類就隨意瞭。

10、在Java圖形用戶界面編程中,如果需要顯示信息,一般是使用__________類的對象來實現。

正確答案:A

A JLabel

B JButton

C JTextArea

D JtextField

題解:
1、四個選項都是Swing組件。JTextField輸入單行文本,JTextArea輸入多行文本,JButton顯示按鈕,JLebel提示信息
2、 顯示信息和提示信息能一樣嗎?啊?一樣嗎?
3、 JTextField單行文本 JTextArea多行文本 JButton按鍵顯示 JLable顯示標簽 信息

答案匯總:

1、正確答案:A

2、正確答案:C

3、正確答案:B

4、正確答案:D

5、正確答案:B

6、正確答案:A

7、正確答案:B

8、正確答案:B

9、正確答案:B

10、正確答案:A

總結

本篇文章就到這裡瞭,希望能給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: