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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Java程序設計習題匯編

JAVA程序設計習題集

第一章

1、動手完成Java開發(fā)包的安裝,并設置環(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從命令行輸入。

提示:需要用到java.lang.Math類,Math類中提供了多種用

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

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

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

小寫的方法。

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)下面有關類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)錯誤

?運行結果為:

aisTomnickname=Tiger

bisJacknickname=Horserank=Professor

cisBobbynickname=Elephantrank=Lecture

D.運行結果為:

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)我們可以通過,使得處于不同層次,甚至互不

相關的類具

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

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

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

現(xiàn)接口。

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

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

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

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

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

個屬性:

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

另為還有一個

獎金屬性。請使用繼承的思想設計出員工類和經理類。要求類中

提供必要的方

法進行屬性訪問。

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

方法接受3個同

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

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

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

口的類,分

別進行加減乘除的運算。

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

寫字母,另一個類

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

和將“E”

變?yōu)椤癳”。

第四章

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

Try{

}catch(Exceptione){

}catch(FileNotFoundExceptiona){

2、簡述異常拋出策略經驗

3、簡述異常捕獲策略

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

Throwable)的理由。

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

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

第五章

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

這是我的第一

個GUI程序“

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

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

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

第六章

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

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

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

示出來。

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

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

下工作:

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

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

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

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

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

第七章

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

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

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

第八章

1、填空題

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

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

通信。

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

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

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

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

Socket對象的方法來關閉通信Socket0

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

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

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

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

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

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

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

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

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

⑺待通信任務完畢后,用DatagramSocket對象的

方法來關閉

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

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

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

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

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

2、利用Socket套接字進行面向連接通信的編程。客戶端發(fā)送文

件;服務器端接收

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

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

收并顯示其用戶名,

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

戶?!埃瑢t返

回“你好,歡迎光臨”。

4、編寫一個讀取圖像文件的應用程序,參數(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)出版公司編號(關鍵

字)

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練習題

一、填空題

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

并行機制的特點?(B)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

A)都由Listener完成B)都由相應事件Listener處登記過的構件完成

C)由Listener和構件分別完成D)由Listener和窗口分別完成

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

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

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

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

A)JFrameB)JButtonC)JPnelD)JApplet

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

(B)

A)BoxLayoutB)GridLayoutC)BorderLayoutD)FlowLouLayout

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

A)FilterstreamB)FilestreamC)RandomaccessstreamD)Pipdestream

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

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

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

(12)設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作為前綴就可以調用它,該方法頭的形式為()。

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語句說明一個包時,該包的層次結構必須是

()?

A.與文件的結構相同B.與文件目錄的層次相同C.與文件類型相同D.與

文件大小相同

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

()oA.BufferReaderB.DatalnputStreamC.DataOutoutStream

D.FilelnputStream

(19)下列構造方法的調用方式中,正確的是()。

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

系統(tǒng)調用

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

A.GridLayoutB.BorderLayoutC.FlowLayoutD.CardLayout

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

A.內部類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)下列關于JavaApplication與Applet的說法中,正確的是()。

A.都包含main。方法

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

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

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

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

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

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

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

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

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

D.B和C

(31)當瀏覽器重新返回Applet所在頁面時,將調用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.編譯時將產生錯誤B.編譯時正確,運行時將產生錯誤

C.輸出零D.輸出空

(36)在Java中,負責對字節(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中,表示換行符的轉義字符是()。

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

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

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

二、填空題

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

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

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

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

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

一個增加.

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

適當內容,使程序能夠正確運行.

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)下面程序對數(shù)組中每個元素賦值,然后按逆序輸出.請在橫

線處填入適當內容,使程序能正常運行.

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程序需要經過的三個主要步驟為()、

()和()。

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

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

的文件名為()。

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

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

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

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

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

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

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

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

和()。

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

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

義的方法。

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

序的位置為:()。

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

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

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)()重繼承關系。

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

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

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

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

(20)線程在生命期中要經歷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í)行結果補充完整。

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í)行結果:

InSituation0

noExceptioncaught

()

inProcfinally

答案:InSituation1

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

rinstanceofThread的值為()。

銀杏樹

蘇州美膚www.szpfmr.net

蘇州祛斑

蘇州除皺

蘇州脫毛

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

南京調查公司www.jslycs.com

南京調查公司ww.penqiang.net

三、簡答題

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

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

和short。

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

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

2、面向對象的特征有哪些方面?簡述每個特征。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

被捕獲的運行時異常。

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

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

類不可繼承。

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

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

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

文件等。

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

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

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

sleep不會釋放對象鎖。

wait是Object類的方法,對此對象調用wait方法導致本線程放棄對象鎖,

進入等待此對象的等待鎖定池,只有針對此對象發(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)。子類的對象使用這個方

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

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

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

改變返回值的類型。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

接口。

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

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

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

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

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

否可繼承實體類(concreteclass)?

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

繼承實體類,但前提是實體類必須有明確的構造函數(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、構造器Constructor是否可被override?

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

被重載Overloadingo

14、是否可以繼承String類?

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

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

String上?

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

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

不能作用于swticho

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

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

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

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

問題。

答:多態(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)聽器進行事件處理

的過程。

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

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

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

用的方法。

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

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

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

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

19、簡述Java中構造方法的概念及特點。

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

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

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

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

④用戶在程序中不能直接調用構造方法,只能通過new操作符調用。

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

是指:

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

方法

20、簡述Java中接口的概念及接口的性質?

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

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

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

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

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

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

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

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

四、閱讀程序寫結果

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();

五、閱讀程序寫結果

1、設計類A和A的派生類B,要求:

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

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

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

3)為

溫馨提示

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

評論

0/150

提交評論