JAVA认证历年真题SCJP认证套题解析3.docx
- 文档编号:12282412
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:15
- 大小:21.55KB
JAVA认证历年真题SCJP认证套题解析3.docx
《JAVA认证历年真题SCJP认证套题解析3.docx》由会员分享,可在线阅读,更多相关《JAVA认证历年真题SCJP认证套题解析3.docx(15页珍藏版)》请在冰豆网上搜索。
JAVA认证历年真题SCJP认证套题解析3
JAVA认证历年真题:
SCJP认证套题解析[3]
JAVA认证历年真题:
SCJP认证套题解析[3]JAVA认证历年真题:
SCJP认证套题解析[3]41、whichofthefollowingstatementsarelegal?
a.longl=4990;
b.inti=4l;
c.floatf=1.1;
d.doubled=34.4;
e.doublet=0.9f.
(ade)
题目:
下面的哪些声明是合法的。
此题的考点是数字的表示法和基本数据类型的类型自动转换,没有小数点的数字被认为是int型数,带有小数点的数被认为是double型的数,其它的使用在数字后面加一个字母表示数据类型,加l或者l是long型,加d或者d是double,加f或者f是float,可以将低精度的数字赋值给高精度的变量,反之则需要进行强制类型转换,例如将int,short,byte赋值给long型时不需要显式的类型转换,反之,将long型数赋值给byte,short,int型时需要强制转换(inta=(int)123l;)。
42、
publicclassparent{
intchange(){}
}
classchildextendsparent{
}
whichmethodscanbeaddedintoclasschild?
a.publicintchange(){}
b.intchang(inti){}
c.privateintchange(){}
d.abstractintchang(){}
(ab)
题目:
哪些方法可被加入类child。
这个题目的问题在第35题中有详尽的叙述。
需要注意的是答案d的内容,子类可以重写父类的方法并将之声明为抽象方法,但是这引发的问题是类必须声明为抽象类,否则编译不能通过,而且抽象方法不能有方法体,也就是方法声明后面不能带上那两个大括号({}),这些d都不能满足。
43、
classparent{
stringone,two;
publicparent(stringa,stringb){
one=a;
two=b;
}
publicvoidprint(){system.out.println(one);}
}
publicclasschildextendsparent{
publicchild(stringa,stringb){
super(a,b);
}
publicvoidprint(){
system.out.println(one+"to"+two);
}
publicstaticvoidmain(stringarg[]){
parentp=newparent("south","north");
parentt=newchild("east","west");
p.print();
t.print();
}
}
whichofthefollowingiscorrect?
a.causeerrorduringcompilation.
b.south
east
c.southtonorth
easttowest
d.southtonorth
east
e.south
easttowest
(e)
题目:
下面的哪些正确。
a.在编译时出错。
这个题目涉及继承时的多态性问题,在前面的问题中已经有讲述,要注意的是语句t.print();在运行时t实际指向的是一个child对象,即java在运行时决定变量的实际类型,而在编译时t是一个parent对象,因此,如果子类child中有父类中没有的方法,例如printall(),那么不能使用t.printall()。
参见12题的叙述。
44、abuttonispositionedinaframe.onlyheightofthebuttonisaffectedbytheframewhilethewidthisnot.whichlayoutmanagershouldbeused?
a.flowlayout
b.cardlayout
c.northandsouthofborderlayout
d.eastandwestofborderlayout
e.gridlayout
(d)
题目:
一个按钮放在一个框架中,在框架改变时只影响按钮的高度而宽度不受影响,应该使用哪个布局管理器?
这个还是布局管理器的问题,流布局管理器(flowlayout)将根据框架的大小随时调整它里面的组件的大小,包括高度和宽度,这个管理器不会约束组件的大小,而是允许他们获得自己的最佳大小,一行满了以后将在下一行放置组件;卡片管理器(cardlayout)一次显式一个加入的组件(根据加入时的关键字);网格管理器(gridlayout)将容器划分为固定的网格,容器大小的改变将影响所有组件的大小,每个组件的大小都会同等地变化;边界管理器(borderlayout)将容器划分为五个区域,分为东南西北和中间,东西区域的宽度为该区域里面组件的最佳宽度,高度为容器的高度减去南北区域的高度,这是一个可能变化的值,而南北区域的宽度为容器的整个宽度,高度为组件的最佳高度,中间区域的高度为容器的高度减去南北区域的高度,宽度为容器的宽度减去东西区域的宽度。
45、giventhefollowingcode:
1)classparent{
2)privatestringname;
3)publicparent(){}
4)}
5)publicclasschildextendsparent{
6)privatestringdepartment;
7)publicchild(){}
8)publicstringgetvalue(){returnname;}
9)publicstaticvoidmain(stringarg[]){
10)parentp=newparent();
11)}
12)}
whichlinewillcauseerror?
a.line3
b.line6
c.line7
d.line8
e.line10
(d)
题目:
给出下面的代码:
哪些行将导致错误。
第8行的getvalue()试图访问父类的私有变量,错误,参看前面有关变量类型及其作用域的叙述。
46、thevariable"result"isboolean.whichexpressionsarelegal?
a.result=true;
b.if(result){//dosomething...}
c.if(result!
=0){//sosomething...}
d.result=1
(ab)
题目:
变量"result"是一个boolean型的值,下面的哪些表达式是合法的。
java的boolean不同于c或者c++中的布尔值,在java中boolean值就是boolean值,不能将其它类型的值当作boolean处理。
47、classteacherandstudentaresubclassofclassperson.
personp;
teachert;
students;
p,tandsareallnon-null.
if(tinstanceofperson){s=(student)t;}
whatistheresultofthissentence?
a.itwillconstructastudentobject.
b.theexpressionislegal.
c.itisillegalatcompilation.
d.itislegalatcompilationbutpossibleillegalatruntime.
(c)
题目:
类teacher和student都是类person的子类
p,t和s都是非空值
这个语句导致的结果是什么
a.将构造一个student对象。
b.表达式合法。
c.编译时非法。
d.编译时合法而在运行时可能非法。
instanceof操作符的作用是判断一个变量是否是右操作数指出的类的一个对象,由于java语言的多态性使得可以用一个子类的实例赋值给一个父类的变量,而在一些情况下需要判断变量到底是一个什么类型的对象,这时就可以使用instanceof了。
当左操作数是右操作数指出的类的实例或者是子类的实例时都返回真,如果是将一个子类的实例赋值给一个父类的变量,用instanceof判断该变量是否是子类的一个实例时也将返回真。
此题中的if语句的判断没有问题,而且将返回真,但是后面的类型转换是非法的,因为t是一个teacher对象,它不能被强制转换为一个student对象,即使这两个类有共同的父类。
如果是将t转换为一个person对象则可以,而且不需要强制转换。
这个错误在编译时就可以发现,因此编译不能通过。
48、giventhefollowingclass:
publicclasssample{
longlength;
publicsample(longl){length=l;}
publicstaticvoidmain(stringarg[]){
samples1,s2,s3;
s1=newsample(21l);
s2=newsample(21l);
s3=s2;
longm=21l;
}
}
whichexpressionreturnstrue?
a.s1==s2;
b.s2==s3;
c.m==s1;
d.s1.equals(m).
(b)
题目:
给出下面的类:
哪个表达式返回true。
前面已经叙述过==操作符和string的equals()方法的特点,另外==操作符两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。
49、giventhefollowingexpressionaboutlist.
listl=newlist(6,true);
whichstatementsareture?
a.thevisiblerowsofthelistis6unlessotherwiseconstrained.
b.themaximumnumberofcharactersinalinewillbe6.
c.thelistallowsuserstomakemultipleselections
d.thelistcanbeselectedonlyoneitem.
(ac)
题目:
给出下面有关list的表达式:
哪些叙述是对的。
a.在没有其它的约束的条件下该列表将有6行可见。
b.一行的最大字符数是6
c.列表将允许用户多选。
d.列表只能有一项被选中。
list组件的该构造方法的第一个参数的意思是它的初始显式行数,如果该值为0则显示4行,第二个参数是指定该组件是否可以多选,如果值为true则是可以多选,如果不指定则缺省是不能多选。
50、giventhefollowingcode:
classperson{
stringname,department;
publicvoidprintvalue(){
system.out.println("nameis"+name);
system.out.println("departmentis"+department);
}
}
publicclassteacherextendsperson{
intsalary;
publicvoidprintvalue(){
//doingthesameasintheparentmethodprintvalue()
//includingprintthevalueofnameanddepartment.
system.out.println("salaryis"+salary);
}
}
whichexpressioncanbeaddedatthe"doingthesameas..."partofthemethodprintvalue()?
a.printvalue();
b.this.printvalue();
c.person.printvalue();
d.super.printvalue().
(d)
题目:
给出下面的代码:
下面的哪些表达式可以加入printvalue()方法的"doingthesameas..."部分。
子类可以重写父类的方法,在子类的对应方法或其它方法中要调用被重写的方法需要在该方法前面加上super.进行调用,如果调用的是没有被重写的方法,则不需要加上super.进行调用,而直接写方法就可以。
这里要指出的是java支持方法的递归调用,因此答案a和b在语法上是没有错误的,但是不符合题目代码中说明处的要求:
即做和父类的方法中相同的事情?
?
打印名字和部门,严格来说也可以选a和b。
51、whichisnotamethodoftheclassinputstream?
a.intread(byte[])
b.voidflush()
c.voidclose()
d.intavailable()
(b)
题目:
下面哪个不是inputstream类中的方法
这个题目没有什么好说的,要求熟悉javaapi中的一些基本类,题目中的inputstream是所有输入流的父类,所有要很熟悉,参看jdk的api文档。
方法voidflush()是缓冲输出流的基本方法,作用是强制将流缓冲区中的当前内容强制输出。
52、whichclassisnotsubclassoffilterinputstream?
a.datainputstream
b.bufferedinputstream
c.pushbackinputstream
d.fileinputstream
(d)
题目:
哪个不是filterinputstream的子类。
此题也是要求熟悉api基础类。
java基础api中的filterinputstream的已知子类有:
bufferedinputstream,checkedinputstream,cipherinputstream,datainputstream,digestinputstream,inflaterinputstream,linenumberinputstream,progressmonitorinputstream,pushbackinputstream。
53、whichclassescanbeusedastheargumentoftheconstructoroftheclassfileinputstream?
a.inputstream
b.file
c.fileoutputstream
d.string
(bd)
题目:
哪些类可以作为fileinputstream类的构造方法的参数。
此题同样是要求熟悉基础api,fileinputstream类的构造方法有三个,可接受的参数分别是:
file、filedescriptor、string类的一个对象。
54、whichclassescanbeusedastheargumentoftheconstructoroftheclassfilterinputstream?
a.filteroutputstream
b.file
c.inputstream
d.randomaccessfile
(c)
题目:
哪些类可以作为filterinputstream类的构造方法的参数。
filterinputstream的构造方法只有一个,其参数是一个inputstream对象。
55、giventhefollowingcodefragment:
1)switch(m)
2){case0:
system.out.println("case0");
3)case1:
system.out.println("case1");break;
4)case2:
5)default:
system.out.println("default");
6)}
whichvalueofmwouldcause"default"tobetheoutput?
a.0
b.1
c.2
d.3
(cd)
题目:
给出下面的代码片断:
m为哪些值将导致"default"输出。
此题考察switch语句的用法,switch的判断的条件必须是一个int型值,也可以是byte、short、char型的值,case中需要注意的是一个case后面一般要接一个break语句才能结束判断,否则将继续执行其它case而不进行任何判断,如果没有任何值符合case列出的判断,则执行default的语句,default是可选的,可以没有,如果没有default而又没有任何值匹配case中列出的值则switch不执行任何语句。
56、giventheuncompletedmethod:
1)
2){success=connect();
3)if(success==-1){
4)thrownewtimedoutexception();
5)}
6)}
timedoutexceptionisnotaruntimeexception.whichcancompletethemethodofdeclarationwhenaddedatline1?
a.publicvoidmethod()
b.publicvoidmethod()throwsexception
c.publicvoidmethod()throwstimedoutexception
d.publicvoidmethod()throwtimedoutexception
e.publicthrowtimedoutexceptionvoidmethod()
(bc)
题目:
给出下面的不完整的方法:
timedoutexception不是一个runtimeexception。
下面的哪些声明可以被加入第一行完成此方法的声明。
如果程序在运行的过程中抛出异常,而这个异常又不是runtimeexception或者error,那么程序必须捕获这个异常进行处理或者声明抛弃(throws)该异常,捕获异常可以使用try{}catch(){}语句,而抛弃异常在方法声明是声明,在方法的声明后面加上throwsxxxxexception,抛弃多个异常时在各异常间使用逗号(,)分隔,题目中的程序在运行时抛出的不是一个runtimeexception,所有必须捕获或者抛弃,而程序又没有捕获,所有应该在方法声明中声明抛弃。
由于exception是所有异常的父类,所有当然也可以代表runtimeexception了。
57、whichofthefollowingansweriscorrecttoexpressthevalue10inhexadecimalnumber?
a.0xa
b.0x16
c.0a
d.016
(a)
题目:
下面的哪些答案可以正确表示一个十六进制数字10。
十六进制数以0x开头,以0开头的是八进制数。
十六进制表示中的a,b,c,d,e,f依次为10,11,12,13,14,15。
58、whichstatementsaboutthreadaretrue?
a.onceathreadiscreated,itcanstarrunningimmediately.
b.tousethestart()methodmakesathreadrunnable,butitdoesnotnecessarilystartimmediately.
c.whenathreadstopsrunningbecauseofpre-emptive,itisplacedatthefrontendoftherunnablequeue.
d.athreadmayceasetobereadyforavarietyofreasons.
(bd)
题目:
有关线程的哪些叙述是对的。
a.一旦一个线程被创建,它就立即开始运行。
b.使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。
c.当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。
d.一个线程可能因为不同的原因停止(cease)并进入就绪状态。
一个新创建的线程并不是自动的开始运行的,必须调用它的start()方法使之将线程放入可运行态(runnablestate),这只是意味着该线程可为jvm的线程调度程序调度而不是意味着它可以立即运行。
线程的调度是抢先式的,而不是分时间片式的。
具有比当前运行线程高优先级的线程可以使当前线程停止运行而进入就绪状态,不同优先级的线程间是抢先式的,而同级线程间是轮转式的。
一个线程停止运行可以是因为不同原因,可能是因为更高优先级线程的抢占,也可能是因为调用sleep()方法,而即使是因为抢先而停止也不一定就进入可运行队列的前面,因为同级线程是轮换式的,它的运行可能就是因为轮换,而它因抢占而停止后只能在轮换队列中排队而不能排在前面。
59、themethodresume()isresponsibleforresumingwhichthread'sexecution?
a.thethreadwhichisstoppedbycallingmethodstop()
b.thethreadwhichisstoppedbycallingmethodsleep()
c.thethreadwhichisstoppedbycallingmethodwait()
d.the
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 认证 历年 SCJP 题解
![提示](https://static.bdocx.com/images/bang_tan.gif)