2025年計(jì)算機(jī)Java語(yǔ)言程序設(shè)計(jì)考試試題
無論是身處學(xué)校還是步入社會(huì),我們或多或少都會(huì)接觸到考試題,借助考試題可以檢驗(yàn)考試者是否已經(jīng)具備獲得某種資格的基本能力。大家知道什么樣的考試題才是好考試題嗎?以下是小編精心整理的計(jì)算機(jī)Java語(yǔ)言程序設(shè)計(jì)考試試題,歡迎大家借鑒與參考,希望對(duì)大家有所幫助。
計(jì)算機(jī)Java語(yǔ)言程序設(shè)計(jì)考試試題 1
一、單選題:(每題1分)下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)的標(biāo)記寫在題干后的括號(hào)內(nèi)。
1.下列語(yǔ)句序列執(zhí)行后,k 的值是( B )。
int m=3, n=6, k=0;
while( (m++) < ( -- n) ) ++k;
A) 0 B) 1 C) 2 D) 3
2.設(shè) i、j 為int型變量名,a 為int型數(shù)組名,以下選項(xiàng)中,正確的賦值語(yǔ)句是( B )。
A) i = i + 2 B) a[0] = 7;
C) i++ - --j; D) a(0) = 66;
3.Java語(yǔ)言的類間的繼承關(guān)系是( B )。
A) 多重的 B) 單重的 C) 線程的 D) 不能繼承
4.設(shè)有定義 int i = 6 ;,則執(zhí)行以下語(yǔ)句后,i 的值為( C )。
i += i - 1;
A) 10 B) 121 C) 11 D) 100
5.下列選項(xiàng)中,用于在定義子類時(shí)聲明父類名的關(guān)鍵字是( C )。
A)interface B) package C) extends D) class
6.若已定義 byte[ ] x= {11,22,33,-66} ;
其中0≤k≤3,則對(duì)x數(shù)組元素錯(cuò)誤的引用是( C )。
A) x[5-3] B) x[k] C) x[k+5] D) x[0]
7.下列語(yǔ)句序列執(zhí)行后,ch1 的值是( B )。
char ch1=A,ch2=W;
if(ch1 + 2 < ch2 ) ++ch1;
A) A B) B C) C D) B
8.下列語(yǔ)句序列執(zhí)行后,i 的值是( D )。
int i=8, j=16;
if( i-1 > j ) i--; else j--;
A) 15 B) 16 C) 7 D) 8
9.下列語(yǔ)句序列執(zhí)行后,k 的值是( C )。
int i=10, j=18, k=30;
switch( j - i )
{ case 8 : k++;
case 9 : k+=2;
case 10: k+=3;
default : k/=j;
}
A) 31 B) 32 C) 2 D) 33
10.下面語(yǔ)句執(zhí)行后,i 的值是( B )。
for( int i=0, j=1; j < 5; j+=3 ) i=i+j;
A) 4 B) 5 C) 6 D) 7
二、填空題:(每空1分)
1. 構(gòu)造函數(shù)_沒__有返回值。
2. Java語(yǔ)言中的浮點(diǎn)型數(shù)據(jù)根據(jù)數(shù)據(jù)存儲(chǔ)長(zhǎng)度和數(shù)值精度的不同,進(jìn)一步分為float和 ___ double _______兩種具體類型。
3. 創(chuàng)建類對(duì)象的運(yùn)算符是__ new。
4. 當(dāng)整型變量n的值不能被13除盡時(shí),其值為 false 的Java語(yǔ)言表達(dá)式是__n%13==0___________ 。
5. 在Java語(yǔ)言中,所有的數(shù)組都有一個(gè)lenght屬性,這個(gè)屬性存儲(chǔ)了該數(shù)組的__元素個(gè)數(shù)。
6. 定義類就是定義一種抽象的______父類______,它是所有具有一定共性的對(duì)象的抽象描述。
7. 在Java語(yǔ)言中,使用__平臺(tái)無關(guān)___、___java虛擬機(jī)___等技術(shù),實(shí)現(xiàn)軟件重用。
8. 表達(dá)式3/6 * 5的計(jì)算結(jié)果是____0____ 。
三、程序分析:(每題4分)
1. 下面是一個(gè)排序的程序:
import java.io.*;
public class Test56_Sort
{
public static void main(String args[ ])
{
int[] a={42,99,5,63,95,36,2,69,200,96};
System.out.println(排序前的數(shù)據(jù)序列:);
ShowArray(a);
Sort(a);
System.out.println(排序后的數(shù)據(jù)序列:);
ShowArray(a);
}
public static void Sort(int[] x)
{
int w;
for(int i=1; i
{
for(int j=0; j
if(x[j]>x[j+1])
{ w=x[j]; x[j]=x[j+1]; x[j+1]=w; }
/* if(i==1||i==2) ShowArray(x);
if(i==2) break; */
}
}
public static void ShowArray(int b[])
{
for(int i=0; i
System.out.print("b[i"+i+"]=" +b[i]);
System.out.println( );
}
}
問題: 如果將方法Sort( )中的一對(duì)注釋符(/* */)去掉,程序輸出的'結(jié)果是什么?
排序前的數(shù)據(jù)序列:
b[0]=42b[1]=99b[2]=5b[3]=63b[4]=95b[5]=36b[6]=2b[7]=69b[8]=200b[9]=96
b[0]=42b[1]=5b[2]=63b[3]=95b[4]=36b[5]=2b[6]=69b[7]=99b[8]=96b[9]=200
b[0]=5b[1]=42b[2]=63b[3]=36b[4]=2b[5]=69b[6]=95b[7]=96b[8]=99b[9]=200
排序后的數(shù)據(jù)序列:
b[0]=5b[1]=42b[2]=63b[3]=36b[4]=2b[5]=69b[6]=95b[7]=96b[8]=99b[9]=200
2. 請(qǐng)寫下程序的輸出結(jié)果:
public class Test52
{
String str1="Hello, Java world! ";
String str2="Hello, students!" ;
public static void main(String args[])
{
System.out.print(str1);
System.out.println(str2);
}
}
輸出結(jié)果:
四、問答題:(每題5分,)
1. Java的接口和C++的虛類的相同和不同處。
由于Java不支持多繼承,而有可能某個(gè)類或?qū)ο笠褂梅謩e在幾個(gè)類或?qū)ο罄锩娴姆椒ɑ驅(qū)傩,現(xiàn)有的單繼承機(jī)制就不能滿足要求。與繼承相比,接口有更高的靈活性,因?yàn)榻涌谥袥]有任何實(shí)現(xiàn)代碼。當(dāng)一個(gè)類實(shí)現(xiàn)了接口以后,該類要實(shí)現(xiàn)接口里面所有的方法和屬性,并且接口里面的屬性在默認(rèn)狀態(tài)下面都是 public static,所有方法默認(rèn)情況下是public.一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。
2. 垃圾回收的優(yōu)點(diǎn)和原理。并考慮2種回收機(jī)制。
Java語(yǔ)言中一個(gè)顯著的特點(diǎn)就是引入了垃圾回收機(jī)制,使c++程序員最頭疼的內(nèi)存管理的問題迎刃而解,它使得Java程序員在編寫程序的時(shí)候不再需要考慮內(nèi)存管理。由于有個(gè)垃圾回收機(jī)制,Java中的對(duì)象不再有"作用域"的概念,只有對(duì)象的引用才有"作用域"。垃圾回收可以有效的防止內(nèi)存泄露,有效的使用可以使用的內(nèi)存。垃圾回收器通常是作為一個(gè)單獨(dú)的低級(jí)別的線程運(yùn)行,不可預(yù)知的情況下對(duì)內(nèi)存堆中已經(jīng)死亡的或者長(zhǎng)時(shí)間沒有使用的對(duì)象進(jìn)行清楚和回收,程序員不能實(shí)時(shí)的調(diào)用垃圾回收器對(duì)某個(gè)對(duì)象或所有對(duì)象進(jìn)行垃圾回收;厥諜C(jī)制有分代復(fù)制垃圾回收和標(biāo)記垃圾回收,增量垃圾回收。
3,談?wù)刦inal, finally, finalize的區(qū)別。
Final-修飾符(關(guān)鍵字)如果一個(gè)類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個(gè)類不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們?cè)谑褂弥胁槐桓淖。被聲明為final的變量必須在聲明時(shí)給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。
Finally-再異常處理時(shí)提供 finally 塊來執(zhí)行任何清除操作。如果拋出一個(gè)異常,那么相匹配的 catch 子句就會(huì)執(zhí)行,然后控制就會(huì)進(jìn)入 finally 塊(如果有的話)。
Finalize-方法名。Java 技術(shù)允許使用 finalize()方法在垃圾收集器將對(duì)象從內(nèi)存中清除出去之前做必要的清理工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對(duì)象沒有被引用時(shí)對(duì)這個(gè)對(duì)象調(diào)用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize()方法是在垃圾收集器刪除對(duì)象之前對(duì)這個(gè)對(duì)象調(diào)用的。
4,數(shù)組有沒有l(wèi)ength()這個(gè)方法? String有沒有l(wèi)ength()這個(gè)方法?舉例說明使用方法?
數(shù)組沒有l(wèi)ength()這個(gè)方法,有l(wèi)ength的屬性。
String有有l(wèi)ength()這個(gè)方法。
5. Java中的異常處理機(jī)制的簡(jiǎn)單原理和應(yīng)用。
當(dāng)JAVA程序違反了JAVA的語(yǔ)義規(guī)則時(shí),JAVA虛擬機(jī)就會(huì)將發(fā)生的錯(cuò)誤表示為一個(gè)異常。違反語(yǔ)義規(guī)則包括2種情況。一種是JAVA類庫(kù)內(nèi)置的語(yǔ)義檢查。例如數(shù)組下標(biāo)越界,會(huì)引發(fā)IndexOutOfBoundsException;訪問null的對(duì)象時(shí)會(huì)引發(fā) NullPointerException.另一種情況就是JAVA允許程序員擴(kuò)展這種語(yǔ)義檢查,程序員可以創(chuàng)建自己的異常,并自由選擇在何時(shí)用 throw關(guān)鍵字引發(fā)異常。所有的異常都是java.lang.Thowable的子類。
五、程序設(shè)計(jì):(每題11分,共33分)
1、編程:編寫一個(gè)截取字符串的函數(shù),輸入為一個(gè)字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串。 但是要保證漢字不被截半個(gè),如"我ABC"4,應(yīng)該截為"我AB",輸入"我ABC漢DEF",6,應(yīng)該輸出為"我ABC"而不是"我ABC+漢的半個(gè)"。
2、編程求解:所有兩位整數(shù)能被3整除的數(shù)的和,以及不能被3整除的數(shù)的各位數(shù)字之和。
3、設(shè)計(jì)一個(gè)程序求解e的值。精度達(dá)到1.0e-6,
4、請(qǐng)?jiān)O(shè)計(jì)一個(gè)對(duì)N個(gè)數(shù)進(jìn)行排序的程序
計(jì)算機(jī)Java語(yǔ)言程序設(shè)計(jì)考試試題 2
一.選擇題(30分)
1.下列哪些情況可以終止當(dāng)前線程的運(yùn)行?
a. 拋出一個(gè)異常時(shí)。
b. 當(dāng)該線程調(diào)用sleep()方法時(shí)。
c. 當(dāng)創(chuàng)建一個(gè)新線程時(shí)。(與當(dāng)前進(jìn)程無關(guān))
d. 當(dāng)一個(gè)優(yōu)先級(jí)高的線程進(jìn)入就緒狀態(tài)時(shí)。
2. 下面哪些為構(gòu)造函數(shù)的特性定義
a. 在類中聲明構(gòu)造函數(shù)時(shí),名稱應(yīng)該與類名相同
b. 具有重載特性,可以建立多個(gè)相同的名稱
c. 使用類建立新對(duì)象時(shí),會(huì)自動(dòng)執(zhí)行構(gòu)造函數(shù),因此在構(gòu)造函數(shù)內(nèi)設(shè)定變量的初值或進(jìn)行內(nèi)存分配
d. 以上都是
3. 關(guān)于異常處理機(jī)制的敘述哪些正確
a. catch部分捕捉到異常情況時(shí),才會(huì)執(zhí)行finally部分
b. 當(dāng)try區(qū)段的程序發(fā)生異常時(shí),才會(huì)執(zhí)行catch區(qū)段的程序
c. 不論程序是否發(fā)生錯(cuò)誤及捕捉到異常情況,都會(huì)執(zhí)行finally部分
d. 以上都是
4. 下列關(guān)于接口的敘述中哪些是正確的
a. 接口中的數(shù)據(jù)必須設(shè)定初值(就是接口中的常量)
b. 接口中的方法都是抽象方法
c. 接口可以聲明引用
d. 以上都正確
5.Java語(yǔ)言中,方法的重寫(Overriding)和重載(Overloading)是多態(tài)性的不同表現(xiàn)。下邊哪些說法是對(duì)的?
A. 重寫是父類與子類之間多態(tài)性的一種表現(xiàn)。
B. 重寫是一個(gè)類中多態(tài)性的一種表現(xiàn)。
C. 重載是一個(gè)類中多態(tài)性的一種表現(xiàn)。
D. 重載是父類與子類之間多態(tài)性的一種表現(xiàn)。
6.在Struts應(yīng)用的視圖中包含哪些組件?
A. JSP
B. Servlet
C. ActionServlet
D. Action
E. 代表業(yè)務(wù)邏輯或業(yè)務(wù)數(shù)據(jù)的JavaBean
F. EJB
G. 客戶化標(biāo)簽
7. struts框架中,關(guān)于FormBean,下列哪些說法是正確的:
A FormBean是一種數(shù)據(jù)bean,主要用來封裝表單提交上來的數(shù)據(jù),并把這些數(shù)據(jù)傳遞給Action
B 在FormBean中可以對(duì)頁(yè)面上傳遞來的參數(shù)進(jìn)行一下格式上的驗(yàn)證,這種驗(yàn)證是一種客戶端的驗(yàn)證
C 用戶每次提交表單,都會(huì)產(chǎn)生一個(gè)新的FormBean實(shí)例
D 動(dòng)態(tài)FormBean不能進(jìn)行驗(yàn)證操作
8哪些方法可以進(jìn)行servlet的調(diào)試?()
A、使用打印語(yǔ)句; 在桌面計(jì)算機(jī)上運(yùn)行服務(wù)器
B、使用Apache Log4J
C、使用IDE集成的調(diào)試器
D、直接查看HTML源碼 ????
E、返回錯(cuò)誤頁(yè)面給客戶
9、下面關(guān)于servlet的功用說法正確的有哪些?()
A、讀取客戶程序發(fā)送來的顯式數(shù)據(jù)
B、讀取客戶程序發(fā)送來的隱式數(shù)據(jù)
C、生成相應(yīng)的結(jié)果
D、發(fā)送顯式的數(shù)據(jù)給客戶程序
E、發(fā)送隱式的數(shù)據(jù)給客戶程序
10、下面關(guān)于session的用法哪些是錯(cuò)誤的?(
A、HttpSession session = new HttpSession();
request.getSession();
B、String haha =(String) session.getParameter(Attribute)(“haha”);
C、session.removeAttribute(“haha”);
D、session. setAttribute(“haha”,值);
11、關(guān)于說法正確的有哪些?()
A、URL的輸出在請(qǐng)求時(shí)入到JSP頁(yè)面中
B、不能含有影響整個(gè)頁(yè)面的JSP內(nèi)容
C、被包含文件改變后不需更改使用它的頁(yè)面
D、被包含文件更改后,需要手動(dòng)地更新使用它的頁(yè)面(不需要手動(dòng)更新)
12、關(guān)于bean的說法正確的有哪些?()
A、具備一個(gè)零參數(shù)(空)的構(gòu)造函數(shù)(不是必須的)
B、不應(yīng)該有公開的實(shí)例變量(字段)
C、所有的`屬性都必須通過getXxx和setXxx方法來訪問
D、布爾型的屬性使用isXxx,而非getXxx
13、下面關(guān)于MVC說法錯(cuò)誤的有哪些?()
A、必須使用復(fù)雜的框架
B、使用內(nèi)建的RequestDispatcher能夠很好地實(shí)現(xiàn)MVC
C、當(dāng)其中一個(gè)組件發(fā)生變化的時(shí)候,MVC影響整個(gè)系統(tǒng)的設(shè)計(jì)
D、我們可以用MVC來處理單個(gè)請(qǐng)求
14、下面的標(biāo)簽中哪些是JSTL標(biāo)簽?()
15、struts框架,錯(cuò)誤的是,下面那些說法正確?
A Struts中無法完成上傳功能
B Struts框架基于MVC模式
C Struts框架容易引起流程復(fù)雜、結(jié)構(gòu)不清晰等問題(清晰)
D Struts可以有效地降低項(xiàng)目的類文件數(shù)目
二、填空題( 5分)
1、調(diào)用函數(shù)MOD(123,10)返回值為___。
2、select round (123.67,1) from dual;這語(yǔ)句輸出值為______。
3、創(chuàng)建一個(gè)臨時(shí)替代變量使用的字符是_____。
4、若v_comm = 2800, X := NVL (V_comm,0) ,則X的值為____。
5、調(diào)用函數(shù)INSTR(‘Here you are’,’er’)返回值為___。
三、判斷題(10分)
1、WHERE子句限制行記錄,也可以指定限制分組結(jié)果的條件。 ()
2、具有UNIQUE約束的列不能包含多個(gè)空值。 ()
3、DATE型數(shù)據(jù)中包含著時(shí)間值。 ()
4、具有外鍵約束的列可以包含空值。 ()
5、如果在類型為4)的列中輸入“hello”,則只能存儲(chǔ)hell。 ()
6、含有Group by子句的查詢,其結(jié)果是排好序的。 ()
7、定義游標(biāo)時(shí),其中的select語(yǔ)句不能使用order by子句。(子查詢
不能用) ()
9、觸發(fā)器一定會(huì)被激發(fā)。 、過程可以有返回值。 ()
10、instead
of觸發(fā)器只是基于視圖的。
四、寫出相應(yīng)的SQL語(yǔ)句(括號(hào)內(nèi)為列名)(10分)
1、查詢從事各工作(JOB)的員工人數(shù)。
2、查詢與員工SMITH在同一部門(DEPTNO)的員工的姓名(ENAME),工資(SAL)和部門。
3、查詢所有員工的姓名(ENAME),工資(SAL)和工資等級(jí)(GRADE)。
4、查詢獲得工資(SAL)最高的3個(gè)員工信息。
5、查詢所有員工的姓名(ENAME)及其主管姓名(ENAME)。
五、簡(jiǎn)答題(15分)
1. 在PL/SQL程序中,進(jìn)行用戶自定義異常處理的3個(gè)步驟是
什么?
2. 面向?qū)ο蟮奶卣饔心男┓矫?并簡(jiǎn)要介紹
3. List、Map、Set三個(gè)接口,存取元素時(shí),各有什么特點(diǎn)?
List 以特定次序來持有元素,可有重復(fù)元素。Set 無法擁有重復(fù)元素,內(nèi)部排序。Map 保存key-value值,value可多值。
4 .struts1.0和struts2.0的區(qū)別?如何控制兩種框架中的單例模式?
5. 描述一下如何在struts1.0實(shí)現(xiàn)國(guó)際化,以兩國(guó)語(yǔ)言(中文,英文)為例:
6.struts中怎么配置form-bean、action
7. Hibernate自帶的分頁(yè)機(jī)制是什么?如果不使用Hibernate自帶的分頁(yè),則采用什么方式分頁(yè)?
8. hibernate中一對(duì)多配置文件返回的是什么?
9.什么樣的數(shù)據(jù)適合存放到第二級(jí)緩存中?
10你一般用spring做什么?
11項(xiàng)目中如何體現(xiàn)Spring中的切面編程,具體說明。
12 觸發(fā)觸發(fā)器的數(shù)據(jù)操作有哪些?
13 解釋視圖的含義以及使用視圖的好處。
14 簡(jiǎn)述ORACLE中5種約束及其作用。
15 ORACLE中過程和函數(shù)的異同點(diǎn)。
六、編程題(30分)
1、創(chuàng)建一個(gè)PL/SQL塊,根據(jù)用戶輸入的編號(hào),在emp表中查詢出該編號(hào)的員工姓名、部門號(hào)及其主管編號(hào),要有異常處理。
2、創(chuàng)建一個(gè)PL/SQL塊,根據(jù)用戶輸入的工作,從emp表中逐條輸出從事這一工作的每位員工的編號(hào)、姓名和受雇如期,每條信息格式如下:(用游標(biāo)實(shí)現(xiàn))
編號(hào) 姓名 受雇日期
7751 JOHN 95-12-31
3、編寫一個(gè)函數(shù),用于判斷EMP表中某一工作(JOB)是否存在,若EMP表存在此工作名稱,則返回TRUE,否則返回FALSE。
4、編寫一觸發(fā)器,在EMP表執(zhí)行插入或修改前被激發(fā),此觸發(fā)器將對(duì)員工的工資(SAL)超過5000進(jìn)行報(bào)錯(cuò),不能插入或修改,不超
過5000的才將員工編號(hào)、工作及當(dāng)時(shí)的日期(SYSDATE)插入U(xiǎn)P_EMP表
(注:此表已建好,表結(jié)構(gòu)為UP_EMP(EMPNO NUMBER(4),SAL NUMBER(7,2),UDETE DATE))
5下面程序的輸出結(jié)果是多少?
importjava.util.Date;
public class Test extends Date{
public static void main(String[] args) {
new Test().test();}
public void test(){
System.out.println(super.getClass().getName());}}
6下面的程序代碼輸出的結(jié)果是多少? public class smallT
{}
public static void main(String args[]) { } public int get() { } try { } finally { } return 2 ; return 1 ; smallT t = new smallT(); int b = t.get(); System.out.println(b);
7子線程循環(huán)10次,接著主線程循環(huán)100,接著又回到子線程循環(huán)10次,接著再回到主線程又循環(huán)100,如此循環(huán)50次,請(qǐng)寫出程序。
8去掉一個(gè)Vector集合中重復(fù)的元素
9有一個(gè)字符串,其中包含中文字符、英文字符和數(shù)字字符,請(qǐng)統(tǒng)計(jì)和打印出各個(gè)字符的個(gè)數(shù)
10. xxx公司的sql面試
Table EMPLOYEES Structure:
EMPLOYEE_ID NUMBER Primary Key,
FIRST_NAME VARCHAR2(25),
LAST_NAME VARCHAR2(25),
Salary number(8,2),
HiredDate DATE,
Departmentid number(2)
Table Departments Structure:
Departmentid number(2) Primary Key,
DepartmentName VARCHAR2(25).
(1)基于上述EMPLOYEES表寫出查詢:寫出雇用日期在今年的,或者工資在[1000,2000]之間的,或者員工姓名(last_name)以’Obama’打頭的所有員工,列出這些員工的全部個(gè)人信息。
(2) 基于上述EMPLOYEES表寫出查詢:查出部門平均工資大于1800
元的部門的所有員工,列出這些員工的全部個(gè)人信息。()
(3) 基于上述EMPLOYEES表寫出查詢:查出個(gè)人工資高于其所在部門平均工資的員工,列出這些員工的全部個(gè)人信息及該員工工資高出部門平均工資百分比。
參考答案
1答案:ABD
2答案: D
3答案:BC
4答案:AB
5答案AC
6答案:A,G
7答案:A
8A B C D E
9A B C D E
10A B D
11A B C
12B D
13A C
14A B C
15A B C
16答案:C
二 填空
3 123.7 & 2800 2
三判斷
× ×√√√√×√×√
四寫出相應(yīng)的SQL語(yǔ)句
1Select job,count(*) from emp group by job;
2Select ename,sal,deptno from emp where deptno=(select deptno from emp where ename=’SMITH’);
3Select ename,sal,grade from emp,salgrade where sal between losal and hisal;
4Select * from (select * from emp order by sal desc) where rownum<=3;
5Select e1.ename empname,e2.ename mgrname from emp e1,emp e2 where e1.mgr=e2.empno;
五簡(jiǎn)答
可以通過聲明和發(fā)布來截獲自定義異常。
一、在聲明部分為聲明自定義異常名。
二、在執(zhí)行部分使用 RAISE 語(yǔ)句顯式地發(fā)布異常。
三、在相應(yīng)的異常處理例程中引用已聲明的異常。
2(1).抽象:
抽象就是忽略一個(gè)主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時(shí)不用部分細(xì)節(jié)。抽象包括兩個(gè)方面,一是過程抽象,二是數(shù)據(jù)抽象。
(2).繼承:
繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵(lì)類的重用,它提供了一種明確表述共性的方法。對(duì)象的一個(gè)新類可以從現(xiàn)有的類中派生,這個(gè)過程稱為類繼承。新類繼承了原始類的特性, 新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實(shí)例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。
(3).封裝:
封裝是把過程和數(shù)據(jù)包圍起來,對(duì)數(shù)據(jù)的訪問只能通過已定義的界面。面向?qū)ο笥?jì)算始于這個(gè)基本概念,即現(xiàn)實(shí)世界可以被描繪成一系列完全自治、封裝的對(duì)象,這些對(duì)象通過一個(gè)受保護(hù)的接口訪問其他對(duì)象。
(4). 多態(tài)性:
多態(tài)性是指允許不同類的對(duì)象對(duì)同一消息作出響應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語(yǔ)言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢(shì),很好的解決了應(yīng)用程序函數(shù)同名問題。
List 以特定次序來持有元素,可有重復(fù)元素。Set 無法擁有重復(fù)元素,內(nèi)部排序。Map 保存key-value值,value可多值。
3List 以特定次序來持有元素,可有重復(fù)元素。Set 無法擁有重復(fù)元素,內(nèi)部排序。Map 保存key-value值,value可多值
4a、Action類:
struts1.2要求Action類繼承一個(gè)基類。struts2.0 Action要求繼承ActionSupport基類 b、線程模式
struts1.2 Action是單例模式的并且必須是線程安全的,因?yàn)閮H有一個(gè)Action的實(shí)例來處理所有的請(qǐng)求。
單例策略限制了Struts1.2 Action能做的事情,并且開發(fā)時(shí)特別小心。Action資源必須是線程安全的或同步的。
struts2.0 Action為每一個(gè)請(qǐng)求產(chǎn)生一個(gè)實(shí)例,因此沒有線程安全問題。
c、Servlet依賴
struts1.2 Action依賴于Servlet API,因?yàn)楫?dāng)一個(gè)Action被調(diào)用時(shí)HttpServletRequest和HttpServletResponse被傳遞給execut方法。
struts2.0 Action不依賴于容器,允許Action脫離容器單獨(dú)測(cè)試。如果需要,Struts2 Action仍
然可以訪問初始的Request和Response。
但是,其他的元素減少或者消除了直接訪問HttpServletRequest和HttpServletResponse的必要性。
d、可測(cè)性
測(cè)試struts1.2 Action的一個(gè)主要問題是execute方法暴露了Servlet API(這使得測(cè)試要依賴于容器)。一個(gè)第三方擴(kuò)展:struts TestCase
提供了一套struts1.2的模擬對(duì)象來進(jìn)行測(cè)試。
Struts2.0 Action可以通過初始化、設(shè)置屬性、調(diào)用方法來測(cè)試,“依賴注入”也使得測(cè)試更容易。
計(jì)算機(jī)Java語(yǔ)言程序設(shè)計(jì)考試試題 3
一、選擇題:(每題3分,共20題)
1. 下面關(guān)于類的說法錯(cuò)誤的一項(xiàng)是( )。
A、類屬于Java語(yǔ)言中的復(fù)合數(shù)據(jù)類型 中的基本結(jié)構(gòu)單位
C、類是同種對(duì)象的集合和抽象
2. 如下所示代碼:
public class Test05_01{ }
private float a;
public static void m ( ){ }
D、類就是對(duì)象 B、對(duì)象是Java語(yǔ)言
如何使成員變量a被方法m( )訪問( )。
A、將private float a改為public float a
B、將private float a改為static float a
C、將private float a改為protected float a
D、將private float a改為float a
3. 下面關(guān)于類的說法有誤的一項(xiàng)是( )。
A、類就是對(duì)象 抽象
C、類屬于Java語(yǔ)言中的復(fù)合數(shù)據(jù)類型 中的基本結(jié)構(gòu)單位
D、對(duì)象是Java語(yǔ)言
B、類是同種對(duì)象的集合和
關(guān)于Java面向?qū)ο蟮目荚囶}。
4. 下列哪種類成員修飾符修飾的變量只能在本類中被訪問( )。
A、protected
B、default
C、private
D、public
5. 下面關(guān)于方法的說法不正確的一項(xiàng)是( )。
A、類的私有方法不能被其他類直接訪問。
B、Java中的構(gòu)造方法名必須和類名相同。
C、方法體是對(duì)方法的實(shí)現(xiàn),包括變量聲明和合法語(yǔ)句。
D、如果一個(gè)類定義了構(gòu)造方法,也可以用該類的默認(rèn)構(gòu)造方法。
6. 下列程序的運(yùn)行結(jié)果是( )。
public class Test05_02 extends x{ }
B、編譯錯(cuò)誤
D、運(yùn)行成功,但不輸出
int ab(){ }
public static void main(String[] args) { }
Test05_02 b = new Test05_02 (); b.ab(); static int a = 10; a++;
System.out.println(a);
A、10 C、11
關(guān)于Java面向?qū)ο蟮目荚囶}。
7. 下面關(guān)于構(gòu)造方法的描述有誤的一項(xiàng)是( )。
A、構(gòu)造方法必須要有返回類型的聲明。
B、構(gòu)造方法和類中的方法很相似:有訪問修飾符、方法名、參數(shù)列表、方法體。
C、構(gòu)造方法當(dāng)成是一個(gè)特殊的方法,這個(gè)方法的作用就是用來產(chǎn)生一個(gè)類的實(shí)例。
D、構(gòu)造方法的方法名必須和類名完全相同。
8. 下列關(guān)于對(duì)象的說法錯(cuò)誤的一項(xiàng)是( )。
A、對(duì)象成員是指一個(gè)對(duì)象所擁有的屬性或可以調(diào)用的方法。
B、由類生成對(duì)象,稱為類的實(shí)例化過程,一個(gè)實(shí)例可以是多個(gè)對(duì)象。
C、在創(chuàng)建類的對(duì)象時(shí),需要使用Java的`new關(guān)鍵字。
D、在Java中要引用對(duì)象的屬性和方法,需要使用“.”操作符來實(shí)現(xiàn)。
9. 類的方法可以不包含下面哪一項(xiàng)( )。
A、方法的參數(shù) C、方法的名稱
B、方法的主體 D、方法的返回值類型
10. 下面關(guān)于變量說法錯(cuò)誤的一項(xiàng)是( )。
A、對(duì)于成員變量,我們可以不需要手動(dòng)的顯式初始化,因?yàn)橄到y(tǒng)在創(chuàng)建一個(gè)新的對(duì)象的時(shí)候,會(huì)給這些成員變量賦一個(gè)初值。
B、對(duì)于引用變量,它的默認(rèn)初值是null而非相應(yīng)的引用類型對(duì)象,也就是說,它并不是指向任何對(duì)象的首地址。
關(guān)于Java面向?qū)ο蟮目荚囶}。
C、系統(tǒng)會(huì)對(duì)全局(成員)變量指定默認(rèn)的值,也會(huì)對(duì)局部變量賦值。
D、局部變量在使用之前,必須對(duì)其進(jìn)行顯式初始化。
11. 下面的各種數(shù)據(jù)類型的默認(rèn)初始化值表示錯(cuò)誤的一項(xiàng)是( )。
A、int是0
B、float 是0.0
C、char 是‘u0000’
D、boolean是false
12. 下面哪一項(xiàng)不是Java的訪問控制符( )。
A、public
B、private
C、void
D、protected
13. Java語(yǔ)言類間的繼承關(guān)系和接口間的繼承關(guān)系分別是( )。
A、單繼承、不能繼承
C、多重繼承、單繼承
B、多重繼承、不能繼承
D、單繼承、多重繼承
14. 如果局部變量和成員變量同名,如何在局部變量作用域內(nèi)引用成
員變量( )。
A、不影響,系統(tǒng)可以自己區(qū)分
B、不能引用,必須改名,使它們的名稱不相同
C、在成員變量前加this,使用this訪問該成員變量
D、在成員變量前加super,使用super訪問該成員變量
15. 下列關(guān)于內(nèi)部類說法錯(cuò)誤的一項(xiàng)是( )。
A、內(nèi)部類可用private或protected修飾符修飾
B、內(nèi)部類不能有自己的成員方法和成員變量
C、除static內(nèi)部類外,不能在類內(nèi)聲明static成員
D、內(nèi)部類可以作為其他類的成員,而且可訪問它所在的類的成員
16. 定義外部類時(shí)不能用到的關(guān)鍵字是( )。
A、public
B、abstract
C、protected
D、final
17. 下面說法不正確的一項(xiàng)是( )。
A、abstract和final能同時(shí)修飾一個(gè)類
B、抽象類既可以做父類,也可以做子類
C、聲明為final類型的方法不能在其子類中重新定義
D、抽象類中可以沒有抽象方法,有抽象方法的類一定是抽象類或接口
18. 有一個(gè)類B,下面為其構(gòu)造方法的聲明,正確的是( )。
A、void b(int x) {} C、B(int x) {}
B、void B(int x) {}
D、b(int x) {}
19. 區(qū)分類中重載方法的依據(jù)是( )。
A、不同的形參名稱
B、返回值的類型不同
D、訪問權(quán)限不同
C、形參列表的類型和順序
20. 下面說法錯(cuò)誤的一項(xiàng)是( )。
A、在Java中,為了節(jié)省創(chuàng)建對(duì)象的時(shí)間和空間,對(duì)于一些常用的方法,會(huì)將它在內(nèi)存中緩存起來。
B、在JDK中針對(duì)各種基本數(shù)據(jù)類型分別定義相應(yīng)的引用類型,稱之為封裝類(Wrapper Classes)。
C、JDK5.0中,引入了自動(dòng)裝箱/拆箱功能,可以讓我們方便的在簡(jiǎn)單類型和對(duì)應(yīng)的封裝類型數(shù)據(jù)之間轉(zhuǎn)換。
計(jì)算機(jī)Java語(yǔ)言程序設(shè)計(jì)考試試題 4
選擇題
1). 下面( )是合法的標(biāo)識(shí)符。
A.$persons
B.2Users
C.*poi nt
D.this
正確答案:A
答案解析:本題考查Java 標(biāo)識(shí)符的命名,屬于考試重點(diǎn)內(nèi)容,應(yīng)該掌握。Java 中標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符以字母、下畫線或美元符作為首字符的字符串序列;標(biāo)識(shí)符是區(qū)分大小寫的;標(biāo)識(shí)符的字符數(shù)沒有限制。由此可見,Java 中標(biāo)識(shí)符不能以數(shù)字開頭,所以選項(xiàng)B錯(cuò)誤;不能以“*”開頭,選項(xiàng)C錯(cuò)誤;this 是專用標(biāo)識(shí)符,具有專門的意義和用途,選項(xiàng)D 錯(cuò)誤,只有選項(xiàng)A 正確。
2). 設(shè)有一個(gè)已按各元素的值排好序的順序表(長(zhǎng)度大于2),現(xiàn)分別用順序查找法和二分查找法查找與給定值k相等的元素,比較的次數(shù)分別是s和b,在查找不成功情況下s和b的關(guān)系是( )。
A.s =b
B.s>b
C.s
D.s>=b
正確答案:B
答案解析:順序查找的基本思想是:從表的一端開始,順序掃描線性表,依次將掃描到結(jié)點(diǎn)的關(guān)鍵字和給定值k進(jìn)行比較,若當(dāng)前掃描到結(jié)點(diǎn)的關(guān)鍵字與k相等,則查找成功;若掃描結(jié)束后,仍未找到關(guān)鍵字等于k的結(jié)點(diǎn),則查找失敗。二分查找法是一種效率較高的查找方法,要求線性表是有序表;舅枷胧牵菏紫葘⒋榈膋值和有序表R[O]~R[n -1]的中間位置mid上的結(jié)點(diǎn)的關(guān)鍵字進(jìn)行比較,若相等,則查找完成;否則,若R[mi d]. key>k,則說明待查找的結(jié)點(diǎn)只可能在左子表R[O]~R[mi d -1]中,我們只需在左子表中繼續(xù)進(jìn)行折半查找,若R[mi d]. key
3). 定義一個(gè)表示10個(gè)值為null的字符串?dāng)?shù)組,下面選項(xiàng)正確的是( )。
A.String []a;
B.String a[];
C.char a[10][];
D.String a[]=new String[10];
正確答案:D
答案解析:本題考查字符串?dāng)?shù)組變量的聲明。選項(xiàng)A和選項(xiàng)B的效果是一樣的,都是用來定義一個(gè)字符串?dāng)?shù)組,但沒有指明數(shù)組個(gè)數(shù),不滿足題目要求;選項(xiàng)C是一個(gè)二維的字符數(shù)組,在C語(yǔ)言中,一個(gè)二維的字符數(shù)組就可以表示一個(gè)一維的字符串?dāng)?shù)組,而在Java中,字符char是基本類型,字符串String則是以對(duì)象的形式來表示的;選項(xiàng)D正確,它定義了一個(gè)含有10個(gè)元素的.字符串?dāng)?shù)組,如果沒有給字符串?dāng)?shù)組賦值,則默認(rèn)為null。
4). Thread類中能運(yùn)行線程的方法是( )。
A.resume()
B.start()
C.run()
D.init()
正確答案:C
答案解析:resume()是Thread類提供的用于線程控制的方法;start()是Thread類中的方法,新建的線程不會(huì)自動(dòng)運(yùn)行,必須調(diào)用線程的start()方法才能運(yùn)行該線程;run()是Thread類中的方法,在該方法中定義了線程的具體行為,線程開始執(zhí)行時(shí),就是從它的run()方法開始執(zhí)行的,就像Java應(yīng)用程序從main()開始、Applet從init()開始一樣;init()不是Thread類中的方法。
5). 在面向?qū)ο蟮姆椒ㄖ,一個(gè)對(duì)象請(qǐng)求另一個(gè)對(duì)象為其服務(wù)的方式是通過發(fā)送
A.調(diào)用語(yǔ)句
B.命令
C.口令
D.消息
正確答案:D
6). 下列的( )原始類型在使用流時(shí)可以互換。
A.byte和boolean
B.char和int
C.byte和char
D.String和char
正確答案:B
答案解析:本題考查Java語(yǔ)言中字節(jié)類型的概念。在Java語(yǔ)言中,byte是字節(jié)類型,用1字節(jié)表示.boolean是布爾類型,用true和false表示,它們的表示方法并不一樣,也不提供它們之間的轉(zhuǎn)換,選項(xiàng)A錯(cuò)誤。Java內(nèi)部用整數(shù)來表示char,通?梢栽诜椒ㄕ{(diào)用和其他語(yǔ)句中互換使用char和int,選項(xiàng)B正確。char用2字節(jié)表示,byte字節(jié)類型用l字節(jié)表示,Java內(nèi)部也不允許互換使用它們,選項(xiàng)C錯(cuò)誤。String在Java語(yǔ)言中是一個(gè)類,它提供對(duì)字符串的一系列操作,而char是Java語(yǔ)言中的一個(gè)基本類型,它不是一個(gè)類,兩者有本質(zhì)的區(qū)別,故而它們是不能互換使用的,選項(xiàng)D錯(cuò)誤。需要注意的是,在Java語(yǔ)言中提供的類都是以大寫字母開頭,基本類型都用小寫字母表示。
7). 下列說法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容是( )。
A.數(shù)據(jù)結(jié)構(gòu)
B.數(shù)據(jù)操作
C.數(shù)據(jù)查詢
D.數(shù)據(jù)約束
正確答案:C
答案解析:數(shù)據(jù)模型所描述的內(nèi)容包括三個(gè)部分
【計(jì)算機(jī)Java語(yǔ)言程序設(shè)計(jì)考試試題】相關(guān)文章:
計(jì)算機(jī)二級(jí)Java語(yǔ)言程序設(shè)計(jì)考試試題09-06
計(jì)算機(jī)二級(jí)Java語(yǔ)言程序設(shè)計(jì)考試試題及答案10-23
2017計(jì)算機(jī)二級(jí)Java語(yǔ)言程序設(shè)計(jì)考試試題10-13
計(jì)算機(jī)二級(jí)Java語(yǔ)言程序設(shè)計(jì)試題07-17
全國(guó)計(jì)算機(jī)二級(jí)Java語(yǔ)言程序設(shè)計(jì)考試試題09-28
計(jì)算機(jī)二級(jí)《Java語(yǔ)言程序設(shè)計(jì)》考試大綱11-16
sun認(rèn)證:java程序設(shè)計(jì)考試試題07-10
計(jì)算機(jī)二級(jí)Java語(yǔ)言程序設(shè)計(jì)考試重要考點(diǎn)11-19
2017年計(jì)算機(jī)二級(jí) Java 語(yǔ)言程序設(shè)計(jì)考試題庫(kù)10-31