JAVA認(rèn)證歷年真題:SCJP考試真題和解析(二)_第1頁
JAVA認(rèn)證歷年真題:SCJP考試真題和解析(二)_第2頁
JAVA認(rèn)證歷年真題:SCJP考試真題和解析(二)_第3頁
JAVA認(rèn)證歷年真題:SCJP考試真題和解析(二)_第4頁
JAVA認(rèn)證歷年真題:SCJP考試真題和解析(二)_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

JAVA認(rèn)證歷年真題:SCJP考試真題和解析(2)

1.Whichofthefollowingrangeofshortiscorrect?

A.-27-27-1

B.0—216-1

C.?215—215-1

D.?231—231-1

翻譯下面哪些是short型的取值范圍。

答案C

解析短整型的數(shù)據(jù)類型的長度是16bits,有符號。另外需要說明的是java中所有

的整(Integral)數(shù)(包括byte,short,int,long)全是有符號的。

2.Whichdeclarationsofidentifiersarelegal?

A.$persons

B.TwoUsers

C.*point

D.this

E._endline

翻譯下面哪些是合法的標(biāo)識符。

答案A,B,E

解析Java的標(biāo)識符可以以一個Unicode字符,下滑線(_),美元符($)開始,后續(xù)字

符可以是前面的符號和數(shù)字,沒有長度限制,大小寫敏感,不能是保留字。

3.Whichstatementofassigningalongtypevariabletoahexadecimalvalue

iscorrect?

A.longnumber=345L;

B.longnumber=0345;

C.longnumber=0345L;

D.longnumber=0x345L

翻譯哪些是將一個卜六進制值賦值給一個long型變量。

答案D

解析十六進制數(shù)以O(shè)x開頭,long型數(shù)以L(大小寫均可,一般使用大寫,因為小寫

的1和數(shù)字1不易區(qū)分)。

4.Whichofthefollowingfragmentsmightcauseerrors?

A.Strings="Gonewiththewind”;

Stringt=〃good〃;

Stringk=s+t;

B.Strings="Gonewiththewind”;

Stringt;

t=s[3]+〃one〃;

C.Strings="Gonewiththewind”;

Stringstandard=s.toUpperCase();

D.Strings="homedirectory”;

Stringt=s-"directory”;

翻譯下面的哪些程序片斷可能導(dǎo)致錯誤。

答案B,D

解析

A:String類型可以直接使用+進行連接運算。

B:String是一種Object,而不是簡單的字符數(shù)組,不能使用下標(biāo)運算符取其值的某

個元素,錯誤。

C:toUpperCaseO方法是String對象的一個方法,作用是將字符串的內(nèi)容全部轉(zhuǎn)換為

大寫并返回轉(zhuǎn)換后的結(jié)果(String類型)。

D:String類型不能進行減(一)運算,錯誤。

5.Whicharesyntacticallyvalidstatementat//pointx?

classPerson(

privateinta;

publicintchange(intm){returnm;}

)

publicclassTeacherextendsPerson{

publicintb;

publicstaticvoidmain(Stringarg[]){

Personp=newPerson();

Teachert=newTeacher();

inti;

//pointx

I

)

A.i=m;

B.i=b;

C.i=p.a;

D.i=p.change(30);

E.i=t.b.

翻譯在〃pointx處的哪些申明是句法上合法的。

答案D,E

解析

A:m沒有被申明過,不能使用。

B:雖然b是類Teacher的public成員變量,但是在靜態(tài)方法中不能使用類中的非靜

態(tài)成員。

C:a是類Person的private成員,在類外不能直接引用。

D:change(intm)方法是public方法,并且返回一個int型值,可以通過類的實例變

量P引用并賦值給一個int型變量。

E:b是類Teacher的public成員變量,且是int型,可以通過類的實例變量t引用

并賦值給一個int型變量。

6.Whichlayoutmanagerisusedwhentheframeisresizedthebuttons*s

positionintheFramemightbechanged?

A.BorderLayout

B.FlowLayout

C.CardLayout

D.GridLayout

翻譯當(dāng)Frame的大小被改變時Frame中的按鈕的位置可能被改變時使用的哪?個布局

管理器。

答案B

解析

A:該布局管理器將容器劃分為五個部分,容器大小的改變不會影響其中的組件的位置

而是影響他們的大小。

B:該布局管理器根據(jù)放入其中的組件的最合適大小調(diào)整組件的位置,根據(jù)組件放入的

順序安排,一行不能容納時放入下一行,因此容器的大小改變可能改變組件的位置。

C:該布局管理器顯示放入該容器的當(dāng)前頁中的組件,一次顯示一個,容器大小的改變

不能影響其中組件的位置。

D:該布局管理器將容器劃分為固定的網(wǎng)格,組件加入后占據(jù)一個單元,各組件的相對

位置不會因為容器的大小變化而變化,改變的只是組件的大小。

7.Giventhefollowingcodefragment:

1)publicvoidcreate(){

2)VectormyVect;

3)myVect=newVector();

4)}

Whichofthefollowingstatementsaretrue?

A.Thedeclarationonline2doesnotallocatememoryspaceforthe

variablemyVect.

Thedeclarationonline2allocatesmemoryspaceforareferencetoa

Vectorobject.

C.Thestatementonline2createsanobjectofclassVector.

D.Thestatementonline3createsanobjectofclassVector.

E.Thestatementonline3allocatesmemoryspaceforanobjectofclass

Vector

翻譯

給出下面的代碼片斷。。。下面的哪些陳述為true(真)?

A.第二行的聲明不會為變量myVect分配內(nèi)存空間。

B.第二行的聲明分配一個到Vector對象的引用的內(nèi)存空間。

C.第二行語句創(chuàng)建-一個Vector類對象。

D.第三行語句創(chuàng)建一個Vector類對象。

E.第三行語句為一個Vector類對象分配內(nèi)存空間。

答案A,D,E

解析

SL-275中指出:要為一個新對象分配空間必須執(zhí)行newXxx()調(diào)用,new調(diào)用執(zhí)行以

下的操作:

1.為新對象分配空間并將其成員初始化為0或者null。

2.執(zhí)行類體中的初始化。(例如在類中有一個成員聲明inta=10;在第一步后a=0,執(zhí)

行到第二步后a=10)

3.執(zhí)行構(gòu)造函數(shù)。

4.變量被分配為一個到內(nèi)存堆中的新對象的引用。

8.Whichofthefollowingansweriscorrecttoexpressthevalue8inoctal

number?

A.010

B.0x10

C.08

D.0x8

翻譯

下面的哪些答案可以用以表示八進制值8。

答案A

解析八進制值以0開頭,以O(shè)x開頭的為十六進制值,八進制中不能出現(xiàn)數(shù)字8,

最大只有7。

9.WhicharenotJavakeywords?

A.TRUE

B.sizeof

C.const

D.super

E.void

翻譯

哪些不是Java關(guān)鍵字。

答案A,B

解析

A:不是,Java中有true,但是這也不是關(guān)鍵字而是字面量(literal)。

B:不是,Java中不需要這個操作符,所有的類型(原始類型)的大小都是固定的。

C、D、E都是,需要說明的是const是java中未被使用的關(guān)鍵字。

10.Whichofthefollowingstatementsaretrue?

A.Theequals()methoddeterminesifreferencevaluesrefertothesame

object.

B.The==operatordeterminesifthecontentsandtypeoftwoseparate

objectsmatch.

C.Theequals()methodreturnstrueonlywhenthecontentsoftwoobjects

match.

D.TheclassFileoverridesequals()toreturntrueifthecontentsand

typeoftwoseparateobjectsmatch.

翻譯

下面的哪些敘述為真。

A.equals()方法判定引用值是否指向同一對象。

B.==操作符判定兩個分立的對象的內(nèi)容和類型是否一致。

C.equals。方法只有在兩個對象的內(nèi)容一致時返回true。

D.類File重寫方法equals()在兩個分立的對象的內(nèi)容和類型一致時返回true。

答案A,D

解析嚴(yán)格來說這個問題的答案是不確定的,因為equals。方法是可以被重載的,但

是按照java語言的本意來說:如果沒有重寫(override)新類的equals。,則該方法和=

操作符一樣在兩個變量指向同一對象時返回真,但是java推薦的是使用equals。方法來

判斷兩個對象的內(nèi)容是否一樣,就像String類的equals。方法所做的那樣:判定兩個

String對象的內(nèi)容是否相同,而==操作符返回true的唯一條件是兩個變量指向同一對象。

從這個意義上來說選擇給定的答案。從更嚴(yán)格的意義來說正確答案應(yīng)該只有d

11.Whichstatementsaboutinheritancearetrue?

A.InJavaprogramminglanguageonlyallowssingleinheritance.

B.InJavaprogramminglanguageallowsaclasstoimplementonlyone

interface.

C.InJavaprogramminglanguageaclasscannotextendaclassandimplement

ainterfacetogether.

D.InJavaprogramminglanguagesingleinheritancemakescodemore

reliable.

翻譯

下面關(guān)于繼承的哪些敘述是正確的。

A.在java中只允許單一繼承。

B.在java中一個類只能實現(xiàn)一個接口。

C.在java中一個類不能同時繼承一個類和實現(xiàn)一個接口。

D.java的單一繼承使代碼更可靠。

答案A,D

解析在java中一個類只能有一個直接父類,但是可以實現(xiàn)多個接口,在繼承的同時

可以實現(xiàn)接口,之所以取消多繼承的原因是多繼承使得代碼產(chǎn)生很多問題,而使用單一繼承

則可以使代碼更可靠。

12.

1)classPerson{

2)publicvoidprintValue(inti,intj){/*???*/}

3)publicvoidprintValue(inti){/*…*/}

4))

5)publicclassTeacherextendsPerson(

6)publicvoidprintValueO{/*...*/}

7)publicvoidprintValue(inti){/*…*/}

8)publicstaticvoidmain(Stringargs[]){

9)Persont=newTeacher();

10)t.printValue(10);

ID)

⑵}

Whichmethodwillthestatementonline10call?

A.online2

B.online3

C.online6

D.online7

翻譯

第十行的聲明將調(diào)用哪些方法。

答案D

解析變量t是一個Person對象,但是它是用Teacher實例化的,這個問題涉及到

java的編譯時多態(tài)和運行時多態(tài)的問題,就編譯時多態(tài)來說,t實際上是一個Person類,

這涉及到類型的自動轉(zhuǎn)換(將一個子類的實例賦值給一個父類的變量是不用進行強制類型轉(zhuǎn)

換,反之則需要

進行強制類型轉(zhuǎn)換,而且被賦值的變量實際上應(yīng)該是一個子類的對象),如果對t調(diào)用

了子類中新增的方法則造成編譯時錯誤編譯將不能通過,而在運行時,運行時系統(tǒng)將根據(jù)

t實際指向的類型調(diào)用對應(yīng)的方法,對于本例來說,t.print(10)將調(diào)用t實際指向的

Teacher類的對應(yīng)方法。在java中,可以用■個子類的實例實例化父類的一個變量,而變

量在編譯時是一個父類實例,在運行時可能是一個子類實例。

13.WhicharenotJavaprimitivetypes?

A.short

B.Boolean

C.unit

D.float

翻譯

下面哪些不是java的原始數(shù)據(jù)類型。

答案B,C

解析Java的原始數(shù)據(jù)類型一共就八個,分別是:

byte,short,int,long,boolean,char,float,double。注意這些是大小寫敏感的,而

Boolean是booelan的封裝類(wrapperclass)。

14.Usetheoperators〃<<〃,〃>>〃,whichstatementsaretrue?

A.00000100000000000000000000000000?5gives

10000000000000000000000000000000

B.00000100000000000000000000000000?5gives

1111110000000000oooooooooooooooo

C.1100OOOOOOOOOOOOOOOOOOOOOOOO0000?5gives

11111110oooooooooooooooooooooooo

D.1100OOOOOOOOOOOOOOOOOOOOOOOO0000?5gives

OOOO0110oooooooooooooooooooooooo

翻譯

使用和"》"操作符的哪些陳述是對的。

答案A,c

解析Java的移位操作符一共有三種,分別是“>>“,">>>",”《",執(zhí)行的操作分

別是有符號右移,無符號右移,左移,有符號右移的意思是說移入的最高位和原最高符號

位相同,無符號右移是移入位始終補零,左移時最低位始終補零,最高位被舍棄。移位操

作符另一個非常值得注意的特點是其右操作數(shù)是取模運算的,意思是說對于一個int型數(shù)

據(jù)而言,對它移位32位的結(jié)果是保持不變而非變成零,即:a>〉32的結(jié)果是a而不是0,

同理,對long型數(shù)是對右操作數(shù)取64的模,a?64==a;還有一點需要注意的是移位操作

符">>>"只對int型和long型有效,對byte或者short的操作將導(dǎo)致自動類型轉(zhuǎn)換,而

且是帶符號的。

15.Whichofthefollowingrangeofintiscorrect?

A.-27-27-1

B.0—232-1

C.?215—215-1

D.?231—231-1

翻譯

int的取值范圍是哪個。

答案D

解析int型是32位的。參看第一題的論述。

16.Whichkeywordshouldbeusedtoenableinteractionwiththelockofan

object?Theflagallowsexclusiveaccesstothatobject.

A.transient

B.synchronized

C.serialize

D.static

翻譯

下面的哪些關(guān)鍵字通常用來對對象的加鎖,該標(biāo)記使得對對象的訪問是排他的

答案B

解析由于java是多線程的語言,多個線程可以“同時”訪問同一數(shù)據(jù)區(qū),而在處理

某些數(shù)據(jù)時不希望其它的線程修改那些數(shù)據(jù)的值或者某些操作是不可打斷的,要做到這個,

可以使用synchronized關(guān)鍵字聲明這一點。

17.WhichisthereturntypeofthemethodmainO?

A.int

B.void

C.boolean

D.static

翻譯

main()方法的返回類型是什么?

答案B

解析在java中,程序運行的入口就是main。方法,它必須是這樣的形式:

publicstaticvoidmain(Stringargs[])?但是嚴(yán)格來講這個題目的答案還可以加上a

和c,因為并沒有限定是程序入口的main。方法,而main。方法是可以重載的。一般意義

上的mainO當(dāng)然就是指我們剛開始所說的main()方法了。

18.Giventhefollowingcode:

if(x>0){System,out.println(^first,/);}

elseif(x>-3){System,out.printin(,,second,z);}

else{System,out.println(〃third〃);}

Whichrangeofxvaluewouldprintthestring〃second”?

A.x>0

B.x>-3

C.x<=-3

D.x<=0&x>-3

翻譯

給出下面的代碼:

x的取值在什么范圍內(nèi)時將打印字符串〃second"。

答案D

解析x>0時打印〃first",x>-3&&x<二0時打印〃second",x<=3時打印〃third"。這

個題目沒有什么難的,只要理解if語句的語法就可以了。

19.GiventhefollowingexpressionaboutTextFieldwhichuseaproportional

pitchfont.

TextFieldt=newTextField(z/theyaregood”,40);

Whichstatementistrue?

A.Thedisplayedstringcanusemultiplefonts.

B.Themaximumnumberofcharactersinalinewillbe40.

C.Thedisplayedwidthisexactly40characters.

D.Theusercaneditthecharacters.

翻譯

給出以下關(guān)于一個使用適當(dāng)?shù)淖址g距的字體的TextField的表達式。

哪些敘述是對的?

A.被顯示的字符串可以使用多種字體。

B.一行中最大的字符數(shù)是40

C.顯示的寬度正好是40個字符寬。

D.用戶可以編輯字符。

答案D

解析對于TextField的該種形式的構(gòu)造函數(shù)來說,前一個參數(shù)是文本域中初始的字

符串的顯示值,而后一個是推薦的顯示寬度,以列數(shù)表示,在構(gòu)造文木域的時候會將這個

大小設(shè)置為最佳大小,如果容器的限制使得文本域不能顯示這么多也沒有辦法,?殷來說

是比這個大小大的,而且即使寬度很小,你也可以在文本域的一行中輸入很長的字符串,

只有你不使用回車,在超過顯示寬度后文本域會自動出現(xiàn)水平滾動條(沒有被設(shè)置為關(guān)閉,

缺省是不關(guān)閉的),而文本域的缺省編輯方式是可編輯的,一個文本域只能使用一種字體,

這個字體可以在運行的過程中動態(tài)的改變,但是文本域中的所有字符串都將使用這個字體

顯示。

20.Whichstatementsaboutthegarbagecollectionaretrue?

A.Theprogramdevelopermustcreateathreadtoberesponsibleforfree

thememory.

B.Thegarbagecollectionwillcheckforandfreememorynolongerneeded.

C.Thegarbagecollectionallowtheprogramdevelopertoexplicityand

immediatelyfreethememory.

D.Thegarbagecollectioncanfreethememoryusedjavaobjectatexpect

time.

翻譯

關(guān)于垃圾收集的哪些敘述是對的。

A.程序開發(fā)者必須自己創(chuàng)建一個線程進行內(nèi)存釋放的工作。

B.垃圾收集將檢查并釋放不再使用的內(nèi)存。

C.垃圾收集允許程序開發(fā)者明確指定并立即釋放該內(nèi)存。

D.垃圾收集能夠在期望的時間釋放被java對象使用的內(nèi)存。

答案B

解析Java語言將內(nèi)存分配和釋放的工組交給了自己,程序員不必做這些工作,它提

供一個系統(tǒng)級的線程跟蹤每個內(nèi)存的分配,在JVM的空閑處理中,垃圾收集線程將檢查和

釋放不再使用的內(nèi)存(即可以被釋放的內(nèi)存)。垃圾收集的過程在java程序的生存期中是自

動的,不需要分配和釋放內(nèi)存,也避免了內(nèi)存泄漏??梢哉{(diào)用System.gc()方法建議

(suggest)JVM執(zhí)行垃圾收集以使得可被釋放的內(nèi)存能立即被使用,當(dāng)此方法返回的時候,

JVM已經(jīng)做了最大的努力從被丟棄的對象上回收內(nèi)存空間。程序員不能指定收集哪些內(nèi)存,

一般而言也不用關(guān)心這個問題,除非是程序的內(nèi)存消耗很大,特別是有很多臨時對象時可

以“建議”進行垃圾收集以提高可用內(nèi)存。需要指出的是調(diào)用System.gc()方法不能保證

JVM立即進行垃圾收集,而只能是建議,因為垃圾收集線程的優(yōu)先級很低(通常是最低的)。

21、Whichofthefollowingassignmentisnotcorrect?

A.floatf=11.1;

B.doubled=5.3E12;

C.doubled=3.14159;

D.doubled=3.14D.

(a)

題目:下面的哪些賦值語句是對的。

浮點數(shù)的賦值是帶有小數(shù)點的數(shù)字缺省是double型的,如果在浮點數(shù)后面加f或者F

則是float,后面加d或者D則是double,科學(xué)計數(shù)法形式的浮點數(shù)也是double型的,而

double的精度比float高,將?個高精度的double賦值給一■個低精度的float時需要進

行強制類型轉(zhuǎn)換,反之則不需要。

22、Giventheuncompletedcodeofaclass:

classPerson(

Stringname,department;

intage;

publicPerson(Stringn){name=n;)

publicPerson(Stringn,inta){name=n;age=a;}

publicPerson(Stringn,Stringd,inta){

//doingthesameastwoargumentsversionofconstructor

//includingassignmentname二n,age二a

department=d;

)

I

Whichexpressioncanbeaddedatthe“doingthesameas...partofthe

constructor?

A.Person(n,a);

B.this(Person(n,a));

C.this(n,a);

D.this(name,age).

(c)

題目:給出下面的不完整的類代碼:

下面的哪些表達式可以加到構(gòu)造方法中的"doingthesameas...”處?

在同一個類的不同構(gòu)造方法中調(diào)用該類的其它構(gòu)造方法需要使用this(…)的形式,而

且必須是在構(gòu)造方法的第一行調(diào)用,這個和普通的方法重載調(diào)用的方式不同,普通的方法

可以直接使用方法名加參數(shù)來調(diào)用,而且調(diào)用位置沒有限制,因此答案A是不行的,B的

語法就是錯誤的,D的錯誤在于在父類型的構(gòu)造函數(shù)被調(diào)用前不能引用類的成員。構(gòu)造方

法是一個類對象實例化的起點(雖然嚴(yán)格來說首先執(zhí)行的并不是構(gòu)造方法的第一個語句,而

是內(nèi)存的分配),因此在構(gòu)造方法中不能將成員作為參數(shù)引用。

23、Whichofthefollowingstatementsaboutvariablesandtheirscopesare

true?

A.Instancevariablesaremembervariablesofaclass.

B.Instancevariablesaredeclaredwiththestatickeyword.

C.Localvariablesdefinedinsideamethodarecreatedwhenthemethodis

executed.

D.Localvariablesmustbeinitializedbeforetheyareused.

(acd)

題目:下面關(guān)于變量及其范圍的陳述哪些是對的。

A.實例變量是類的成員變量。

B.實例變量用關(guān)鍵字static聲明。

C.在方法中定義的局部變量在該方法被執(zhí)行時創(chuàng)建

D.局部變量在使用前必須被初始化。

類中有幾種變量,分別是:局部變量(英文可以為:

local\automatic\temporary\stackvariable)是定義在方法里的變量;實例變量(英文為:

instancevariable)是在方法外而在類聲明內(nèi)定義的變量,有時也叫成員變量;類變量(英

文為:classvariable)是用關(guān)鍵字static聲明的實例變量,他們的生存期分別是:局部

變量在定義該變量的方法被調(diào)用時被創(chuàng)建,而在該方法退出后被撤銷;實例變量在使用new

XxxxO創(chuàng)建該類的實例時被創(chuàng)建,而其生存期和該類的實例對象的生存期相同;類變量在該

類被加載時被創(chuàng)建,不一定要用newXxxxO創(chuàng)建,所有該類的實例對象共享該類變量,其

生存期是類的生存期。任何變量在使用前都必須初始化,但是需要指出的是局部變量必須顯

式初始化,而實例變量不必,原始類型的實例變量在該類的構(gòu)造方法被調(diào)用時為它分配的

缺省的值,整型是0,布爾型是false,而浮點型是0.Of,引用類型(類類型)的實例變量

的缺省值是null(沒有進行實際的初始化,對它的使用將引起NullPointException),類變

量的規(guī)則和實例變量一樣,不同的是類變量的初始化是在類被加載時。

24、publicvoidtest(){

try{oneMethodO;

System,out.printin(^condition1〃);

}catch(ArrayIndexOutOfBoundsExceptione){

System,out.printin(,zcondition2〃);

}catch(Exceptione){

System,out.printin(^condition3〃);

}finally{

System,out.println(,,finally,z);

;

}

WhichwilldisplayifoneMethodrunnormally?

A.condition1

B.condition2

C.condition3

D.finally

(ad)

題目:在oneMethodO方法運行正常的情況下將顯示什么?

如果by塊中的語句在執(zhí)行時發(fā)生異常,則執(zhí)行從該處中斷而進入catch塊,根據(jù)異

常的類型進行匹配,最前面的優(yōu)先進行匹配比較,只要該異常是catch中指定的異常的子

類就匹配成功進而執(zhí)行相應(yīng)的catch中的內(nèi)容,而finally塊中的內(nèi)容無論是否發(fā)生異常

都將被執(zhí)行。

25、Giventhefollowingcode:

publicclassTest{

voidprintValue(intm){

do{System,out.println(,?Thevalueis"+m);

)

while(-m>10)

}

publicstaticvoidmain(Stringarg[]){

inti=10;

Testt=newTest();

t.printValue(i);

)

)

Whichwillbeoutput?

A.Thevalueis8

B.Thevalueis9

C.Thevalueis10

D.Thevalueis11

(c)

題目:給出下面的代碼:

輸出將是什么?

此題考察的是do…while循環(huán)和一操作符的知識,do…while最少被執(zhí)行一次,在

執(zhí)行完do中的內(nèi)容后判斷while中的條件是否為true,如果為true的話就再執(zhí)行do中

的內(nèi)容,然后再進行判斷,以此類推直到while的判斷為false時退出循環(huán)執(zhí)行循環(huán)后面

的內(nèi)容,而一操作符的規(guī)則是在變量右邊的一將先進行運算,然后才是使變量的值減一,

而在變量左邊的是先將變量的值減?再運算

26、Whichofthefollowingstatementsaboutdeclarationaretrue?

A.Declarationofprimitivetypessuchasboolean,byteandsoondoesnot

allocatememoryspaceforthevariable.

B.Declarationofprimitivetypessuchasboolean,byteandsoonallocates

memoryspaceforthevariable.

C.DeclarationofnonprimitivetypessuchasString,Vectorandsoondoes

notallocatememoryspacefortheobject.

D.DeclarationofnonprimitivetypessuchasString,Vectaonsrsoon

allocatesmemoryspacefortheobject.

(ad)

題目:下面的有關(guān)聲明的哪些敘述是對的。

A.對原始數(shù)據(jù)類型例如boolean,byte的變量的聲明不會為該變量分配內(nèi)存空間。

B.對原始數(shù)據(jù)類型例如boolean,byte的變量的聲明將為之分配內(nèi)存空間。

C.非原始數(shù)據(jù)類型例如String,Vector的變量的聲明不會為該對象分配內(nèi)存。

D.非原始數(shù)據(jù)類型例如String,Vector的變量的聲明會為該對象分配內(nèi)存。

對原始數(shù)據(jù)類型的變量的聲明將為之分配內(nèi)存并賦予一個缺省值,參見23題的敘述,

而非原始數(shù)據(jù)類型的變量必須用newXxxx()分配內(nèi)存及初始化。但是嚴(yán)格來講此題的答案

有待確定,因為只有原始類型的實例變量和類變量的聲明在類對象被創(chuàng)建/類被加載時完成

內(nèi)存的自動分配,而原始類型的局部變量必須顯式初始化,從這點來看原始類型的局部變

量沒有被自動分配內(nèi)存,SL275中只提出了非原始數(shù)據(jù)類型的變量必須使用newXxxx()完

成內(nèi)存的分配而沒有指出原始數(shù)據(jù)類型的變量是否在聲明時即自動進行內(nèi)存分配,而從局

部變量不能在顯式初始化前使用這點來看在聲明時沒有進行內(nèi)存分配。因此答案a的正確

性還有待官方的確定。

27、IntheJavaAPIdocumentationwhichsectionsareincludedinaclass

document?

A.Thedescriptionoftheclassanditspurpose

B.Alistofmethodsinitssuperclass

C.Alistofmembervariable

D.Theclasshierarchy

(acd)

題目:在JavaAPI文檔中下面的哪些部分被包括在內(nèi)

A.類及用途的描述

B.父類的方法的列表

C.成員變量的列表

D.類層次

類文檔的內(nèi)容主要是:類層次、類及用途描述、成員變量列表、構(gòu)造方法列表、成員

方法列表、從類層次上繼承的方法列表、成員變量的詳細說明、構(gòu)造方法詳細說明、成員

方法詳細說明。

28、Giventhefollowingcode:

1)publicvoidmodify(){

2)inti,j,k;

3)i=100;

4)while(i>0){

5)j=i*2;

6)System,out.printin(〃Thevalueofjis〃+j);

7)k=k+1;

8)i-;

9))

10))

Whichlinemightcauseanerrorduringcompilation?

A.line4

B.line6

C.line7

D.line8

(c)

題目:給出下面的代碼:

哪些行在編譯時可能產(chǎn)生錯誤。

這個問題在前面有關(guān)變量的類型及其作用域的問題中討論過,局部變量在使用前必須

顯式初始化,而代碼中的變量k在使用前沒有。

29、Whichofthefollowingstatementsaboutvariablesandscopearetrue?

A.Localvariablesdefinedinsideamethodaredestroyedwhenthemethodis

exited.

B.Localvariablesarealsocalledautomaticvariables.

C.Variablesdefinedoutsideamethodarecreatedwhentheobjectis

constructed.

I).Amethodparametervariablecontinuestoexistforaslongastheobject

isneededinwhichthemethodisdefined.

(abc)

題目:下面有關(guān)變量及其作用域的陳述哪些是對的。

A.在方法里面定義的局部變量在方法退出的時候被撤銷。

B.局部變量也叫自動變量。

C.在方法外面定義的變量(譯注:即實例變量)在對象被構(gòu)造時創(chuàng)建。

D.在方法中定義的方法的參變量只要該對象被需要就一直存在。

本題還是討論變量的類型及作用域,參看前面的敘述。

30、Aclassdesignrequiresthatamembervariablecannotbeaccessible

directlyoutsidetheclass.Whichmodifiershouldbeusedtoobtaintheaccess

control?

A.public

B.nomodifier

C.protected

I),private

(d)

題目:類的設(shè)計要求它的某個成員變量不能被外部類直接訪問。應(yīng)該使用下面的哪些

修飾符獲得需要的訪問控制。

這個在前面也有敘述,java有四種訪問類型,分別為:

public,protected,default,private,其中public變量可以被所有的外部類訪問,而

pretected的可以被同一個包及該類的子類訪問,default即沒有任何修飾符的變量可以被

同一個包中的類訪問,而private變量只能在被該類內(nèi)部被訪問。題目中的外部類應(yīng)該理

解為除該類自身的所有其它類,因此只有使用private可以達到要求。

31、Giventhefollowingcodefragment:

1)Stringstr=null;

2)if((str!=null)&&(str.length()>10)){

3)System,out.printin(,zmorethan10〃);

4))

5)elseif((str!=null)&(str.length()<5)){

6)System,out.printIn(^lessthan5〃);

7))

8)else(System,out.println(〃end〃);)

Whichlinewillcauseerror?

A.line1

B.line2

C.line5

D.line8

(c)

題目:給出下面的代碼片斷:

哪些行將導(dǎo)致錯誤。

此題需要將代碼仔細看清楚,查詢沒有邏輯錯誤,if…else的使用沒有問題,也沒

有拼寫錯誤,錯誤在于第5行的“與”操作符的使用,邏輯操作符(logicaloperator)的

“與"應(yīng)該是而&是位邏輯操作符(bitwiselogicaloperator)的“與”,使用的對象

不一樣,邏輯操作符的“與”的左右操作數(shù)都應(yīng)該是布爾型Qogicalboolan)的值,而位

邏輯操作符的左右操作數(shù)都是整型(integral)值。

32>WhichstatementsaboutJavacodesecurityaretrue?

A.Thebytecodeverifierloadsallclassesneededfortheexecutionofa

program.

B.Executingcodeisperformedbytheruntimeinterpreter.

C.Atruntimethebytecodesareloaded,checkedandruninaninterpreter.

D.Theclassloaderaddssecuritybyseparatingthenamespacesforthe

classesofthelocalfilesystemfromthoseimportedfromnetworksources.

(bed)

題目:卜面有關(guān)java代碼安全性的敘述哪些是對的。

A.字節(jié)碼校驗器加載查詢執(zhí)行需要的所有類。

B.運行時解釋器執(zhí)行代碼。

C.在運行時,字節(jié)碼被加載,驗證然后在解釋器里面運行。

D.類加載器通過分離本機文件系統(tǒng)的類和從網(wǎng)絡(luò)導(dǎo)入的類增加安全性。

SL275中描述的Java程序運行的過程是這樣的:類加載器(classloader)加載程序運

行所需要的所有類,它通過區(qū)分本機文件系統(tǒng)的類和網(wǎng)絡(luò)系統(tǒng)導(dǎo)入的類增加安全性,這可

以限制任何的特洛伊木馬程序,因為本機類總是先被加載,一旦所有的類被加載完,執(zhí)行

文件的內(nèi)存劃分就固定了,在這個時候特定的內(nèi)存地址被分配給對應(yīng)的符號引用,查找表

(lookuotable)也被建立,由于內(nèi)存劃分發(fā)生在運行時,解釋器在受限制的代碼區(qū)增加保

護防止未授權(quán)的訪問;然后字節(jié)碼校驗器(bytecodeverifier)進行校驗,主要執(zhí)行下面的

檢查:類符合JVM規(guī)范的類文件格式,沒有違反訪問限制,代碼沒有造成堆棧的上溢或者

下溢,所有操作代碼的參數(shù)類型都是正確的,沒有非法的數(shù)據(jù)類型轉(zhuǎn)換(例如將整型數(shù)轉(zhuǎn)換

成對象類型)發(fā)生;校驗通過的字節(jié)碼被解釋器(interpreter)執(zhí)行,解釋器在必要時通過運

行時系統(tǒng)執(zhí)行對底層硬件的合適調(diào)用。后三個答案是SL275中的原話。

33^Giventhefollowingcode:

publicclassPerson(

staticintarr[]=newint[10];

publicstaticvoidmain(Stringa[]){

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

}

}

Whichstatementiscorrect?

A.Whencompilationsomeerrorwilloccur.

B.Itiscorrectwhencompilationbutwillcauseerrorwhenrunning.

C.Theoutputiszero.

D.Theoutputisnull.

(c)

題目:給出下面的代碼:

那個敘述是對的。

A.編譯時將發(fā)生錯誤。

B.編譯時正確但是運行時出錯。

C.輸出為0。

D.輸出為null

int型數(shù)組是類對象,它在類被加載時完成初始化,在前面題目中已經(jīng)有敘述,由于

是原始數(shù)據(jù)類型int,其初始值為0。

34>Giventhefollowingcode:

publicclassPerson(

intarr[]=newint[10];

publicstaticvoidmain(Stringa[]){

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

}

}

Whichstatementiscorrect?

A.Whencompilationsomeerrorwilloccur.

B.Itiscorrectwhencompilationbutwillcauseerrorwhenrunning.

C.Theoutputiszero.

D.Theoutputisnull.

(a)

給出下面的代碼:

哪些敘述是對的。

A.編譯時出錯。

B.編譯時正確而運行時出錯。

C.輸出0。

D.輸出null。

實例變量在類的一個實例構(gòu)造時完成初始化,而且在類的靜態(tài)方法中不能直接訪問類

的非靜態(tài)成員而只能訪問類成員(像上題中一樣),類的普通方法可以訪問類的所有成員和

方法,而靜態(tài)方法只能訪問類的靜態(tài)成員和方法,因為靜態(tài)方法屬于類,而普通方法及成

員變量屬于類的實例,類方法(靜態(tài)方法)不能使用屬于某個不確定的類的實例的方法和變

量,在靜態(tài)方法里面沒有隱含的this,而普通方法有。

35、publicclassParent{

publicintaddValue(inta,intb){

ints;

s=a+b;

returns;

}

)

classChildextendsParent{

I

WhichmethodscanbeaddedintoclassChild?

A.intaddValue(inta,intb){//dosomething...)

B.publicvoidaddValue(){//dosomething...)

C.publicintaddValue(inta){//dosomething...)

D.publicintaddValue(inta,intb)throwsMyException{//dosomething...}

(be)

題目:哪些方法可以加入類Child中。

此題涉及方法重載(overload),方法重寫(override)以及類派生時方法重寫的規(guī)則。

方法重載的規(guī)則是:一、參數(shù)列表必須不同,個數(shù)的不同完全可以,如果個數(shù)相同則參數(shù)

類型的不同不能引起歧意,例如int和long,float和double就不能作為唯一的類型不同;

二、返回值可以不同,但是不能是重載時唯一的不同點(這點和C++中不同,C++中返回類

型必須一致)。方法重寫發(fā)生在類繼承時,子類可以重寫??個父類中已有的方法,必須在返

回類型和參數(shù)列表一樣時才能說是重寫,否則就是重載,java中方法重寫的一個重要而且

容易被忽略的規(guī)則是重寫的方法的訪問權(quán)限不能比被重寫的方法的訪問權(quán)限低!重寫的另一

個規(guī)則是重寫的方法不能比被重寫的方法拋棄(throws)更多種類的異常,其拋棄的異常只

能少,或者是其子類,不能以拋棄異常的個數(shù)來判斷種類,而應(yīng)該是異常類層次結(jié)果上的

種類。此題中答案a的錯誤就是重寫的訪問權(quán)限比被重寫的方法的低,而b,c都屬于重載,

d的錯誤在于比被重寫的方法拋棄了更多種類的異常。

36^Amembervariabledefinedinaclasscanbeaccessedonlybythe

classesinthesamepackage.Whichmodifiershouldbeusedtoobtaintheaccess

control?

A.private

B.nomodifier

C.public

D.protected

(b)

題目:一個類中定義的成員變量只能被同一包中的類訪問。下面的哪些修飾符可以獲

得需要的訪問控制。

參看前面的題目中的敘述。

37、ApublicmembervairablecalledMAXLENGTHwhichisinttype,thevalue

ofthevariableremainsconstantvalue100.Useashortstatementtodefinethe

variable.

A.publicintMAX_LENGTH=100;

B.finalintMAX_LENGTH=100;

C.finalpublicintMAX_LENGTH=100;

D.publicfinalintMAX_LENGTH=100.

(d)

題目:共有成員變量MAXLENGTH是一個int型值,變量的值保持常數(shù)值100。使用一

個短聲明定義這個變量。

Java中共有變量使用public定義,常量變量使用final,另外注意的是修飾符的順序,

?個最完整的修飾是publicstaticfinalintvarial_a=100;這個順序不能錯,這和c++

中也是不同的。而答案c恰恰錯在修飾符的順序上。

38、Whichexpressionsarecorrecttodeclareanarrayof10Stringobjects?

A.charstr[];

B.charstr□口;

C.Stringstr[];

D.Stringstr[10];

(c)

題目:哪些表達式是聲明一個含有10個String對象的數(shù)組。

嚴(yán)格來說這個題目沒有給出一個正確的答案,唯一比較正確的是c,而完全滿足題目

要求的應(yīng)該是:Stringstr□二newString[10];

注意答案d的形式是不對的,這和C++也是不同的。

39WhichfragmentsarecorrectinJavasourcefile?

A.packagetestpackage;

publicclassTest{//dosomething...)

B.importjava.io.*;

packagetestpackage;

publicclassTest{//dosomething...)

C.importjava.io.*;

classPerson{//dosomething...)

publicclassTest{//dosomething...)

D.importjava.io.*;

importjava.awt.*;

publicclassTest{//dosomething...)

(acd)

題目:下面的那個java源文件代碼片斷是對的。

Java中的package語句必須是源文件中除去說明以外的第?條語句,導(dǎo)入包語句可以

有幾個,但是必須位于package語句之后,其它類定義之前,一個源文件中可以有幾個類,

但最多只能有一個是public的,如果有,則源文件的文件名必須和該類的類名相同。

40:

Strings=〃hello〃;

Stringt="hello”;

charc[]={,h,,e'17,'],,,o'};

Whichreturntrue?

A.s.equals(t);

B.t.equals(c);

C.s二二t;

D.t.equals(newString(〃he]lo〃));

E.t==c.

(acd)

題目:哪些返回true。

這個在前面第10題的equals。方法和=操作符的討論中論述過。=操作符比較的是

操作符兩端的操作數(shù)是否是同一個對象,而String的equals。方法比較的是兩個String

對象的內(nèi)容是否一樣,其參數(shù)是一個String對象時才有可能返回true,其它對象都返回

假。需要指出的是由于s和t并非使用

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論