版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小額信用借款合同書樣本
- 醫(yī)療器材合作合同樣本
- 農(nóng)村宅基地買賣合同樣本
- 夫妻雙方自愿離婚協(xié)議書撰寫要點
- 2024大學(xué)生就業(yè)協(xié)議書范例
- 離婚標(biāo)準(zhǔn)協(xié)議書815672024年
- 股東之間的投資合作協(xié)議
- 汽車買賣合同書樣本
- 電視劇動畫制作合作協(xié)議
- 合同擔(dān)保書樣本
- 大學(xué)美育(同濟大學(xué)版)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2024年2024年離婚協(xié)議書模板
- 廣西邕衡教育名校聯(lián)盟2024-2025學(xué)年高三上學(xué)期10月適應(yīng)性檢測試題 英語 含答案
- 江蘇鹽城射陽縣招考聘用部分村(居)宣傳文化管理員42人高頻難、易錯點500題模擬試題附帶答案詳解
- 中頻爐維修合同模板
- 液化石油氣泄漏應(yīng)急處理考核試卷
- 過敏性休克完整版本
- 應(yīng)急第一響應(yīng)人理論考試試卷(含答案)
- 十分鐘EE從入門到精通2.0
- 10000中國普通人名大全
- 玻璃纖維行業(yè)準(zhǔn)入條件(2021年修訂)
評論
0/150
提交評論