JAVA认证历年真题SCJP认证套题解析2.docx
- 文档编号:25056870
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:10
- 大小:19.37KB
JAVA认证历年真题SCJP认证套题解析2.docx
《JAVA认证历年真题SCJP认证套题解析2.docx》由会员分享,可在线阅读,更多相关《JAVA认证历年真题SCJP认证套题解析2.docx(10页珍藏版)》请在冰豆网上搜索。
JAVA认证历年真题SCJP认证套题解析2
JAVA认证历年真题:
SCJP认证套题解析[2]
JAVA认证历年真题:
SCJP认证套题解析[2]JAVA认证历年真题:
SCJP认证套题解析[2]21、whichofthefollowingassignmentisnotcorrect?
a.floatf=11.1;
b.doubled=5.3e12;
c.doubled=3.14159;
d.doubled=3.14d.
(a)
题目:
下面的哪些赋值语句是不对的。
浮点数的赋值是带有小数点的数字缺省是double型的,如果在浮点数后面加f或者f则是float,后面加d或者d则是double,科学计数法形式的浮点数也是double型的,而double的精度比float高,将一个高精度的double赋值给一个低精度的float时需要进行强制类型转换,反之则不需要。
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;
}
}
whichexpressioncanbeaddedatthe"doingthesameas..."partoftheconstructor?
a.person(n,a);
b.this(person(n,a));
c.this(n,a);
d.this(name,age).
(c)
题目:
给出下面的不完整的类代码:
下面的哪些表达式可以加到构造方法中的"doingthesameas..."处?
在同一个类的不同构造方法中调用该类的其它构造方法需要使用this()的形式,而且必须是在构造方法的第一行调用,这个和普通的方法重载调用的方式不同,普通的方法可以直接使用方法名加参数来调用,而且调用位置没有限制,因此答案a是不行的,b的语法就是错误的,d的错误在于在父类型的构造函数被调用前不能引用类的成员。
构造方法是一个类对象实例化的起点(虽然严格来说首先执行的并不是构造方法的第一个语句,而是内存的分配),因此在构造方法中不能将成员作为参数引用。
23、whichofthefollowingstatementsaboutvariablesandtheirscopesaretrue?
a.instancevariablesaremembervariablesofaclass.
b.instancevariablesaredeclaredwiththestatickeyword.
c.localvariablesdefinedinsideamethodarecreatedwhenthemethodisexecuted.
d.localvariablesmustbeinitializedbeforetheyareused.
(acd)
题目:
下面关于变量及其范围的陈述哪些是对的。
a.实例变量是类的成员变量。
b.实例变量用关键字static声明。
c.在方法中定义的局部变量在该方法被执行时创建
d.局部变量在使用前必须被初始化。
类中有几种变量,分别是:
局部变量(英文可以为:
local\automatic\temporary\stackvariable)是定义在方法里的变量;实例变量(英文为:
instancevariable)是在方法外而在类声明内定义的变量,有时也叫成员变量;类变量(英文为:
classvariable)是用关键字static声明的实例变量,他们的生存期分别是:
局部变量在定义该变量的方法被调用时被创建,而在该方法退出后被撤销;实例变量在使用newxxxx()创建该类的实例时被创建,而其生存期和该类的实例对象的生存期相同;类变量在该类被加载时被创建,不一定要用newxxxx()创建,所有该类的实例对象共享该类变量,其生存期是类的生存期。
任何变量在使用前都必须初始化,但是需要指出的是局部变量必须显式初始化,而实例变量不必,原始类型的实例变量在该类的构造方法被调用时为它分配的缺省的值,整型是0,布尔型是false,而浮点型是0.0f,引用类型(类类型)的实例变量的缺省值是null(没有进行实际的初始化,对它的使用将引起nullpointexception),类变量的规则和实例变量一样,不同的是类变量的初始化是在类被加载时。
24、publicvoidtest(){
try{onemethod();
system.out.println("condition1");
}catch(arrayindexoutofboundsexceptione){
system.out.println("condition2");
}catch(exceptione){
system.out.println("condition3");
}finally{
system.out.println("finally");
}
}
whichwilldisplayifonemethodrunnormally?
a.condition1
b.condition2
c.condition3
d.finally
(ad)
题目:
在onemethod()方法运行正常的情况下将显示什么?
如果try块中的语句在执行时发生异常,则执行从该处中断而进入catch块,根据异常的类型进行匹配,最前面的优先进行匹配比较,只要该异常是catch中指定的异常的子类就匹配成功进而执行相应的catch中的内容,而finally块中的内容无论是否发生异常都将被执行。
25、giventhefollowingcode:
publicclasstest{
voidprintvalue(intm){
do{system.out.println("thevalueis"+m);
}
while(--m10)
}
publicstaticvoidmain(stringarg[]){
inti=10;
testt=newtest();
t.printvalue(i);
}
}
whichwillbeoutput?
a.thevalueis8
b.thevalueis9
c.thevalueis10
d.thevalueis11
(c)
题目:
给出下面的代码:
输出将是什么?
此题考察的是dowhile循环和--操作符的知识,dowhile最少被执行一次,在执行完do中的内容后判断while中的条件是否为true,如果为true的话就再执行do中的内容,然后再进行判断,以此类推直到while的判断为false时退出循环执行循环后面的内容,而?
操作符的规则是在变量右边的--将先进行运算,然后才是使变量的值减一,而在变量左边的是先将变量的值减一再运算。
26、whichofthefollowingstatementsaboutdeclarationaretrue?
a.declarationofprimitivetypessuchasboolean,byteandsoondoesnotallocatememoryspaceforthevariable.
b.declarationofprimitivetypessuchasboolean,byteandsoonallocatesmemoryspaceforthevariable.
c.declarationofnonprimitivetypessuchasstring,vectorandsoondoesnotallocatememoryspacefortheobject.
d.declarationofnonprimitivetypessuchasstring,vectoranssoonallocatesmemoryspacefortheobject.
(ad)
题目:
下面的有关声明的哪些叙述是对的。
a.对原始数据类型例如boolean,byte的变量的声明不会为该变量分配内存空间。
b.对原始数据类型例如boolean,byte的变量的声明将为之分配内存空间。
c.非原始数据类型例如string,vector的变量的声明不会为该对象分配内存。
d.非原始数据类型例如string,vector的变量的声明会为该对象分配内存。
对原始数据类型的变量的声明将为之分配内存并赋予一个缺省值,参见23题的叙述,而非原始数据类型的变量必须用newxxxx()分配内存及初始化。
但是严格来讲此题的答案有待确定,因为只有原始类型的实例变量和类变量的声明在类对象被创建/类被加载时完成内存的自动分配,而原始类型的局部变量必须显式初始化,从这点来看原始类型的局部变量没有被自动分配内存,sl275中只提出了非原始数据类型的变量必须使用newxxxx()完成内存的分配而没有指出原始数据类型的变量是否在声明时即自动进行内存分配,而从局部变量不能在显式初始化前使用这点来看在声明时没有进行内存分配。
因此答案a的正确性还有待官方的确定。
27、inthejavaapidocumentationwhichsectionsareincludedinaclassdocument?
a.thedescriptionoftheclassanditspurpose
b.alistofmethodsinitssuperclass
c.alistofmembervariable
d.theclasshierarchy
(acd)
题目:
在javaapi文档中下面的哪些部分被包括在内
a.类及用途的描述
b.父类的方法的列表
c.成员变量的列表
d.类层次
类文档的内容主要是:
类层次、类及用途描述、成员变量列表、构造方法列表、成员方法列表、从类层次上继承的方法列表、成员变量的详细说明、构造方法详细说明、成员方法详细说明。
28、giventhefollowingcode:
1)publicvoidmodify(){
2)inti,j,k;
3)i=100;
4)while(i0){
5)j=i*2;
6)system.out.println("thevalueofjis"+j);
7)k=k+1;
8)i--;
9)}
10)}
whichlinemightcauseanerrorduringcompilation?
a.line4
b.line6
c.line7
d.line8
(c)
题目:
给出下面的代码:
哪些行在编译时可能产生错误。
这个问题在前面有关变量的类型及其作用域的问题中讨论过,局部变量在使用前必须显式初始化,而代码中的变量k在使用前没有。
29、whichofthefollowingstatementsaboutvariablesandscopearetrue?
a.localvariablesdefinedinsideamethodaredestroyedwhenthemethodisexited.
b.localvariablesarealsocalledautomaticvariables.
c.variablesdefinedoutsideamethodarecreatedwhentheobjectisconstructed.
d.amethodparametervariablecontinuestoexistforaslongastheobjectisneededinwhichthemethodisdefined.
(abc)
题目:
下面有关变量及其作用域的陈述哪些是对的。
a.在方法里面定义的局部变量在方法退出的时候被撤销。
b.局部变量也叫自动变量。
c.在方法外面定义的变量(译注:
即实例变量)在对象被构造时创建。
d.在方法中定义的方法的参变量只要该对象被需要就一直存在。
本题还是讨论变量的类型及作用域,参看前面的叙述。
30、aclassdesignrequiresthatamembervariablecannotbeaccessibledirectlyoutsidetheclass.whichmodifiershouldbeusedtoobtaintheaccesscontrol?
a.public
b.nomodifier
c.protected
d.private
(d)
题目:
类的设计要求它的某个成员变量不能被外部类直接访问。
应该使用下面的哪些修饰符获得需要的访问控制。
这个在前面也有叙述,java有四种访问类型,分别为:
public,protected,default,private,其中public变量可以被所有的外部类访问,而pretected的可以被同一个包及该类的子类访问,default即没有任何修饰符的变量可以被同一个包中的类访问,而private变量只能在被该类内部被访问。
题目中的外部类应该理解为除该类自身的所有其它类,因此只有使用private可以达到要求。
31giventhefollowingcodefragment:
1)stringstr=null;
2)if((str!
=null)(str.length()10)){
3)system.out.println("morethan10");
4)}
5)elseif((str!
=null)(str.length()5)){
6)system.out.println("lessthan5");
7)}
8)else{system.out.println("end");}
whichlinewillcauseerror?
a.line1
b.line2
c.line5
d.line8
(c)
题目:
给出下面的代码片断:
哪些行将导致错误。
此题需要将代码仔细看清楚,查询没有逻辑错误,ifelse的使用没有问题,也没有拼写错误,错误在于第5行的与操作符的使用,逻辑操作符(logicaloperator)的与应该是,而在执行与操作的时候,如果第一个条件为false,那么第二个条件判断运算是不做的,但是这里是位逻辑操作符(bitwiselogicaloperator)的与,在进行这个运算时,无论第一个条件的结果是什么都会执行第二个的运算,因此,假设str=null,那么第5句的str.length()就会导致nullpointerexception,因此本题的错误在于此。
32、whichstatementsaboutjavacodesecurityaretrue?
a.thebytecodeverifierloadsallclassesneededfortheexecutionofaprogram.
b.executingcodeisperformedbytheruntimeinterpreter.
c.atruntimethebytecodesareloaded,checkedandruninaninterpreter.
d.theclassloaderaddssecuritybyseparatingthenamespacesfortheclassesofthelocalfilesystemfromthoseimportedfromnetworksources.
(bcd)
题目:
下面有关java代码安全性的叙述哪些是对的。
a.字节码校验器加载查询执行需要的所有类。
b.运行时解释器执行代码。
c.在运行时,字节码被加载,验证然后在解释器里面运行。
d.类加载器通过分离本机文件系统的类和从网络导入的类增加安全性。
sl275中描述的java程序运行的过程是这样的:
类加载器(classloader)加载程序运行所需要的所有类,它通过区分本机文件系统的类和网络系统导入的类增加安全性,这可以限制任何的特洛伊木马程序,因为本机类总是先被加载,一旦所有的类被加载完,执行文件的内存划分就固定了,在这个时候特定的内存
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 认证 历年 SCJP 题解