Java程序設(shè)計習(xí)題匯編_第1頁
Java程序設(shè)計習(xí)題匯編_第2頁
Java程序設(shè)計習(xí)題匯編_第3頁
Java程序設(shè)計習(xí)題匯編_第4頁
Java程序設(shè)計習(xí)題匯編_第5頁
已閱讀5頁,還剩170頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Java程序設(shè)計習(xí)題匯編

JAVA程序設(shè)計習(xí)題集

第一章

1、動手完成Java開發(fā)包的安裝,并設(shè)置環(huán)境變量Path,熟悉

開發(fā)工具。

2、編寫一個程序,要求程序運行后在屏幕上輸出:

Thisismyfirstjavaprogram!

3、編寫一個程序,該程序從命令行接收4個參數(shù),并將接收的4

個參數(shù)打印輸出到屏幕。

第二章

1、指出下列哪些變量名稱是不合法的?

tomSalary,float,1people,peoplel,price_per_m,price-per_m,$root,@te

st

2、編寫程序,求解一元二次方程:ax2+bx+c=0.參數(shù)a,b及

c從命令行輸入。

提示:需要用到j(luò)ava.lang.Math類,Math類中提供了多種用

于科學(xué)計算的方法,例如開發(fā)sqrt,求幕pow等等。

3、寫出intmin=x>y?y:x的等價if語句。

4、利用javaAPI幫助文檔,找到一個可以將給定的字符串轉(zhuǎn)化為

小寫的方法。

5、打印出成績等級,如果成績大于等于90分,輸出“優(yōu)秀”,如

果成績大于等于80分,輸出“良好”,如果大于等于70分,輸出

“中等”,如果大于等于60分,輸出“及格”,其它輸出“不及格”。

第三章

1、選擇題

(1)程序TestSketch.java代碼如下,4個選項中正確的描述是()

ClassA{}

ClassBextendsA{}

PublicclassTestSketch{

Publicstaticvoidmian(String[]args){

Aa=newA();

Bb=(B)a;

)

)

通過編譯并正常運行

A.編譯時出現(xiàn)異常

B.編譯通過,運行時出現(xiàn)異常

C.編譯器報告找不到TestSketch.java

(2)下面有關(guān)類Demo的描述正確的有()

PublicclassDemoextendsBase{

Privateintcount;

PublicDemo(){

System.out.printlnC'ADemoobjecthasbeencreated^^);

Protectedvoidassone(){

Count++;}

)

A.當創(chuàng)建一個Demo類的實例對象時,count的值為0

B.當創(chuàng)建?個Demo類的實例對象時,count的值是不確定的

C.Base類型的對象中可以包含改變count值的方法

D.Demo的子類對象可以訪問count

3)閱讀下面的程序,正確的選項為()

Classperson{

Stringname;

Stringnickname;

Publicperson(Strings,Stringt){

name=s;

nickName=t;

}

PublicStringtoString(){

returnname+“nickname="+nickName;

)

)

publicclassTeacherextendsPerson{

Stringrank;

PublicTeacher(Strings,Stringt,Stringr){

super(s,t);

ranker;

publicStringtoString(){

returnname+"nickname="+nickName+“rank="+rank;

publicstaticvoidmain(Stringargs[]){

persona=newPerson("Tom","Tiger'');

personb=newTeacher("Jack''JHorse“JProfbssor'');

Teacherc=newTeacher("Bobby","Elephant","Lecture");

System.out.println(C4aisU4+a.toString());

System.out.printlnC'bisM+b.toString());

System.out.printlnC'cis^+c.toStringO);

)

)

?編譯時會出現(xiàn)錯誤

?運行時會出現(xiàn)錯誤

?運行結(jié)果為:

aisTomnickname=Tiger

bisJacknickname=Horserank=Professor

cisBobbynickname=Elephantrank=Lecture

D.運行結(jié)果為:

aisTomenickname=Tiger

bisJacknickname=Horse

cisBobbynickname=Elephantrank=Lecturer

(4).在使用interface聲明一個接口時,可以使用()修飾符修飾該

接口。

A.private

B.protected

C.privateorprotected

D.public

(5)雖然接口和抽象類不能創(chuàng)建對象,但它們的對象引用仍可指向

該類型的對象。這種說法()

A.正確

B.不正確

C.不能確定

D.接口和抽象類不能說明其對象引用

(6).接口中說明了一組公共的抽象方法,其中是否包含公共的靜態(tài)

方法?答案是O

A.可以

B.不可以

C.不能肯定

D.因靜態(tài)方法不能被改寫,故不能出現(xiàn)在接口中

(7)當我們說明一個類C實現(xiàn)一個接口I,下面說法()不正

A.接口I是類C一個超類型

B.類C也實現(xiàn)了接口I的超接口

C.類C的子類也實現(xiàn)接口I

D.接口I類型的對象引用所制定的對象一定是類C或其子類

的一個對象。

2、填空題

(1)我們可以通過,使得處于不同層次,甚至互不

相關(guān)的類具

有相同的行為,然后由每個類分別去實現(xiàn)這些行為。

(2)接口聲明的關(guān)鍵字是0

(3)在聲明類的同時,我們可通過關(guān)鍵字實

現(xiàn)接口。

(4)使用類實現(xiàn)接口時,必須該接口的所有方法。

(5)Java中,我們可通過來管理類名空間。

(6)創(chuàng)建包的關(guān)鍵字是:。

⑺引入包grade的best類,可使用語句:

3、假如我們在開發(fā)一個系統(tǒng)時需要對員工進行建模,員工包含3

個屬性:

姓名、工號以及工資。經(jīng)理也是員工,除了含有員工的屬性外,

另為還有一個

獎金屬性。請使用繼承的思想設(shè)計出員工類和經(jīng)理類。要求類中

提供必要的方

法進行屬性訪問。

4、定義一個自己的數(shù)學(xué)類MyMath.類中提供靜態(tài)方法max,該

方法接受3個同

類型的參數(shù)(例如整型),返回其中的最大值

5、接口和抽象類的區(qū)別

6、通過設(shè)計-接口,定義有關(guān)算術(shù)的屬性。并創(chuàng)建四個應(yīng)用該接

口的類,分

別進行加減乘除的運算。

7、設(shè)計一個包,并在其中創(chuàng)建兩個類,一個類將小寫字母變?yōu)榇?/p>

寫字母,另一個類

將大寫字母變?yōu)樾懽帜浮H缓髣?chuàng)建一個類,實現(xiàn)將“b”變?yōu)?B

和將“E”

變?yōu)椤癳”。

第四章

1、下面這種捕獲異常的方式適當么?說明理由

Try{

}catch(Exceptione){

}catch(FileNotFoundExceptiona){

2、簡述異常拋出策略經(jīng)驗

3、簡述異常捕獲策略

4、簡述不要捕獲以及聲明拋出“超級異?!?如:Exception,

Throwable)的理由。

5、編寫程序,越界訪問數(shù)組元素的下標,捕獲并打印異常信息。

6、創(chuàng)建自己的異常類,并在另一個類中調(diào)用它,打印出異常信息。

第五章

1、創(chuàng)建一個簡單的GUI程序,在窗口上用一個標簽顯示“你好,

這是我的第一

個GUI程序“

2、運用所說的JUI知識及事件處理知識創(chuàng)建一個用戶輸入界面;

3、綜合使用網(wǎng)格布局和邊框布局編寫一個簡易的計算器,要求具

備加法、減法、乘法以及除法功能。

第六章

1、寫一個程序,允許用戶依次輸入多個姓名和住址,并能將用戶

的輸入保存到文件中。用戶輸入“quit”表示輸入完畢,程序退出。

2、使用GB2312字符集保存“你好,世界!”到文件中,并讀取顯

示出來。

3、File類型的對象既可以表示文件,也可以表示目錄。編寫一個

程序,當用戶輸入一個文件或是目錄信息后,該程序能夠完成如

下工作:

(1).判斷該文件或目錄是否存在

(2).如果不存在則給出出錯信息

(3).如果存在,則給出其相對路徑、絕對路徑、文件長度

(4).如果存在并且是文件,則顯示文件內(nèi)容

(5).如果存在并且是目錄,則顯示目錄內(nèi)的所有文件名

第七章

1、編寫一個線程使得4個線程同時運行

2、請用線程的有關(guān)知識,編寫一個不同時區(qū)的時種程序

3、.實現(xiàn)生產(chǎn)者/消費者問題

第八章

1、填空題

⑴我們使用java.net包中有兩個類和

,分別用于在客戶機和服務(wù)器上創(chuàng)建Socket

通信。

⑵我們可分別使用Socket的方法和

來創(chuàng)建輸入/輸出流。

(3)在服務(wù)器端程序中,可使用ServerSocket對象的

方法,接收來自客戶機程序的連接請求,待通信任務(wù)完畢后,用

Socket對象的方法來關(guān)閉通信Socket0

(4)我們可以通過類來建立數(shù)據(jù)報通信

的Socket;用類來創(chuàng)建數(shù)據(jù)報文包。

⑸我們可通過DatagramPacket類的方法從實例

中取得報文的Byte數(shù)組編碼;而通過來返回一

個發(fā)送或接收此數(shù)據(jù)報包文的機器的IP地址。

(6)我們可通過調(diào)用DatagramSocket對象的方法

來完成接收數(shù)據(jù)報的工

作,通過調(diào)用DatagramSocket對象的方法實現(xiàn)發(fā)

送數(shù)據(jù)報。

⑺待通信任務(wù)完畢后,用DatagramSocket對象的

方法來關(guān)閉

數(shù)據(jù)報通信Socketo

(8)創(chuàng)建URL對象有種方法。

(9)newURL(URL,String)格式中,String參數(shù)表示。

(lO)StringURL.getHost()表示獲得。

(ll)StringURL.getFile()表示獲得。

2、利用Socket套接字進行面向連接通信的編程??蛻舳税l(fā)送文

件;服務(wù)器端接收

并顯示客戶機地址,然后返回信息“文件已收到”給客戶端。

3、無連接通信的編程,客戶端輸入并發(fā)送用戶名;服務(wù)器端接

收并顯示其用戶名,

并檢驗它們的正確性,錯則返回“對不起,你不是我們的用

戶?!?,對則返

回“你好,歡迎光臨”。

4、編寫一個讀取圖像文件的應(yīng)用程序,參數(shù)為圖像文件的url。

第九章

1、在MSSQLServer2005上建立一個名為VCD的數(shù)據(jù)庫,其

中包含以下兩張表

表VCDInfo的字段名及數(shù)據(jù)類型

字段名數(shù)據(jù)類型描述

VCDIDVarchar(4)編號

VCDNameVarcher(50)VCD名

VCDPricefloat定價

companylDVarchar(4)出版公司編號

表Companyinfo的字段名及數(shù)據(jù)類型

字段名數(shù)據(jù)類型描述

companylDVarchar(4)出版公司編號(關(guān)鍵

字)

companyNameVarchar(50)出版公司名稱

companyAddrVarchar(50)出版公司地址

2、編程向表VCDInfo和Companyinfo中寫入下面兩個表中的

數(shù)據(jù)。

表VCDInfo中的數(shù)據(jù)

VCDIDVCDNameVCDPricecompanylD

V001戲曲10C001

V002評彈15C002

V003小品18C003

V004相聲15C004

表Companylnfb中的數(shù)據(jù)

companylDcompanyNamecompanyAddr

C003公司3地址3

C004公司4地址4

C005公司5地址5

C006公司6地址6

3、查詢companylD為C003的數(shù)據(jù)

4、刪除companylD為C004的數(shù)據(jù)

5、顯示所有數(shù)據(jù),包括VCDID,VCDName

VCDPrice,companylD,companyName,companyAddr字段

6、JDBC的步驟。

Java練習(xí)題

一、填空題

(1)Java語言具有許多優(yōu)點和特點,下列選項中,哪個反映了Java程序

并行機制的特點?(B)

A)安全性B)多線性C)跨平臺D)可移植

(2)下列哪個類聲明是正確的?(D)。

A)abstractfinalclassHI{??,}B)abstractprivatemove(){??,}

C)protectedprivatenumber;D)publicabstractclassCar{,?,)

(3)下列關(guān)于for循環(huán)和while循環(huán)的說法中哪個是正確的?(D)。

A)while循環(huán)能實現(xiàn)的操作,for循環(huán)也都能實現(xiàn)

B)while循環(huán)判斷條件一般是程序結(jié)果,for循環(huán)判斷條件一般是非程序結(jié)

0兩種循環(huán)任何時候都可替換

D)兩種循環(huán)結(jié)構(gòu)中都必須有循環(huán)體,循環(huán)體不能為空

(4)異常包含下列那些內(nèi)容?(C)。

A)程序中的語法錯誤B)程序的編譯錯誤

。程序執(zhí)行過程中遇到的事先沒有預(yù)料到的情況D)程序事先定義好的可能

出現(xiàn)的意外情況

(5)Character流與Byte流的區(qū)別是(),

A)每次讀入的字節(jié)數(shù)不同B)前者帶有緩沖,后者沒有

C)前者是塊讀寫,后者是字節(jié)讀寫D)二者沒有區(qū)別,可以互換使用

(6)監(jiān)聽事件和處理事件()o

A)都由Listener完成B)都由相應(yīng)事件Listener處登記過的構(gòu)件完成

C)由Listener和構(gòu)件分別完成D)由Listener和窗口分別完成

(7)Applet可以做下列那些操作?()。

A)讀取客戶端文件B)在客戶端主機上創(chuàng)建新文件

0在客戶端裝載程序庫D)讀取客戶端部分系統(tǒng)變量

(8)下列哪個屬于容器的構(gòu)件?(AD)。

A)JFrameB)JButtonC)JPnelD)JApplet

(9)如果希望所有的控件在界面上均勻排列,應(yīng)使用下列那種布局管理器?

(B)

A)BoxLayoutB)GridLayoutC)BorderLayoutD)FlowLouLayout

(10)為實現(xiàn)多線程之間的通信,需要使用下列那種流才合適?()。

A)FilterstreamB)FilestreamC)RandomaccessstreamD)Pipdestream

(11)編譯JavaApplication源程序文件將產(chǎn)生相應(yīng)的字節(jié)碼文件,這

些字節(jié)碼文件的擴展名為(A)。

A..javaB..classC..htmlD..exe

(12)設(shè)x=1,y=2,z=3,則表達式y(tǒng)+=z---/++x的值是

(A)。

A.3B.3.5C.4D.5

(13)在JavaApplet程序用戶自定義的Applet子類中,一般需要重載父類

的(D)方法來完成一些畫圖操作。

A.start()B.stop()C.init()D.paint()

(14)不允許作為類及類成員的訪問控制符的是(B)o

A.publicB.privateC.staticD.protected

(15)為AB類的一個無形式參數(shù)無返回值的方法method書寫方法頭,使得使

用類名AB作為前綴就可以調(diào)用它,該方法頭的形式為()。

A.staticvoidmethod()B.publicvoidmethod()

C.finalvoidmethod()D.abstractvoidmethod()

(16)在Java中,所有類的根類是()。

A.java.lang.ObjectB.java.lang.ClassC.java,applet.Applet

D.java.awt.Frame

(17)在Java中,用Package語句說明一個包時,該包的層次結(jié)構(gòu)必須是

()?

A.與文件的結(jié)構(gòu)相同B.與文件目錄的層次相同C.與文件類型相同D.與

文件大小相同

(18)在讀字符文件Employee.dat時,使用該文件作為參數(shù)的類是

()oA.BufferReaderB.DatalnputStreamC.DataOutoutStream

D.FilelnputStream

(19)下列構(gòu)造方法的調(diào)用方式中,正確的是()。

A.按照一般方法調(diào)用B.由用戶直接調(diào)用C.只能通過new自動調(diào)用D.被

系統(tǒng)調(diào)用

(20)類Panel默認的布局管理器是()。

A.GridLayoutB.BorderLayoutC.FlowLayoutD.CardLayout

(21)在Java中,能實現(xiàn)多重繼承效果的方式是()。

A.內(nèi)部類B.適配器C.接口D.同步

(22)char類型的取值范圍是()。

A.2-7~27-1B.0~216TC.-215~215-1D.0~28-1

(23)能夠支持javadoc命令的注釋語句是()。

A./**...〃B./*...*/C.//D./**...*/

(24)十進制數(shù)16的16進制表示格式是()。

A.0x10B.0x16C.OxAD.16

(25)int型public成員變量MAX_LENGTH,該值保持為常數(shù)100,則定義

這個變量的語句是()。

A.publicintMAX_LENGTH=100

B.finalintMAX_LENGTH=100

C.publicconstintMAX_LENGTH=100

D.publicfinalintMAX_LENGTH=100

(27)下列方法中可以用來創(chuàng)建一個新線程的是()。

A.實現(xiàn)java.lang.Runnable接口并重寫start。方法

B.實現(xiàn)java.lang.Runnable接口并重寫run()方法

C.實現(xiàn)java.lang.Thread類并重寫run()方法

D.實現(xiàn)java.lang.Thread類并重寫start。方法

(28)下列關(guān)于JavaApplication與Applet的說法中,正確的是()。

A.都包含main。方法

B.都通過"appletviewer”命令執(zhí)行

C.都通過“javac”命令編譯

D.都嵌入在HTML文件中執(zhí)行

(29)當啟動Applet程序時,首先調(diào)用的方法是()。

A.stop()B.init()C.start()D.destroy()

(30)下列關(guān)于線程優(yōu)先級的說法中,正確的是()。

A.線程的優(yōu)先級是不能改變的

B.線程的優(yōu)先級是在創(chuàng)建線程時設(shè)置的

C.在創(chuàng)建線程后的任何時候都可以設(shè)置

D.B和C

(31)當瀏覽器重新返回Applet所在頁面時,將調(diào)用Applet類的方法

是()oA.start()B.init()C.stopOD.destroy()

(32)按照Java的標識符命名規(guī)范,下列表示一個類的標識符正確的

是()。

A.HelloworldB.HelloWorldC.helloworldD.helloWorld

(33)下列代碼中,將引起一個編譯錯誤的行是()。

1)publicclassTest{

2)intm,n;

3)publicTest(){}

4)publicTest(inta){m=a;}

5)publicstaticvoidmain(Stringargs口)(

6)Testtl,t2;

7)intj,k;

8)j=O:k=O;

9)tl=newTest();

10)t2=newTest(j,k):

11)}

12)}

A.第3行

B.第5行

C.第6行

D.第10行

(34)下列程序的功能是在監(jiān)控臺上每隔一秒鐘顯示一個字符串“Hell。",

能夠填寫在程序中下劃線位置,使程序完整并能正確運行的語句

是()。

publicclassTestimplementsRunnable{

publicstaticvoidmain(Stringargs[]){

Testt=newTest();

Threadtt=newThread(t);

tt.start();

}

publicvoidrun(){

for(;;){

try(

}catch(e){}

System,put.printin(〃Hello〃);

}

)

}

A.sleep(1000)

InterruptedException

B.sleep(1000)

InterruptedException

C.Thread.sleep(lOOO)

RuntimeException

D.Thread.sleep(1000)

InterruptedException

(35)閱讀下列代碼后

publicclassPerson{

intarr[]=newint[10];

publicstaticvoidmain(Stringargs口)(

System,out.println(arr[l]);

}

)

正確的說法是()o

A.編譯時將產(chǎn)生錯誤B.編譯時正確,運行時將產(chǎn)生錯誤

C.輸出零D.輸出空

(36)在Java中,負責(zé)對字節(jié)代碼解釋執(zhí)行的是()。

A.垃圾回收器B.虛擬機C.編譯器D.多線程機制

(37)下列敘述中,正確的是()。

A.Java語言的標識符是區(qū)分大小寫的

B.源文件名與public類名可以不相同

C.源文件擴展名為.jar

D.源文件中public類的數(shù)目不限

(38)下列屬于合法的Java標識符是()。

A._catB.5booksC.+staticD.-3.14159

(14)在Java中,表示換行符的轉(zhuǎn)義字符是()。

A.\nB.\fC.'n'D.\dd

(39)在Java中,由Java編譯器自動導(dǎo)入,而無需在程序中用import導(dǎo)

入的包是()oA.java,appletB.java,awtC,java,utilD.java,lang

二、填空題

(1)對象串行化可以很容易地擴展成支持Java對象的(),

它提供了對象從流中重建的補充方式.

(2)Vector類的對象是通過capacity和capacityIncrement兩

個值來改變集合的容量,其中capacity表示集合最多能容納的

(),capacityincrement表示每次增加多少容量,不是一個

一個增加.

(3)下列程序的功能是判斷某一年是否為閏年.請在橫線處填入

適當內(nèi)容,使程序能夠正確運行.

importjava.io.

publicclassLeapYear{

publicstaticvoidmain(Stringarge[])throwsIOException{

InputStreamReaderir;

BufferdeReadwein;

ir=newInputStreamReader(System,in);

in=newBufferedReader(ir);

System,out.printIn(“輸入年份是:");

Strings=();

intyear=Integer.parselnt(s);

if(year%4==0&&year%100!=0//year%400==

0)

(

System.out.printin(〃〃+year+〃年是|閏年.〃);

)

else

(

System.out.printin(〃〃+year+〃年不是閏年?,〃);

)

(4)下面程序?qū)?shù)組中每個元素賦值,然后按逆序輸出.請在橫

線處填入適當內(nèi)容,使程序能正常運行.

importjava.io.*;

publicclassArrayTest{

publicstaticvoidmain(Stringargs[]){

inti;

inta[]=newint[5];

for(i=0;i<5;i++)

a[i]=i;

for(();i>=0;i--)

System.out.println(〃a[〃+i+〃]=〃a[i]);

(5)下列程序的功能是:輸入一個姓名,程序運行后,輸出“姓

名Welcomeyou!”,例如,輸入“張三Welcomeyou!”.請在下

面橫線處填入正確的方法名,使程序可以正確運行.

importjava,awt,

importjava.awt.event.

publicclasswelcomenYou{

publicstaticvoidmain(Stringargs[])

(

newFramelnOut();

)

}

classFramelnOutextendsFrameimplementsActionListener

(

Labelprompt;

TextFieldinput,output;

Buttonbtnn;

voidFramlnOut()

(

prompt=newLabel(,zPleaseinputyourname");

input=newTextField(lO);

output=newTextField(25);

btnn=newButton("Class");

()(newFlowLayout());

add(prompt);

add(input);

add(output);

add(btnn);

input.addActionListener(this);

btnn.addActionListener(this);

setSize(300.200);

show();

}

publicvoidactionperformed(ActionEvente)

(

if(e.getSource()==input)

output.setText(input.getText()+,,Welcomeyou!〃);

else

(

dispose();

system,exit(0);

(6)開發(fā)與運行Java程序需要經(jīng)過的三個主要步驟為()、

()和()。

⑺如果一個JavaApplet源程序文件只定義有一個類,該類的類名為

MyApplet,則類MyApplet必須是()類的子類并且存儲該源程序文件

的文件名為()。

(8)如果一個JavaApplet程序文件中定義有3個類,則使用Sun公司的

JDK編譯器()編譯該源程序文件將產(chǎn)生()個文件名與類名相

同而擴展名為()的字節(jié)碼文件。

(9)在Java的基本數(shù)據(jù)類型中,char型采用Unicode編碼方案,每個Unicode

碼占用()字節(jié)內(nèi)存空間,這樣,無論是中文字符還是英文字符,都是

占用()字節(jié)內(nèi)存空間。

(10)設(shè)x=2,則表達式(x++)/3的值是()。

(11)若x=5,y=10,則x<y和x>=y的邏輯值分別為()

和()。

(12)()方法是一種僅有方法頭,沒有具體方法體和操作實現(xiàn)的方法,

該方法必須在抽象類之中定義。()方法是不能被當前類的子類重新定

義的方法。

(13)創(chuàng)建一個名為MyPackage的包的語句是(),該語句應(yīng)該放在程

序的位置為:()。

(14)設(shè)有數(shù)組定義:intMylntArrayt]={10,20,30,40,50,

60,70);則執(zhí)行以下幾個語句后的輸出結(jié)果是()。

ints=0;

for(inti=0;i<MylntArray.length;i++)

if(i%2==1)s+=MylntArray[i];

System,out.printin(s);

(15)在Java程序中,通過類的定義只能實現(xiàn)()重繼承,但通過接口

的定義可以實現(xiàn)()重繼承關(guān)系。

(16)Java源文件中最多只能有一個()類,其它類的個數(shù)不限。

(17)在Java中所實現(xiàn)的多維數(shù)組,實際上是由一維數(shù)組構(gòu)成的()。

(18)StringBuffer類提供()字符串對象的表示。

(19)每個Applet程序必須有一個類是()類的子類。

(20)線程在生命期中要經(jīng)歷5種狀態(tài),分別是新建狀態(tài)、可運行狀態(tài)、運行

狀態(tài)、()狀態(tài)和終止狀態(tài)。

(21)FilelnputStream是字節(jié)流;BufferedWriter是字符流;

ObjectOutputStream是()。

(22)break語句最常見的用法是在switch語句中,通過break語句退出

switch語句,使程序從整個switch語句后面的()開始執(zhí)行。

(23)請閱讀下列程序代碼,然后將程序的執(zhí)行結(jié)果補充完整。

publicclassthrowsException{

staticvoidProc(intsei)

throwsArithmeticException,ArraylndexOutOfBoundsException(

System,out.println(,,InSituation^+sel);

if(sel==0){

System,out.printin(〃noExceptioncaught");

return;

}elseif(sel==l){

intiArray[]=newint[4];

iArray[l]=3;

}

)

publicstaticvoidmain(Stringargs[]){

try(

Proc(0);

Proc(1);

}catch(ArrayIndexOutOfBoundsExceptione){

System,out.printin(〃Catch〃+e);

}finally{

System,out.printin(""inProcfinally");

)

}

執(zhí)行結(jié)果:

InSituation0

noExceptioncaught

()

inProcfinally

答案:InSituation1

(24)當使用Threadt=newThread(r)創(chuàng)建一個線程時,表達式:

rinstanceofThread的值為()。

銀杏樹

蘇州美膚www.szpfmr.net

蘇州祛斑

蘇州除皺

蘇州脫毛

蘇州人才網(wǎng)www.xinyie.com

南京調(diào)查公司www.jslycs.com

南京調(diào)查公司ww.penqiang.net

三、簡答題

1、String是最基本的數(shù)據(jù)類型嗎?

答:基本數(shù)據(jù)類型包括byte、int、char、long、float、double、boolean

和short。

java.lang.String類是final類型的,因此不可以繼承這個類、不能修改

這個類。為了提高效率節(jié)省空間,我們應(yīng)該用StringBuffer類。

2、面向?qū)ο蟮奶卣饔心男┓矫妫亢喪雒總€特征。

3、int和Integer有什么區(qū)別?

答:Java提供兩種不同的類型:引用類型和原始類型(或內(nèi)置類型)。Int

是java的原始數(shù)據(jù)類型,Integer是java為int提供的封裝類。Java為每

個原始類型提供了封裝類。引用類型和原始類型的行為完全不同,并且它們

具有不同的語義。引用類型和原始類型具有不同的特征和用法,它們包括:

大小和速度問題,這種類型以哪種類型的數(shù)據(jù)結(jié)構(gòu)存儲,當引用類型和原始

類型用作某個類的實例數(shù)據(jù)時所指定的缺省值。對象引用實例變量的缺省值

為null,而原始類型實例變量的缺省值與它們的類型有關(guān)。

4、String和StringBuffer的區(qū)別?

答:JAVA平臺提供了兩個類:String和StringBuffer,它們可以儲存和操

作字符串,即包含多個字符的字符數(shù)據(jù)。這個String類提供了數(shù)值不可改

變的字符串。而這個StringBuffer類提供的字符串進行修改。當你知道字

符數(shù)據(jù)要改變的時候你就可以使用StringBuffer?典型地,你可以使用

StringBuffers來動態(tài)構(gòu)造字符數(shù)據(jù)。

5、運行時異常與一般異常有何異同?

答:異常表示程序運行過程中可能出現(xiàn)的非正常狀態(tài),運行時異常表示虛擬

機的通常操作中可能遇到的異常,是一種常見運行錯誤。java編譯器要求

方法必須聲明拋出可能發(fā)生的非運行時異常,但是并不要求必須聲明拋出未

被捕獲的運行時異常。

6、final,finally,finalize的區(qū)別?

答:final用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,

類不可繼承。

finally是異常處理語句結(jié)構(gòu)的一部分,表示總是執(zhí)行。

finalize是Object類的?個方法,在垃圾收集器執(zhí)行的時候會調(diào)用被回收

對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關(guān)閉

文件等。

7、sleep()和wait()有什么區(qū)別?

答:sleep是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時間,給

執(zhí)行機會給其他線程,但是監(jiān)控狀態(tài)依然保持,到時后會自動恢復(fù)。調(diào)用

sleep不會釋放對象鎖。

wait是Object類的方法,對此對象調(diào)用wait方法導(dǎo)致本線程放棄對象鎖,

進入等待此對象的等待鎖定池,只有針對此對象發(fā)出notify方法(或

notifyAll)后本線程才進入對象鎖定池準備獲得對象鎖進入運行狀態(tài)。

8、Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值

的類型?

答:方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。

重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading

是一個類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的

名稱和參數(shù),我們說該方法被重寫(Ovebiding)。子類的對象使用這個方

法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。

如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同

的參數(shù)類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以

改變返回值的類型。

9、abstractclass和interface有什么區(qū)別?

答:聲明方法的存在而不去實現(xiàn)它的類被叫做抽象類(abstractclass),

它用于要創(chuàng)建一個體現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該

類中實現(xiàn)該類的情況。不能創(chuàng)建abstract類的實例。然而可以創(chuàng)建一個變

量,其類型是一個抽象類,并讓它指向具體子類的個實例。不能有抽象構(gòu)

造函數(shù)或抽象靜態(tài)方法。Abstract類的子類為它們父類中的所有抽象方法

提供實現(xiàn),否則它們也是抽象類為。取而代之,在子類中實現(xiàn)該方法。知道

其行為的其它類可以在類中實現(xiàn)這些方法。

接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多

繼承性可通過實現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,沒有

一個有程序體。接口只可以定義staticfinal成員變量。接口的實現(xiàn)與子

類相似,除了該實現(xiàn)類不能從接口定義中繼承行為。當類實現(xiàn)特殊接口時,

它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現(xiàn)了該

接口的類的任何對象上調(diào)用接口的方法。由于有抽象類,它允許使用接口名

作為引用變量的類型。通常的動態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類型或

從接口類型轉(zhuǎn)換,instanceof運算符可以用來決定某對象的類是否實現(xiàn)了

接口。

10、啟動一個線程是用run()還是start()?

答:啟動一個線程是調(diào)用start。方法,使線程所代表的虛擬處理機處于可

運行狀態(tài),這意味著它可以由JVM調(diào)度并執(zhí)行。這并不意味著線程就會立即

運行。run()方法可以產(chǎn)生必須退出的標志來停止一個線程。

11、接口是否可繼承接口?抽象類是否可實現(xiàn)(implements)接口?抽象類是

否可繼承實體類(concreteclass)?

答:接口可以繼承接口。抽象類可以實現(xiàn)(implements)接口,抽象類是否可

繼承實體類,但前提是實體類必須有明確的構(gòu)造函數(shù)。

12、數(shù)組有沒有l(wèi)ength。這個方法?String有沒有l(wèi)ength。這個方法?

答:數(shù)組沒有l(wèi)ength。這個方法,有l(wèi)ength的屬性。String有有l(wèi)ength()

這個方法。

13、構(gòu)造器Constructor是否可被override?

答:構(gòu)造器Constructor不能被繼承,因此不能重寫Overriding,但可以

被重載Overloadingo

14、是否可以繼承String類?

答:String類是final類故不可以繼承。

15、swtich是否能作用在byte上,是否能作用在long上,是否能作用在

String上?

答:switch(exprl)中,exprl是-一個整數(shù)表達式。因此傳遞給switch和

case語句的參數(shù)應(yīng)該是int、short、char或者byte?long,string都

不能作用于swticho

16、try{}里有—個return語句,那么緊跟在這個try后的finally{}里

的code會不會被執(zhí)行,什么時候被執(zhí)行,在return前還是后?

答:會執(zhí)行,在return前執(zhí)行。

17、簡述Java多態(tài)性的概念,隱藏、覆蓋和重載的概念及使用時應(yīng)注意的

問題。

答:多態(tài)性:在一個類中可以定義多個同名方法,有靜態(tài)多態(tài)性和動態(tài)多態(tài)

性。

隱藏:子類重新定義了父類中的同名成員變量。被隱藏的父類成員變量在子

類中仍然占有存儲空間。

覆蓋:子類重新定義了父類的同名成員方法,要求方法名、參數(shù)和返回類型

都相同。與隱臧不同,此時子類方法將替換掉同名的父類方法,清除父類方

法在子類中占有的空間。

重載:在同一個類中定義多個同名但參數(shù)不同的方法,參數(shù)不同是指個數(shù)、

類型或順序不同。

注意事項:

不能覆蓋父類的static方法和final方法。

可以隱臧父類的static方法,即在子類中聲明同名static方法。

非Static方法不能隱藏,只能覆蓋。

子類必須覆蓋父類的abstract方法。

18、什么是事件、事件源和事件監(jiān)聽器?簡述使用事件監(jiān)聽器進行事件處理

的過程。

答:事件:對界面的某種操作,如按鍵、單擊鼠標、鼠標移動等。

事件源:事件的產(chǎn)生者,通常是某一組件,如按鈕等。

事件監(jiān)聽器:是某些事件的接口,其中定義了被監(jiān)聽的事件發(fā)生時系統(tǒng)要調(diào)

用的方法。

事件處理過程由下面3步組成:

①為類聲明需要的事件監(jiān)聽器接口。

②給事件源注冊一個事件監(jiān)聽器。

③實現(xiàn)接口聲明中事件處理方法。

19、簡述Java中構(gòu)造方法的概念及特點。

答:構(gòu)造方法:構(gòu)造方法是一種特殊的方法,用于初始化對象。

特點:①構(gòu)造方法與類同名,可以有參數(shù),也可無參數(shù)。

②構(gòu)造方法沒有返回值,在方法前也不需要寫void。

③創(chuàng)建對象時,系統(tǒng)自動調(diào)用構(gòu)造方法。

④用戶在程序中不能直接調(diào)用構(gòu)造方法,只能通過new操作符調(diào)用。

⑤一個類可以有多個同名構(gòu)造方法,但參數(shù)必須不同。所謂參數(shù)不同

是指:

⑥類中可以不定義構(gòu)造方法,此時Java提供一個默認的無參數(shù)構(gòu)造

方法

20、簡述Java中接口的概念及接口的性質(zhì)?

答:Java語言規(guī)定,類只能實現(xiàn)單繼承,但接口可以實現(xiàn)多重繼承。接口中

定義的方法都是抽象方法,定義的所有域都是常量。

因此接口可以看作是沒有實現(xiàn)的方法和常量的集合。使用接口主要是解決

Java語言不支持多重繼承的問題。

性質(zhì):①接口不提供代碼重用性。因為接口中的方法都是沒有實現(xiàn)的方法,

因此所有的方法體都要自己編寫。

②接口可以通過多繼承進行擴展。

③接口不能升級,即提供給用戶的接口不能再改變。

四、閱讀程序?qū)懡Y(jié)果

1、classVI(

inta=l;

voidml(){System,out.println(a);}

)

classElextendsVI{

inta二2,b=3,c;

voidm2(){System,out.println(a);}

}

classH{

publicstaticvoidmain(String1]s){

Elel=newEl();

el.ml();el.m2();}

)

2^classV1{

publicintx=2;

Vl(){System.out.println("Vln);}

)

classV2extendsV1{

publicintx=3;

V2(){System.out.println(',V2n);}

}

classH{

publicstaticvoidmain(String[]s){

VIel=newV2();

System.out.println(e1.x);}}

3、importjava.io.*;

publicclassabc

{publicstaticvoidmain(Stringargs[])

{ABs=newAB("Hello!n);

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

}

)

classAB{

Stringsi;

Strings2;

AB(Stringstrl,Stringstr2)

{si=strl;s2=str2;}

publicStringtoString()

{returnsl+s2;}

)

4^importjava.io.*;

publicclassabc

(

publicstaticvoidmain(Stringargs[])

{inti,s=0;

inta[]={10,20,30,40,50,60,70,80,90);

for(i=0;i<a.length;i++)

if(a[i]%3==0)s+=a[i];

System.out.println(ns="+s);

)

}

5、classVI{

publicintx=4;

VI(){System,out.printin(^VTO;}

)

classV2extendsVI{

publicintx=7;

V2(){System,out.printinCV2Z,);}

)

classH{

publicstaticvoidmain(String[]s){

VIel=newV2();

System,out.println(el.x);}

)

6、classVI{

inta=3;

voidml(){System,out.println(a);}

)

classElextendsVI{

inta=5,b=3,c;

voidm2(){System,out.println(a);}

}

classH{

publicstaticvoidmain(String[]s){

Elel=newEl();

el.ml();el.m2();}

}

五、閱讀程序,給出程序的功能

1、publicclassH{

publicstaticvoidmain(Stringargs[]){

FactN=newFact(4);

System.out.print(N.fact());

}}

classFact{

intn;

Fact(intnn){n=nn;}

intfact(){

inti,f=l;

for(i=l;i<=n;i++)

f=f*i;

returnf;

})

2、publicclassH{

publicstaticvoidmain(Stringargs[]){

inti,Max,Min;

inta[]={12,67,8,98,23,56,124,55,99,100};

Max=a[0];Min=a[0];

fdr(i=l;i<a.length;i++){

if(a[i]<Min)Min=a[i];

if(a[i]>Max)Max=a[i];

}

System.out.print(Max+""+Min);

})

importjava.io.*;

publicclassabc

{publicstaticvoidmain(Stringargs[])

{SubClasssb=newSubClass();

System.out.println(sb.max());

}

)

classSuperClass

{inta=10,b=20;}

classSubClassextendsSuperClass

{intmax(){return((a>b)?a:b);}}

3、importjava.io.*;

publicclassabc

(

publicstaticvoidmain(Stringargs[])

{inti,n=10,max=0,min=0,temp=0;

try{

BufferedReaderbr=newBufferedReader(

newInputStreamReader(System,in));

max=min=Integer.parselnt(br.readLine());

}catch(lOExceptione){};

for(i=2;i<=n;i++){

try{

BufferedReaderbr=newBufferedReader(

newInputStreamReader(System,in));

temp=Integer,parselnt(br.readLine());

if(temp>max)max二temp;

if(temp<min)min=temp;

}catch(lOExceptione){};

System,out.println(〃niax=〃+niax+〃\ninin="+niin);

4、importjava.awt.*;

publicclassabc

{publicstaticvoidmain(Stringargs[])

newFrameOut();

classFrameOutextendsFrame

{Buttonbtn;

FrameOut()

{super(nbuttonn);

btn=newButton(nclickM);

setLayout(newFlowLayout());

add(btn);

setSize(300,200);

show();

5^publicclassSum

{publicstaticvoidmain(Stringargs[])

{doublesum=0.0;

for(inti=1;i<=100;i++)

sum+=1.0/(double)i;

System.out.println(,,sum="+sum);

}

6、importjava.io.*;

publicclassReverse

{publicstaticvoidmain(Stringargs[])

{inti,n=10;

inta[]=newint[10];

for(i=0;i<n;i++)

try{

BufTeredReaderbr=newBufferedReader(

newInputStreamReader(System.in));

a[i]=Integer.parseInt(br.readLine());//輸入一個整數(shù)

}catch(lOExceptione){};

for(i=n-1;i>=0;i------)

System.out.print(a[i]+n");

System.out.println();

五、閱讀程序?qū)懡Y(jié)果

1、設(shè)計類A和A的派生類B,要求:

1)A有兩個數(shù)據(jù)成員a和b(都為int型);B中繼承了A中的a和b,又

定義了自己的數(shù)據(jù)成員c(int型)。

2)為A添加含有兩個參數(shù)的構(gòu)造方法,對a和b初始化。

3)為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論