考试教辅javajava分析题java分析.docx
- 文档编号:27538984
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:25
- 大小:20.07KB
考试教辅javajava分析题java分析.docx
《考试教辅javajava分析题java分析.docx》由会员分享,可在线阅读,更多相关《考试教辅javajava分析题java分析.docx(25页珍藏版)》请在冰豆网上搜索。
考试教辅javajava分析题java分析
JAVA分析题
1.写出下列程序输出结果:
publicclassSnakeimplementsCloneable{
privateSnakenext;
privatecharc;
Snake(inti,charx){
c=x;
if(--i>0)
next=newSnake(i,(char)(x+1));
}
voidincrement(){
c++;
if(next!
=null)
next.increment();
}
publicStringtoString(){
Strings=":
"+c;
if(next!
=null)
s+=next.toString();
returns;
}
publicObjectclone(){
Objecto=null;
try{
o=super.clone();
}catch(CloneNotSupportedExceptione){}
returno;
}
publicstaticvoidmain(String[]args){
Snakes=newSnake(5,'a');
System.out.println("s="+s);
Snakes2=(Snake)s.clone();
System.out.println("s2="+s2);
s.increment();
System.out.println("afters.increment");
System.out.println("s="+s);
System.out.println("s2="+s2);
}
}
结果:
s=:
a:
b:
c:
d:
e
s2=:
a:
b:
c:
d:
e
afters.increment
s=:
b:
c:
d:
e:
f
s2=:
a:
c:
d:
e:
f
2.写出main方法中的调用的执行顺序
publicA{
1publicinti=1;
2publicstaticintj=1;
3publicA(){};
}
BextendsA{
4publicinta=2;
5publicstaticintb=2;
6publicB(){};
}
publicclassTest(){
publicstaticvoidmain(String[]args){
inti=B.b;
Bb=newB();
}
}
程序执行的顺序:
251346
3.请列出objBtn_actionPerformed执行时的各语句执行顺序
voidobjBtn_actionPerformed(ActionEvente){
Childchild=newChild();
}
classBase{
1inti=0;
2OtherbaseOther=newOther(“initBaseOther”);
3privatestaticintx=1;
publicBase(){
4System.out.println(“InitBase”);
}
}
classChildextendsBase{
5inta=0;
6OtherchildOther=newOther(“initChildOther”);
7privatestaticinty=2;
publicChild(){
8System.out.println(“initChild”);
}
}
4.请列出Test执行时的输出结果
classA{
publicvoidprintValue(){
System.out.println(“A”);
}
}
classSextendsA{
publicvoidprintValue(){
System.out.println(“S”);
}
}
publicclassTest{
publicstaticvoidmain(String[]args){
Ss=newS();
s.printValue();
Aas=(A)s;
As.printValue();
}
}
输出的结果是:
SS
5.试分析一下以下函数的编码中,存在的性能问题有哪些?
可以进行什么样的优化?
classA{
B[]bs=newB[20];
publicstringtoString(){
\StringBufferbuf=newStringBuffer(“xml”);
for(intI=0;I<20;I++)
buf.append(bs[i].toString());
buf.append(“OVER”);
returnbuf.toString();
}
}
classB{
Stringx=”ValueX”;
Stringy=”ValueY”;
publicStringtoString(){
StringBufferbuf=newStringBuffer();
buf.append(x);
buf.append(y);
returnbuf.toString();
}
}
6.下面的代码有什么性能问题?
前提:
T1位数据库表格,只有一个可以为null的字符串字段,长度为100;
Connectionconn已经获得连接;
ArrayListlistName有500个不同的字符串值,且每个字符串的长度不超过100;
Try{
PreparedStatementps=conn.PreparedStatement(“insertintoT1(name)value(?
)”);
For(intI=0;I ps.setString(1,(String)list.get(i)); ps.executeUpdate(); } ps.close(); conn.close(); }catch(Exceptionex){} 答: oracle服务器端耗费内存! 应该每循环20次mit()一下 7.A内基类B为子类,当Bb=newB();执行时的输出结果 classA{ inti=0; publicstaticvoidgetInit(Strings){ System.out.println(s); } publicA(){ getInit("AInit"); } } classBextendsA{ inti=0; publicstaticvoidgetInit(Strings){ System.out.println(s); } publicB(){ getInit("BInit"); } } 输出的结果是: AInitBInit 8.写出下面程序运行结果 classNoteX{ publicstaticfinalint MIDDLE_C=0,C_SHARP=1,C_FLAT=2; } classInstrumentX{ publicvoidplay(intNoteX){ System.out.println("InstrumentX.play()"); } } classWindXextendsInstrumentX{ publicvoidplay(NoteXn){ System.out.println("WindX.play(NoteXn)"); } } classKettleXextendsInstrumentX{ publicvoidplay(intNoteX){ System.out.println("KettleX.play(NoteXn)"); } } publicclassWindMusic{ publicstaticvoidtune(InstrumentXi){ i.play(NoteX.MIDDLE_C); } publicstaticvoidmain(String[]args){ WindXflute=newWindX(); tune(flute); KettleXkttle=newKettleX(); tune(kttle); } } 其结果: WindX.play(NoteXn) InstrumentX.play() 9.写出下面程序运行结果 classTags{ Tags(intmarker){ System.out.println("Tags("+marker+")"); } } classInsect{ Tagst1=newTags (1); inti=9; intj; Insect(){ prt("i="+i+",j="+j); j=39; } staticintx1=prt("staticInsect.x1initialized"); Tagst2=newTags (2); staticintprt(Strings){ System.out.println(s); return47; } } publicclassBeetleextendsInsect{ Tagst3=newTags(3); intk=prt("Beetle.kinitialized"); Beetle(){ prt("k="+k); prt("j="+j); } staticintx2=prt("staticBeetle.x2initialized"); staticintprt(Strings){ System.out.println(s); return63; } publicstaticvoidmain(String[]args){ prt("Beetleconstructor"); Beetleb=newBeetle(); } } 其结果: staticInsect.x1initialized staticBeetle.x2initialized Beetleconstructor Tags (1) Tags (2) i=9,j=0 Tags(3) Beetle.kinitialized k=63 j=39 10.写出下面程序运行结果 publicclassArrayTest{ privateint[]str={1,2,3,4,5,6}; publicArrayTest(){ } publicvoidincrease(int[]arrays){ for(inti=0;i arrays[i]++; } } publicvoidprint(){ System.out.print("str=["); for(inti=0;i if(i>0){ System.out.print(","); } System.out.print(str[i]); } System.out.println("]"); } publicstaticvoidmain(String[]args){ ArrayTestobj=newArrayTest(); obj.print(); System.out.println("Afterincrease: "); obj.increase(obj.str); obj.print(); } } 其结果: str=[1,2,3,4,5,6] Afterincrease: str=[2,3,4,5,6,7] 11.写出下面程序的运行结果并分析程序的潜在缺陷 publicclassNullHandle{ privateStringstr; publicNullHandle(){ } publicStringgetStr(){ returnstr; } publicstaticvoidmain(String[]args){ NullHandleobj=newNullHandle(); StringnullStr=obj.getStr(); if(nullStr.length()==0){ System.out.println("empty! "); }else{ System.out.println(nullStr); } } } 答案: 第11行有空指针异常 if(nullStr.length()==0){ 12.写出下面程序的运行结果并分析程序的潜在缺陷 publicclassSnakeimplementsCloneable{ privateSnakenext; privatecharc; Snake(inti,charx){ c=x; if(--i>0) next=newSnake(i,(char)(x+1)); } voidincrement(){ c++; if(next! =null) next.increment(); } publicStringtoString(){ Strings=": "+c; if(next! =null) s+=next.toString(); returns; } publicObjectclone(){ Objecto=null; try{ o=super.clone(); }catch(CloneNotSupportedExceptione){} returno; } publicstaticvoidmain(String[]args){ Snakes=newSnake(5,'a'); System.out.println("s="+s); Snakes2=(Snake)s.clone(); System.out.println("s2="+s2); s.increment(); System.out.println("afters.increment"); System.out.println("s="+s); System.out.println("s2="+s2); } } 答案: clone方法中只定义了浅克龙,没有把原始对象(这里是一个链表)完全复制下来,s2的每个元素都是s的对应元素的引用(除了第一个)。 13.写出下列程序完成的功能 publicclassSum{ publicstaticvoidmain(Stringargs[]){ doublesum=0.0; for(inti=1;i<=100;i++) sum+=1.0/(double)i; System.out.println("sum="+sum); } } 答案: 计算从1到100转化成double类型的倒数的和100 ∑1.0/N N=1 14.写出下列程序完成的功能 importjava.io.*; publicclassReverse{ publicstaticvoidmain(Stringargs[]){ inti,n=10; inta[]=newint[10]; for(i=0;i try{ BufferedReaderbr=newBufferedReader( newInputStreamReader(System.in)); a[i]=Integer.parseInt(br.readLine()); }catch(IOExceptione){}; for(i=n-1;i>=0;i--) System.out.print(a[i]+""); System.out.println(); } } 答案: 要求用户输入10个数字,然后按反序输出 15.写出下面程序运行结果 publicabstractclassABC{ longaver=0; longmax=0; longmin=0; inttestSum=0; protectedabstractactionPerformed(); publicvoidABC(inttestSum){ longstart; longinterval; longsum=0; this.testSum=testSum; for(inti=0;i start=(newjava.util.Date()).getTime(); actionPerformed(); interval=(newjava.util.Date()).getTime()-start; sum+=interval; if(interval>max)max=interval; if(i==0) min=interval; elseif(interval min=interval; } aver=sum/testSum; System.out.println("aver: \t"+aver+"miliSeconds"); System.out.println("max: \t"+max+"miliSeconds"); System.out.println("min: \t"+min+"miliSeconds"); } } 答案: 计算某个方法执行n次的最短时间、最长时间和平均时间 16.写出下面程序运行结果 importjava.io.*; publicclassabc{ publicstaticvoidmain(Stringargs[]){ Stringstr1="Hello! "; Stringstr2="IloveJAVA."; System.out.println(newAB(str1,str2)); System.out.println(str2); } } classAB{ Strings1; Strings2; AB(Stringstr1,Stringstr2){ s1=str1; s2=str2; str2+=str1; } publicStringtoString(){ returns1+s2; } } 答案: Hello! IloveJAVA. IloveJAVA. 17.写出下面程序运行结果 classEx{ publicstaticvoidmain(String[]args){ Fxf=newFx(5); } Ex(){ System.out.println("Ex,no-args"); } Ex(inti){ System.out.println("Ex,int"); } } classFxextendsEx{ Fx(){ super(); System.out.println("Fx,no-args"); } Fx(inti){ this(); System.out.println("Fx,int"); } } 答案: Ex,no-args Fx,no-args Fx,int 18.给出以下程序的运行结果 #include voidmain(){ intn=5,sum=1; for(inti=1;i<=n;i++){ sum=sum*i; } printf(“outputsum: %d”,sum); } 输出结果是120。 19.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考试 教辅 javajava 分析 java