SCJP认证套题讲解.doc_第1页
SCJP认证套题讲解.doc_第2页
SCJP认证套题讲解.doc_第3页
SCJP认证套题讲解.doc_第4页
SCJP认证套题讲解.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.Whichofthefollowingrangeofshortiscorrect?A.-27-27-1B.0-216-1C.?215-215-1D.?231-231-1翻译下面哪些是short型的取值范围。答案C解析短整型的数据类型的长度是16bits,有符号。另外需要说明的是java中所有的整(Integral)数(包括byte,short,int,long)全是有符号的。2.Whichdeclarationsofidentifiersarelegal?A.$personsB.TwoUsersC.*pointD.thisE._endline翻译下面哪些是合法的标识符。答案A,B,E解析Java的标识符可以以一个Unicode字符,下滑线(_),美元符($)开始,后续字符可以是前面的符号和数字,没有长度限制,大小写敏感,不能是保留字。3.Whichstatementofassigningalongtypevariabletoahexadecimalvalueiscorrect?A.longnumber=345L;B.longnumber=0345;C.longnumber=0345L;D.longnumber=0x345L翻译哪些是将一个十六进制值赋值给一个long型变量。答案D解析十六进制数以0x开头,long型数以L(大小写均可,一般使用大写,因为小写的l和数字1不易区分)。4.Whichofthefollowingfragmentsmightcauseerrors?A.Strings=Gonewiththewind;Stringt=good;Stringk=s+t;B.Strings=Gonewiththewind;Stringt;t=s3+one;C.Strings=Gonewiththewind;Stringstandard=s.toUpperCase();D.Strings=homedirectory;Stringt=s-directory;翻译下面的哪些程序片断可能导致错误。答案B,D解析A:String类型可以直接使用+进行连接运算。B:String是一种Object,而不是简单的字符数组,不能使用下标运算符取其值的某个元素,错误。C:toUpperCase()方法是String对象的一个方法,作用是将字符串的内容全部转换为大写并返回转换后的结果(String类型)。D:String类型不能进行减(-)运算,错误。5.Whicharesyntacticallyvalidstatementat/pointx?classPersonprivateinta;publicintchange(intm)returnm;publicclassTeacherextendsPersonpublicintb;publicstaticvoidmain(Stringarg)Personp=newPerson();Teachert=newTeacher();inti;/pointxA.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成员变量,但是在静态方法中不能使用类中的非静态成员。C:a是类Person的private成员,在类外不能直接引用。D:change(intm)方法是public方法,并且返回一个int型值,可以通过类的实例变量p引用并赋值给一个int型变量。E:b是类Teacher的public成员变量,且是int型,可以通过类的实例变量t引用并赋值给一个int型变量。6.WhichlayoutmanagerisusedwhentheframeisresizedthebuttonsspositionintheFramemightbechanged?A.BorderLayoutB.FlowLayoutC.CardLayoutD.GridLayout翻译当Frame的大小被改变时Frame中的按钮的位置可能被改变时使用的哪一个布局管理器。答案B解析A:该布局管理器将容器划分为五个部分,容器大小的改变不会影响其中的组件的位置而是影响他们的大小。B:该布局管理器根据放入其中的组件的最合适大小调整组件的位置,根据组件放入的顺序安排,一行不能容纳时放入下一行,因此容器的大小改变可能改变组件的位置。C:该布局管理器显示放入该容器的当前页中的组件,一次显示一个,容器大小的改变不能影响其中组件的位置。D:该布局管理器将容器划分为固定的网格,组件加入后占据一个单元,各组件的相对位置不会因为容器的大小变化而变化,改变的只是组件的大小。7.Giventhefollowingcodefragment:1)publicvoidcreate()2)VectormyVect;3)myVect=newVector();4)Whichofthefollowingstatementsaretrue?A.Thedeclarationonline2doesnotallocatememoryspaceforthevariablemyVect.B.Thedeclarationonline2allocatesmemoryspaceforareferencetoaVectorobject.C.Thestatementonline2createsanobjectofclassVector.D.Thestatementonline3createsanobjectofclassVector.E.Thestatementonline3allocatesmemoryspaceforanobjectofclassVector翻译给出下面的代码片断。下面的哪些陈述为true(真)?A.第二行的声明不会为变量myVect分配内存空间。B.第二行的声明分配一个到Vector对象的引用的内存空间。C.第二行语句创建一个Vector类对象。D.第三行语句创建一个Vector类对象。E.第三行语句为一个Vector类对象分配内存空间。答案A,D,E解析SL-275中指出:要为一个新对象分配空间必须执行newXxx()调用,new调用执行以下的操作:1为新对象分配空间并将其成员初始化为0或者null。2执行类体中的初始化。(例如在类中有一个成员声明inta=10;在第一步后a=0,执行到第二步后a=10)3执行构造函数。4变量被分配为一个到内存堆中的新对象的引用。8.Whichofthefollowingansweriscorrecttoexpressthevalue8inoctalnumber?A.010B.0x10C.08D.0x8翻译下面的哪些答案可以用以表示八进制值8。答案A解析八进制值以0开头,以0x开头的为十六进制值,八进制中不能出现数字8,最大只有7。9.WhicharenotJavakeywords?A.TRUEB.sizeofC.constD.superE.void翻译哪些不是Java关键字。答案A,B解析A:不是,Java中有true,但是这也不是关键字而是字面量(literal)。B:不是,Java中不需要这个操作符,所有的类型(原始类型)的大小都是固定的。C、D、E都是,需要说明的是const是java中未被使用的关键字。10.Whichofthefollowingstatementsaretrue?A.Theequals()methoddeterminesifreferencevaluesrefertothesameobject.B.The=operatordeterminesifthecontentsandtypeoftwoseparateobjectsmatch.C.Theequals()methodreturnstrueonlywhenthecontentsoftwoobjectsmatch.D.TheclassFileoverridesequals()toreturntrueifthecontentsandtypeoftwoseparateobjectsmatch.翻译下面的哪些叙述为真。A.equals()方法判定引用值是否指向同一对象。B.=操作符判定两个分立的对象的内容和类型是否一致。C.equals()方法只有在两个对象的内容一致时返回true。D.类File重写方法equals()在两个分立的对象的内容和类型一致时返回true。答案A,D解析严格来说这个问题的答案是不确定的,因为equals()方法是可以被重载的,但是按照java语言的本意来说:如果没有重写(override)新类的equals(),则该方法和=操作符一样在两个变量指向同一对象时返回真,但是java推荐的是使用equals()方法来判断两个对象的内容是否一样,就像String类的equals()方法所做的那样:判定两个String对象的内容是否相同,而=操作符返回true的唯一条件是两个变量指向同一对象。从这个意义上来说选择给定的答案。从更严格的意义来说正确答案应该只有d。11.Whichstatementsaboutinheritancearetrue?A.InJavaprogramminglanguageonlyallowssingleinheritance.B.InJavaprogramminglanguageallowsaclasstoimplementonlyoneinterface.C.InJavaprogramminglanguageaclasscannotextendaclassandimplementainterfacetogether.D.InJavaprogramminglanguagesingleinheritancemakescodemorereliable.翻译下面关于继承的哪些叙述是正确的。A在java中只允许单一继承。B在java中一个类只能实现一个接口。C在java中一个类不能同时继承一个类和实现一个接口。Djava的单一继承使代码更可靠。答案A,D解析在java中一个类只能有一个直接父类,但是可以实现多个接口,在继承的同时可以实现接口,之所以取消多继承的原因是多继承使得代码产生很多问题,而使用单一继承则可以使代码更可靠。12.1)classPerson2)publicvoidprintValue(inti,intj)/*/3)publicvoidprintValue(inti)/*.*/4)5)publicclassTeacherextendsPerson6)publicvoidprintValue()/*.*/7)publicvoidprintValue(inti)/*.*/8)publicstaticvoidmain(Stringargs)9)Persont=newTeacher();10)t.printValue(10);11)12)Whichmethodwillthestatementonline10call?A.online2B.online3C.online6D.online7翻译第十行的声明将调用哪些方法。答案D解析变量t是一个Person对象,但是它是用Teacher实例化的,这个问题涉及到java的编译时多态和运行时多态的问题,就编译时多态来说,t实际上是一个Person类,这涉及到类型的自动转换(将一个子类的实例赋值给一个父类的变量是不用进行强制类型转换,反之则需要进行强制类型转换,而且被赋值的变量实际上应该是一个子类的对象),如果对t调用了子类中新增的方法则造成编译时错误编译将不能通过,而在运行时,运行时系统将根据t实际指向的类型调用对应的方法,对于本例来说,t.print(10)将调用t实际指向的Teacher类的对应方法。在java中,可以用一个子类的实例实例化父类的一个变量,而变量在编译时是一个父类实例,在运行时可能是一个子类实例。13.WhicharenotJavaprimitivetypes?A.shortB.BooleanC.unitD.float翻译下面哪些不是java的原始数据类型。答案B,C解析Java的原始数据类型一共就八个,分别是:byte,short,int,long,boolean,char,float,double。注意这些是大小写敏感的,而Boolean是booelan的封装类(wrapperclass)。14.Usetheoperators,whichstatementsaretrue?A.000001000000000000000000000000005gives10000000000000000000000000000000B.000001000000000000000000000000005gives11111110000000000000000000000000D.110000000000000000000000000000005gives00000110000000000000000000000000翻译使用操作符的哪些陈述是对的。答案A,C解析Java的移位操作符一共有三种,分别是”,”,”32的结果是a而不是0,同理,对long型数是对右操作数取64的模,a64=a;还有一点需要注意的是移位操作符”只对int型和long型有效,对byte或者short的操作将导致自动类型转换,而且是带符号的。15.Whichofthefollowingrangeofintiscorrect?A.-27-27-1B.0-232-1C.?215-215-1D.?231-231-1翻译int的取值范围是哪个。答案D解析int型是32位的。参看第一题的论述。16.Whichkeywordshouldbeusedtoenableinteractionwiththelockofanobject?Theflagallowsexclusiveaccesstothatobject.A.transientB.synchronizedC.serializeD.static翻译下面的哪些关键字通常用来对对象的加锁,该标记使得对对象的访问是排他的答案B解析由于java是多线程的语言,多个线程可以”同时”访问同一数据区,而在处理某些数据时不希望其它的线程修改那些数据的值或者某些操作是不可打断的,要做到这个,可以使用synchronized关键字声明这一点。17.Whichisthereturntypeofthemethodmain()?A.intB.voidC.booleanD.static翻译main()方法的返回类型是什么?答案B解析在java中,程序运行的入口就是main()方法,它必须是这样的形式:publicstaticvoidmain(Stringargs)。但是严格来讲这个题目的答案还可以加上a和c,因为并没有限定是程序入口的main()方法,而main()方法是可以重载的。一般意义上的main()当然就是指我们刚开始所说的main()方法了。18.Giventhefollowingcode:if(x0)System.out.println(first);elseif(x-3)System.out.println(second);elseSystem.out.println(third);Whichrangeofxvaluewouldprintthestringsecond?A.x0B.x-3C.x=-3D.x-3翻译给出下面的代码:x的取值在什么范围内时将打印字符串second。答案D解析x0时打印first,x-3&x=0时打印second,x10)publicstaticvoidmain(Stringarg)inti=10;Testt=newTest();t.printValue(i);Whichwillbeoutput?A.Thevalueis8B.Thevalueis9C.Thevalueis10D.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.(bc)题目:下面的有关声明的哪些叙述是对的。A.对原始数据类型例如boolean,byte的变量的声明不会为该变量分配内存空间。B.对原始数据类型例如boolean,byte的变量的声明将为之分配内存空间。C.非原始数据类型例如String,Vector的变量的声明不会为该对象分配内存。D.非原始数据类型例如String,Vector的变量的声明会为该对象分配内存。对原始数据类型的变量的声明将为之分配内存并赋予一个缺省值,参见23题的叙述,而非原始数据类型的变量必须用newXxxx()分配内存及初始化。但是严格来讲此题的答案有待确定,因为只有原始类型的实例变量和类变量的声明在类对象被创建/类被加载时完成内存的自动分配,而原始类型的局部变量必须显式初始化,从这点来看原始类型的局部变量没有被自动分配内存,SL275中只提出了非原始数据类型的变量必须使用newXxxx()完成内存的分配而没有指出原始数据类型的变量是否在声明时即自动进行内存分配,而从局部变量不能在显式初始化前使用这点来看在声明时没有进行内存分配。因此答案b的正确性还有待官方的确定。27、IntheJavaAPIdocumentationwhichsectionsareincludedinaclassdocument?A.ThedescriptionoftheclassanditspurposeB.AlistofmethodsinitssuperclassC.AlistofmembervariableD.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.line4B.line6C.line7D.line8(c)题目:给出下面的代码:哪些行在编译时可能产生错误。这个问题在前面有关变量的类型及其作用域的问题中讨论过,局部变量在使用前必须显式初始化,而代码中的变量k在使用前没有。29、Whichofthefollowingstatementsaboutvariablesandscopearetrue?A.Localvariablesdefinedinsideamethodaredestroyedwhenthemethodisexited.B.Localvariablesarealsocalledautomaticvariables.C.Variablesdefinedoutsideamethodarecreatedwhentheobjectisconstructed.D.Amethodparametervariablecontinuestoexistforaslongastheobjectisneededinwhichthemethodisdefined.(abc)题目:下面有关变量及其作用域的陈述哪些是对的。A.在方法里面定义的局部变量在方法退出的时候被撤销。B.局部变量也叫自动变量。C.在方法外面定义的变量(译注:即实例变量)在对象被构造时创建。D.在方法中定义的方法的参变量只要该对象被需要就一直存在。本题还是讨论变量的类型及作用域,参看前面的叙述。30、Aclassdesignrequiresthatamembervariablecannotbeaccessibledirectlyoutsidetheclass.Whichmodifiershouldbeusedtoobtaintheaccesscontrol?A.publicB.nomodifierC.protectedD.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)elseSystem.out.println(end);Whichlinewillcauseerror?A.line1B.line2C.line5D.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)加载程序运行所需要的所有类,它通过区分本机文件系统的类和网络系统导入的类增加安全性,这可以限制任何的特洛伊木马程序,因为本机类总是先被加载,一旦所有的类被加载完,执行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论