1 下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是__A____。
A、順序存儲的有序線性表 B、線性鏈表 C、二叉鏈表 D、有序線性鏈表
解析:二分法查找只適用于順序存儲的有序表。在此所說的有序表是指線性表中的元素按值非遞減排列(即從小到大,但允許相鄰元素值相等)。
2 在軟件設(shè)計(jì)中,不屬于過程設(shè)計(jì)工具的是__D____。
A、PDL(過程設(shè)計(jì)語言) B、PAD圖 C、N-S圖 D、DFD圖
解析:軟件設(shè)計(jì)工具包括:程序流程圖、N-S、PAD、HIPO,判定表,PDL(偽碼)。而DFD(數(shù)據(jù)流圖)屬于結(jié)構(gòu)化分析工具。
3 在switch(expression)語句中,expression的數(shù)據(jù)類型不能是__A____。
A、double B、char C、byte D、short
解析:表達(dá)式expression只能返回這個幾種類型的值:int、byte、short和char。多分支語句把表達(dá)式返回的值依次與每個case子句中的值相比較,如果遇到匹配的值,則執(zhí)行該case子句后的語句序列。
4 下列敘述中,錯誤的是__D____。
A、父類不能替代子類 B、子類能夠替代父類 C、子類繼承父類 D、父類包含子類
5 通過繼承實(shí)現(xiàn)代碼復(fù)用:
Java中所有的類都是通過直接或間接地繼承java.lang.Object類得到的。繼承而得到的類稱為子類,被繼承的類稱為父類。子類不能繼承父類中訪問權(quán)限為private的成員變量和方法,子類可以重寫父類的方法,及命名與父類同名的成員變量。
子類通過隱藏父類的成員變量和重寫父類的方法,把父類的狀態(tài)和行為改變?yōu)樽陨淼臓顟B(tài)和行為。注意:子類中重寫的方法和父類中被重寫的方法要具有相同的名字,相同的參數(shù)表和相同的返回類型,只是函數(shù)體不同。
由于子類繼承了父類所有的屬性(私有的除外),所以子類對象可以作為父類對象使用。程序中凡是使用父類對象的地方,都可以用子類對象來代替。一個對象可以通過引用子類的實(shí)例來調(diào)用子類的方法。
java運(yùn)行時系統(tǒng)根據(jù)調(diào)用該方法的實(shí)例,來決定調(diào)用哪個方法。對子類的一個實(shí)例,如果子類重寫了父類的方法,則運(yùn)行時系統(tǒng)調(diào)用子類的方法;如果子類繼承了父類的方法(未重寫),則運(yùn)行時系統(tǒng)調(diào)用父類的方法。
6 自定義表格類中的model部分應(yīng)實(shí)現(xiàn)的接口是___A___。
A、AbstractTableModel B、JTable C、TableModel D、TableModelable
7 下列代碼中,將引起編譯錯誤的行是__B____。
1)public class Exercise{
2) public static void main(String args[]){
3) float f=0.0;
4) f+=1.0;
5) }
6) }
A、第2行 B、第3行 C、第4行 D、第6行
解析:float定義變量賦值時,需要在數(shù)值后面加f以標(biāo)識它為浮點(diǎn)型,讓系統(tǒng)知道該給它精確到多少位。
8 下列關(guān)于Java多線程并發(fā)控制機(jī)制的敘述中,錯誤的是___B___。
A、Java中對共享數(shù)據(jù)操作的并發(fā)控制是采用加鎖技術(shù)
B、線程之間的交互,提倡采用suspend()/resume()方法
C、共享數(shù)據(jù)的訪問權(quán)限都必須定義為private
D、Java中沒有提供檢測與避免死鎖的專門機(jī)制,但應(yīng)用程序員可以采用某些策略防止死鎖的發(fā)生
解析:
1)Java中對共享數(shù)據(jù)操作的并發(fā)控制是采用傳統(tǒng)的封鎖技術(shù)。一個程序中單獨(dú)的、并發(fā)的線程對同一個對象進(jìn)行訪問的代碼段,稱為臨界區(qū)。在Java語言中,臨界區(qū)可以是一個語句塊或是一個方法,并且用"synchronized"關(guān)鍵字標(biāo)識。Java平臺將每個由synchronized(Object)語句指定的對象設(shè)置一個鎖,稱為對象鎖。
2)共享數(shù)據(jù)的所有訪問都必須作為臨界區(qū),使用"synchronized"進(jìn)行加鎖控制。用"synchronized"保護(hù)的數(shù)據(jù)也必須是私有的,使線程不能直接訪問這些數(shù)據(jù),必須通過對象的方法。
3)Java中沒有檢測與避免死鎖的專門機(jī)制,因此完全由程序進(jìn)行控制,防止死鎖的發(fā)生。
4)有時,某個線程進(jìn)入"synchronized"塊后,共享數(shù)據(jù)的狀態(tài)并不一定滿足線程的需要,它要等待其他線程將共享數(shù)據(jù)改變?yōu)樗枰臓顟B(tài)后才能繼續(xù)執(zhí)行,但由于此時它占有了該對象的鎖,其他線程無法對共享數(shù)據(jù)進(jìn)行操作,為此Java引入wait()和notify(),這兩個方法使java.lang.object類的方法,使實(shí)現(xiàn)線程通信的兩個方法。
計(jì)算機(jī)等級考試二級Java練習(xí)題及解析匯總
希望與更多計(jì)算機(jī)等級考試的網(wǎng)友交流,請進(jìn)入計(jì)算機(jī)等級考試論壇
更多信息請?jiān)L問:考試吧計(jì)算機(jī)等級考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |