Sun考试认证题目解析.doc

上传人:scccc 文档编号:11232901 上传时间:2021-07-16 格式:DOC 页数:8 大小:40.50KB
返回 下载 相关 举报
Sun考试认证题目解析.doc_第1页
第1页 / 共8页
Sun考试认证题目解析.doc_第2页
第2页 / 共8页
Sun考试认证题目解析.doc_第3页
第3页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Sun考试认证题目解析.doc》由会员分享,可在线阅读,更多相关《Sun考试认证题目解析.doc(8页珍藏版)》请在三一文库上搜索。

1、Sun考试认证题目解析Sun考试认证题目解析20161,给定以下代码,求j的值。publicclassTestpublicstaticvoidmain(Stringargs)throwsExceptioninti二OxFFFFFFFl;intj=i;A. OB. 1C. 14D.-15E. Anerroratline3causescompil8tiontof8il. F. Anerroratline4c ausescompilationtofail.答案:C解析:本题是考察进制,原码补码,非操作等知识。首先, OxFFFFFFFl是16进制,F用二进制表示为1111,所以整个i用二 进制表示为

2、 由于 j 是1 (即 0 变 1,1 变 0),表示 j 是 00000000000000000000000000001110,所以 变成了 j的值是1110,即可求得j=14.此处若再加一个要求,求i 的值。则由于计算机中存储的都是补码,第一位是符号位,转换成 原码的方式是:其余位取反,最后加1,所以求得i的值是 表示负号,所以 i二T5.2, 给定以下代码,选出下面为true的选项:Integeri二newInteger(42);Longl=newLong(42);Doubled=newDouble(42. 0);A. (i=l)B. (i=d)C. (d=l)D. (i. equals

3、 (d) )E. (d. equals (i)F. (i. equals (42)答案:F解析:i, 1, d由于类型不同,因此ABC无法通过编译。DE选项 返回false,能通过编译,但是两者对象类型不同,返回false0 F 选项在java5之后增加了自动装箱的功能,所以F为trueo题目答 案给的是DE,可能是版本比较旧。不再过多琢磨了。3, 求岀下面程序的输出结果:publicclasstestprivatestaticintj=0;privatestaticbooleanmethodB(intk)j+=k;returntrue;publicstaticvoidmethodA(inti

4、) booleanb:b=i10 methodB(4);b=i10 i methodB(8);publicstaticvoidmain(Stringargs) methodA(0);System, out. printin (j);A. Theprogramprints 0” B. Theprogramprints “4 C. Theprogr amprints 8” DTheprogramprints “12” EThecodedoesnotcomple te.答案:B解析:本题考察的是与或非以及逻辑运算符的使用。首先要明确, &和丨以及是位运算符,而II和&是逻辑运算符。位运算符全部参与

5、计算,而逻辑运算符存在短路的情况。下面引用一段解释:由于& 要求它的参与操作的两个操作数都是布尔值真,才得真,所以只要 得出其中一个为假,那么另一部分的表达式就不会被求值。同理由 于丨I要求它的参与操作的两个操作数只要其中之一为真,就得真, 所以只要得出其中一个为真,那么另一部分也不会被求值(在上面的 例子中是methodB(8)不会被调用)。这就是逻辑操作符所谓的“短 路求值”。位操作没有这一特性,所以不管那边的值是如何,任何参与运 算的表达式都会被执行求值,所以methodB(4)执行。4, 求出下面的输岀结果:publicclasstestpublicstaticvoidmain(Str

6、ingargs) System, out. printin (6 3);答案:5解析:考察八操作符。指的是按位异或操作。即两个二进制数按 位进行异或,相同的值为0,不同的值为1。所以6的二进制为 0110,3的二进制为0011,所以异或之后为0101,值为5。5, 下面程序的输出结果是:publicclassFoopublicstaticvoidmain(Stringargs) StringBuffera=newStringBuffer( A” );StringBufferb=newStringBuffer( “B” );operate (a, b);System, out. printina

7、+ , ” +b;staticvoidoperate(StringBufferx, StringBuffery) x. append y;y 二x;A. Thecodecompilesandprints A, B” . B. Thecodecompilesandpr ints A, A” . C. Thecodecompilesandprints B,B” . D. Thecodecomp ilesandprints AB,B” . E. Thecodecompilesandprints AB,AB” . F .Thecodedoesnotcompilebecause “ + ” cannot

8、beoverloadedforStri ngBuffer答案:D解析:本题考察StringBuffer以及函数传递参数等问题,下面 谈一下我的理解,不敢保证全部正确。首先,a, b分别指向A和B 的地址,其对应的内容是A和B,调用operate函数时,将a, b的 引用传递给x, y,也就是说x, y分别复制了 a, b的引用,现在x, y分别指向A和B。当x执行append操作时,由于StringBuffer的 特性,这里的内容变成FAB,也就是说这个时候x和a所指向内存 的内容都是AB,而y=x表示的是让y同样指向x指向的内容,即 现在y指向的也是AB,但是b并没有改变,所以b的值还是B。

9、还 有困惑的可以参考这里:. csdn. net/xia7139/article/details/8783066o6, 下面的程序输出什么?publicclassTestpublicstaticvoidmain(Stringargs) StringBufferaBuffer=newStringBuffe:r (java);StringbString=newString(java);stringReplace(bString);bufferReplace(aBuffer);System out. printin(bString+aBuffer);publicstaticvoidstringRep

10、lace(Stringstring) string二stringreplace( j , 1 ;;publicstaticvoidbufferReplace(Str i ngBufferbuffer)buffer二buffer. append(C);答案:javajavaC解析:本题考察String和SttingBuffer的用法。定义一个String对象的时候会有个“池”的概念,也就是说Stringa=/,abc,z;Stringb=/zabcz,;这里表示,a 和 b 指向的是一块地 址,定义b后发现string池中己有现在的对象,所以直接用,如果 这时候用equal和二二比较,二者都是t

11、rueo但是如果是 Stringc=newString(,zabc,z);则 a, b 和 c 用 equal 是 true,用=是 falseo因为c指向了不同的地址,但是内容相同。而StringBuffer不同。StringBuffer指向的始终不变,通过 append操作改变内容,不会产生新的对象,所以StringBuffer比 String 快。所以上题很好解释了,bString指向的是一块地址B,而 stringReplace函数只是改变了新的引用string的内容,对 bString没有改变。而aBuffer通过append改变了自己指向的内容, 所以其内容也会跟着变化。7, 以下

12、哪个输出结果是正确的?publicclassTestpublicstaticvoidmain(Stringargs) Integern=newInteger(0);add3(n);System, out. printin (n);publicstaticvoidadd3(Integeri)inta=i. intValue ();a=a+3;i=newlnteger(a);A. Compilationwillfai1BTheprogramprints u0n CTheprogr amprints 3” DCompilationwi11succeedbutanexceptionwi1lbet hr

13、ownatline3答案:B解析:Integer是对象,int是实数,所以当add3函数改变i引 用指向的内容时,原始的n并没有改变,其内容依然是0。8, 选出正确的重载构造函数publicclassConstOverpublicConstOver(intx, inty, intz) A. ConstOver () B. ProtectedintConstOvet () C. PrivateConstOver(intz, inty, bytex)D. PublicObjectConstOver (intx, inty, intz) E. PublicvoidConstOver(bytex, b

14、ytey, bytez)答案:AC解析:构造函数:可以用public, private, protected修饰, 但不能有返回类型,或者void修饰。重载表示函数名相同,但是参 数或类型一定不同。9, 选出正确的重载函数:publicclassMethodOverpublicvoidsetVar(inta, intb, floatc) A. PrivatevoidsetVar (inta, floatc, intb)B. ProtectedvoidsetVar(inta, intb, floatc) C. PublicintsetVar (inta, floatc, intb) (:retu

15、rna;)D. PublicintsetVar (inta, intb, floatc)(returna;)E. ProtectedfloatsetVar(inta, intb, floatc)(returnc;)答案:AC解析:谨记重载的含义,函数名一定相同,参数或者类型不同。10, 选出下面覆盖getVar ()的方法:classBaseClassprivatefloatx=1 Of;protectedfloatgetVar()returnx;classSubclassextendsBaseClassprivatefloatx=2 Of;/insertcodehereA. FloatgetVar () returnx;B. PublicfloatgetVar()returnx;C. FloatdoublegetVar()returnx;D. PublicfloatgetVar()returnx;E. PublicfloatgetVar(floatf)returnf;答案:BD解析:覆盖(overriding)指的是函数名和参数要和原方法相同, 只是具体的实现细节不同。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1