JAVA认证真题35道SCJP考试真题精解Word文件下载.docx
《JAVA认证真题35道SCJP考试真题精解Word文件下载.docx》由会员分享,可在线阅读,更多相关《JAVA认证真题35道SCJP考试真题精解Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
{
2.
void
test(int
3.
System.out.println(“I
am
an
int.”);
4.
}
5.
test(String
s)
6.
a
string.”);
7.
8.
9.
public
static
main(String
args[])
10.
Test
t=new
Test();
11.
char
ch=“y”;
12.
t.test(ch);
13.
14.
}
Whichofthestatementsbelowistrue?
(Chooseone.)
A.Line5willnotcompile,becausevoidmethodscannotbeoverridden.
B.Line12willnotcompile,becausethereisnoversionoftest()thatrakesacharargument.
C.Thecodewillcompilebutwillthrowanexceptionatline12.
D.Thecodewillcompileandproducethefollowingoutput:
Iamanint.
E.Thecodewillcompileandproducethefollowingoutput:
IamaString.
D
在第12行,16位长的char型变量ch在编译时会自动转化为一个32位长的int型,并在运行时传给voidtest(inti)方法。
例题4:
Whichofthefollowinglinesofcodewillcompilewithouterror?
A.
int
i=0;
if
(i)
System.out.println(“Hi”);
}
B.
boolean
b=true;
b2=true;
if(b==b2)
System.out.println(“So
true”);
C.
i=1;
j=2;
if(i==1||
j==2)
System.out.println(“OK”);
D.
(i==1
&
|
B,C
选项A错,因为if语句后需要一个boolean类型的表达式。
逻辑操作有^、&
、|和&
、||,但是“&
|”是非法的,所以选项D不正确。
例题5:
Which
two
demonstrate
"
has
a"
relationship?
(Choose
two)
A.
interface
Person
{
public
Employee
extends
Person{
B.
Shape
Rectandle
C.
Colorable
implements
Colorable
{
D.
Species{
Animal{private
Species
species;
E.
Component{
class
Container
Component{
private
Component[]
children;
D,E
在Java中代码重用有两种可能的方式,即组合(“hasa”关系)和继承(“isa”关系)。
“hasa”关系是通过定义类的属性的方式实现的;
而“isa”关系是通过类继承实现的。
本例中选项A、B、C体现了“isa”关系;
选项D、E体现了“hasa”关系。
例题6:
Whichtwostatementsaretruefortheclassjava.util.TreeSet?
(Choosetwo)
A.Theelementsinthecollectionareordered.
B.Thecollectionisguaranteedtobeimmutable.
C.Theelementsinthecollectionareguaranteedtobeunique.
D.Theelementsinthecollectionareaccessedusingauniquekey.
E.Theelementsinthecollectionareguaranteedtobesynchronized
A,C
TreeSet类实现了Set接口。
Set的特点是其中的元素惟一,选项C正确。
由于采用了树形存储方式,将元素有序地组织起来,所以选项A也正确。
例题7:
TrueorFalse:
Readershavemethodsthatcanreadandreturnfloatsanddoubles.
A.Ture
B.False
B
Reader/Writer只处理Unicode字符的输入输出。
float和double可以通过stream进行I/O.
例题8:
Whatdoesthefollowingpaint()methoddraw?
1.publicvoidpaint(Graphicsg){
2.g.drawString(“Anyquestion”,10,0);
3.}
A.Thestring“Anyquestion?
”,withitstop-leftcornerat10,0
B.Alittlesquigglecomingdownfromthetopofthecomponent.
drawString(Stringstr,intx,inty)方法是使用当前的颜色和字符,将str的内容显示出来,并且最左的字符的基线从(x,y)开始。
在本题中,y=0,所以基线位于最顶端。
我们只能看到下行字母的一部分,即字母‘y’、‘q’的下半部分。
例题9:
Whathappenswhenyoutrytocompileandrunthefollowingapplication?
Chooseallcorrectoptions.
1.
Z
main(String[]
args)
new
Z();
5.
Z()
alias1
=
this;
8.
alias2
synchronized(alias1)
try
alias2.wait();
System.out.println(“DONE
WAITING”);
catch
(InterruptedException
e)
15.
System.out.println(“INTERR
UPTED”);
16.
17.
(Exception
18.
System.out.println(“OTHER
EXCEPTION”);
19.
20.
finally
21.
System.out.println
(“FINALLY”);
22.
23.
24.
System.out.println(“ALL
DONE”);
25.
26.
A.Theapplicationcompilesbutdoesn'
tprintanything.
B.Theapplicationcompilesandprint“DONEWAITING”
C.Theapplicationcompilesandprint“FINALLY”
D.Theapplicationcompilesandprint“ALLDONE”
E.Theapplicationcompilesandprint“INTERRUPTED”
在Java中,每一个对象都有锁。
任何时候,该锁都至多由一个线程控制。
由于alias1与alias2指向同一对象Z,在执行第11行前,线程拥有对象Z的锁。
在执行完第11行以后,该线程释放了对象Z的锁,进入等待池。
但此后没有线程调用对象Z的notify()和notifyAll()方法,所以该进程一直处于等待状态,没有输出。
例题10:
Whichstatementorstatementsaretrueaboutthecodelistedbelow?
Choosethree.
MyTextArea
TextArea
MyTextArea(int
nrows,
int
ncols)
enableEvents(AWTEvent.TEXT_
EVENT_MASK);
processTextEvent
(TextEvent
te)
System.out.println(“Processing
text
event.”);
A.ThesourcecodemustappearinafilecalledMyTextArea.java
B.Betweenlines2and3,acallshouldbemadetosuper(nrows,ncols)sothatthenewcomponentwillhavethecorrectsize.
C.Atline6,thereturntypeofprocessTextEvent()shouldbedeclaredboolean,notvoid.
D.Betweenlines7and8,thefollowingcodeshouldappear:
returntrue.
E.Betweenlines7and8,thefollowingcodeshouldappear:
super.processTextEvent(te).
A,B,E
由于类是public,所以文件名必须与之对应,选项A正确。
如果不在2、3行之间加上super(nrows,ncols)的话,则会调用无参数构建器TextArea(),使nrows、ncols信息丢失,故选项B正确。
在Java2中,所有的事件处理方法都不返回值,选项C、D错误。
选项E正确,因为如果不加super.processTextEvent(te),注册的listener将不会被唤醒。
11、Whichstatementaboutthegarbagecollectionmechanismaretrue?
A.Garbagecollectionrequireadditionalprogramecodeincaseswheremultiplethreadsarerunning.
B.Theprogrammercanindicatethatareferencethroughalocalvariableisnolongerofinterest.
C.TheprogrammerhasamechanismthatexplicityandimmediatelyfreesthememoryusedbyJavaobjects.
D.ThegarbagecollectionmechanismcanfreethememoryusedbyJavaObjectatexplectiontime.
E.Thegarbagecollectionsystemneverreclaimsmemoryfromobjectswhilearestillaccessibletorunninguserthreads.
答案:
B、E
JAVA的垃圾回收机制是通过一个后台系统级线程对内存分配情况进行跟踪实现的,对程序员来说是透明的,程序员没有任何方式使无用内存显示的、立即的被释放。
而且它是在程序运行期间发生的。
答案B告诉我们程序员可以使一个本地变量失去任何意义,例如给本地变量赋值为“null”;
答案E告诉我们在程序运行期间不可能完全释放内存。
12、Givethefollowingmethod:
1)
method(
){
2)
String
a,b;
3)
a=new
String(“hello
world”);
4)
b=new
String(“game
over”);
5)
System.out.println(a+b+”ok”);
6)
a=null;
7)
a=b;
8)
System.out.println(a);
9)
Intheabsenceofcompileroptimization,whichistheearliestpointtheobjectareferedisdefinitelyelibiletobegarbagecollection.
A.beforeline3
B.beforeline5
C.beforeline6
D.beforeline7
E.Beforeline9
第6行将null赋值给a以后,a以前保存的引用所指向的内存空间就失去了作用,它可能被释放。
所以对象a可能最早被垃圾回收是在第7行以前,故选择D选项。
13、Intheclassjava.awt.AWTEvent,whichistheparentclassuponwhichjdk1.1awteventsarebasedthereisamethodcalledgetIDwhichphraseaccuratelydescribesthereturnvalueofthismethod?
A.Itisareferencetotheobjectdirectlyaffectedbythecauseoftheevent.
B.Itisanindicationofthenatureofthecauseoftheevent.
C.Itisanindicationofthepositionofthemousewhenitcausedtheevent.
D.Inthecaseofamouseclick,itisanindicationofthetextunderthemouseatthetimeoftheevent.
E.Ittellsthestateofcertainkeysonthekeybordatthetimeoftheevent.
F.Itisanindicationofthetimeatwhichtheeventoccurred.
请查阅JAVA类库。
getID方法的返回值是“eventtype”。
在认证考试中,总会有类似的书本以外的知识,这只能靠多实践来增长知识了。
14、Whichstatementaboutlisteneristrue?
A.Mostcomponentallowmultiplelistenerstobeadded.
B.Ifmultiplelistenerbeaddtoasinglecomponent,theeventonlyaffectedonelistener.
C.Componentdon?
tallowmultiplelistenerstobeadd.
D.ThelistenermechanismallowsyoutocallanaddXxxxListenermethodasmanytimesasisneeded,specifyingasmanydifferentlistenersasyourdesignrequire.
A、D
控件可以同时使用多个“addXxxxListener”方法加入多个监听器。
并且当多个监听器加入到同一控件中时,事件可以响应多个监听器,响应是没有固定顺序的。
15、Givethefollowingcode:
Example{
args[]
l=0;
do{
System.out.println(“Doing
it
for
l
is:
”+l);
}while(--l>
0)
System.out.println(“Finish”);
}
Whichwellbeoutput:
A.Doingitforlis3
B.Doingitforlis1
C.Doingitforlis2
D.Doingitforlis0
E.Doingitforlis?
C1
F.Finish
D、F
本题主要考察考生对流程控制的掌握情况。
这是当型循环,条件为真执行,条件为假则退出。
循环体至少执行一次,故会输出D。
循环体以外的语句总会被执行,故输出F。
16、Givethecodefragment:
switch(x){
case
1:
System.out.println(“Test
1”);
break;
2:
3:
2”);
default:
System.out.println(“end”);
whichvalueofxwouldcause“Test2”totheoutput:
A.1
B.2
C.3
D.default
B.C
在开关语句中,标号总是不被当做语句的一部分,标号的作用就是做为条件判断而已,一旦匹配成功,就执行其后的语句,一直遭遇break语句为止。
(包括default语句在内)
17、Giveincompletedmethod:
1)
if(unsafe()){//do
something…}
else
if(safe()){//do
other…}
Themethodun