几个陷阱题.docx

上传人:b****7 文档编号:10092818 上传时间:2023-02-08 格式:DOCX 页数:28 大小:20.64KB
下载 相关 举报
几个陷阱题.docx_第1页
第1页 / 共28页
几个陷阱题.docx_第2页
第2页 / 共28页
几个陷阱题.docx_第3页
第3页 / 共28页
几个陷阱题.docx_第4页
第4页 / 共28页
几个陷阱题.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

几个陷阱题.docx

《几个陷阱题.docx》由会员分享,可在线阅读,更多相关《几个陷阱题.docx(28页珍藏版)》请在冰豆网上搜索。

几个陷阱题.docx

几个陷阱题

几个陷阱题.txt2机会靠自己争取,命运需自己把握,生活是自己的五线谱,威慑呢们不亲自演奏好它?

NO.1找奇数

Java代码

publicclassOddTest{

publicstaticbooleanisOdd(inti){

//returni%2==1;

returni%2!

=0;

}

publicstaticvoidmain(String[]args){

System.out.println(isOdd

(1));

System.out.println(isOdd

(2));

System.out.println(isOdd(3));

}

}

 

陷阱等级:

★★★☆☆

NO.2浮点数相减

Java代码

publicclassDoubleMinus{

publicstaticvoidmain(String[]args){

System.out.printf(2.0f-1.1f);

}

}

}陷阱等级:

★★★★★

NO.3长整除

Java代码

publicclassLongDivision{

publicstaticvoidmain(String[]args){

finallongMICROS_PER_DAY=24l*60*60*1000*1000;//微秒

finallongMILLIS_PER_DAY=24*60*60*1000;//毫秒

System.out.println(MICROS_PER_DAY/MILLIS_PER_DAY);

}

}

陷阱等级:

★★★★★

NO.4互换内容

Java代码

publicclassSwap{

publicstaticvoidmain(String[]args){

intx=1984;

inty=2001;

x^=y^=x^=y;

System.out.println("x="+x+";y="+y);

}

}

陷阱等级:

★★☆☆☆

NO.5字符串和字符

Java代码

publicclassCharAndString{

publicstaticvoidmain(String[]args){

System.out.println("H"+"a");

System.out.println('H'+'a');

}

}

publicclassCharAndString{

publicstaticvoidmain(String[]args){

System.out.println("H"+"a");

System.out.println('H'+'a');

}

}

陷阱等级:

★★★★★

NO.6字符数组

Java代码

publicclassCharArray{

publicstaticvoidmain(String[]args){

Stringletters="ABC";

char[]numbers={'1','2','3'};

System.out.print(numbers);

System.out.print(letters+"easyas"+numbers);

}

}

publicclassCharArray{

publicstaticvoidmain(String[]args){

Stringletters="ABC";

char[]numbers={'1','2','3'};

System.out.print(numbers);

System.out.print(letters+"easyas"+numbers);

}

}

陷阱等级:

★★★★☆

NO.7转义字符

Java代码

publicclassUnicodeTest{

publicstaticvoidmain(String[]args){

System.out.println("a\u0022.length()+\u0022b".length());

}

}

publicclassUnicodeTest{

publicstaticvoidmain(String[]args){

System.out.println("a\u0022.length()+\u0022b".length());

}

}陷阱等级:

★★☆☆☆

NO.8打印输出类名

Java代码

publicclassMyClass{

publicstaticvoidmain(String[]args){

System.out.println(MyClass.class.getName().replaceAll(".","/")+".class");

}

}

publicclassMyClass{

publicstaticvoidmain(String[]args){

System.out.println(MyClass.class.getName().replaceAll(".","/")+".class");

}

}

陷阱等级:

★★☆☆☆

NO.9随机数的问题

Java代码

importjava.util.Random;

publicclassRandomTest{

privatestaticRandomrnd=newRandom();

publicstaticvoidmain(String[]args){

StringBufferword=null;

switch(rnd.nextInt

(2)){

case1:

word=newStringBuffer("P");

case2:

word=newStringBuffer("G");

default:

word=newStringBuffer("M");

}

word.append('a');

word.append('i');

word.append('n');

System.out.println(word);

}

}

importjava.util.Random;

publicclassRandomTest{

privatestaticRandomrnd=newRandom();

publicstaticvoidmain(String[]args){

StringBufferword=null;

switch(rnd.nextInt

(2)){

case1:

word=newStringBuffer("P");

case2:

word=newStringBuffer("G");

default:

word=newStringBuffer("M");

}

word.append('a');

word.append('i');

word.append('n');

System.out.println(word);

}

}陷阱等级:

★★★★☆

NO.10无情的增量操作

Java代码

publicclassForTest{

publicstaticvoidmain(String[]args){

intj=0;

for(inti=0;i<100;i++){

j=j++;

}

System.out.println(j);

}

}

publicclassForTest{

publicstaticvoidmain(String[]args){

intj=0;

for(inti=0;i<100;i++){

j=j++;

}

System.out.println(j);

}

}陷阱等级:

★★★★★

NO.11整数边界的问题

Java代码

publicclassWhileTest{

publicstaticfinalintEND=Integer.MAX_VALUE;

publicstaticfinalintSTART=END-100;

publicstaticvoidmain(String[]args){

intcount=0;

for(inti=START;i<=END;i++)

count++;

System.out.println(count);

}

}

publicclassWhileTest{

publicstaticfinalintEND=Integer.MAX_VALUE;

publicstaticfinalintSTART=END-100;

publicstaticvoidmain(String[]args){

intcount=0;

for(inti=START;i<=END;i++)

count++;

System.out.println(count);

}

}

陷阱等级:

★★★★☆

NO.12计数器的问题

Java代码

publicclassClock{

publicstaticvoidmain(String[]args){

intminutes=0;

for(intms=0;ms<60*60*1000;ms++)

if(ms%60*1000==0)

minutes++;

System.out.println(minutes);

}

}

publicclassClock{

publicstaticvoidmain(String[]args){

intminutes=0;

for(intms=0;ms<60*60*1000;ms++)

if(ms%60*1000==0)

minutes++;

System.out.println(minutes);

}

}陷阱等级:

★★★★☆

NO.13优柔寡断的返回值

Java代码

publicclassReturnValue{

publicstaticvoidmain(String[]args){

System.out.println(decision());

}

publicstaticbooleandecision(){

try{

returntrue;

}finally{

returnfalse;

}

}

}

publicclassReturnValue{

publicstaticvoidmain(String[]args){

System.out.println(decision());

}

publicstaticbooleandecision(){

try{

returntrue;

}finally{

returnfalse;

}

}

}陷阱等级:

★★★★☆

NO.14你好,再见

Java代码

publicclassGoodBye{

publicstaticvoidmain(String[]args){

try{

System.out.println("Helloworld");

System.exit(0);

}finally{

System.out.println("Goodbyeworld");

}

}

}

publicclassGoodBye{

publicstaticvoidmain(String[]args){

try{

System.out.println("Helloworld");

System.exit(0);

}finally{

System.out.println("Goodbyeworld");

}

}

}陷阱等级:

★★★★☆

NO.15到底关闭了吗

Java代码

importjava.io.FileInputStream;

importjava.io.FileOutputStream;

importjava.io.IOException;

importjava.io.InputStream;

importjava.io.OutputStream;

publicclassIOTest{

publicstaticvoidmain(String[]args){

}

publicstaticvoidcopy(Stringsrc,Stringdest)throwsIOException{

InputStreamin=null;

OutputStreamout=null;

try{

in=newFileInputStream(src);

out=newFileOutputStream(dest);

byte[]buf=newbyte[1024];

intn;

while((n=in.read(buf))>0)

out.write(buf,0,n);

}finally{

if(in!

=null)in.close();

if(out!

=null)out.close();

}

}

}

importjava.io.FileInputStream;

importjava.io.FileOutputStream;

importjava.io.IOException;

importjava.io.InputStream;

importjava.io.OutputStream;

publicclassIOTest{

publicstaticvoidmain(String[]args){

}

publicstaticvoidcopy(Stringsrc,Stringdest)throwsIOException{

InputStreamin=null;

OutputStreamout=null;

try{

in=newFileInputStream(src);

out=newFileOutputStream(dest);

byte[]buf=newbyte[1024];

intn;

while((n=in.read(buf))>0)

out.write(buf,0,n);

}finally{

if(in!

=null)in.close();

if(out!

=null)out.close();

}

}

}

陷阱等级:

★★★★★

5、无限循环

  viewplaincopytoclipboardprint?

  publicstaticfinalintEND=Integer.MAX_VALUE;

  publicstaticfinalintSTART=END-100;

  publicstaticvoidmain(String[]args){

  intcount=0;

  for(inti=START;i<=END;i++)

  count++;

  System.out.println(count);

  }

  publicstaticfinalintEND=Integer.MAX_VALUE;

  publicstaticfinalintSTART=END-100;

  publicstaticvoidmain(String[]args){

  intcount=0;

  for(inti=START;i<=END;i++)

  count++;

  System.out.println(count);

  }

  上面程序运行的结果是什么?

  A:

无限循环。

将i<=END改成i

为什么呢?

你知道的,呵呵!

6、计数器问题

  viewplaincopytoclipboardprint?

  intminutes=0;

  for(intms=0;ms<60*60*1000;ms++)

  if(ms%60*1000==0)

  minutes++;

  System.out.println(minutes);

  intminutes=0;

  for(intms=0;ms<60*60*1000;ms++)

  if(ms%60*1000==0)

  minutes++;

  System.out.println(minutes);

  结果跟你想的一样么?

  A:

呵呵,括号问题,不多说!

  7、到底返回什么?

  viewplaincopytoclipboardprint?

  publicstaticbooleandecision(){

  try{

  returntrue;

  }finally{

  returnfalse;

  }

  }

  publicstaticbooleandecision(){

  try{

  returntrue;

  }finally{

  returnfalse;

  }

  }

  true?

false?

  A:

一般情况下,不管怎么说try/catch代码块中,finally总是最后被执行的。

  8、错误里聚集遍历

  viewplaincopytoclipboardprint?

  publicstaticvoidmain(String[]args){

  Vectorv=newVector();

  v.add("one");

  v.add("two");

  v.add("three");

  v.add("four");

  Enumerationenume=v.elements();

  while(enume.hasMoreElements()){

  Strings=(String)enume.nextElement();

  if(s.equals("two"))

  v.remove("two");

  else{

  System.out.println(s);

  }

  }

  System.out.println("What'sreallythere...");

  enume=v.elements();

  while(enume.hasMoreElements()){

  Strings=(String)enume.nextElement();

  System.out.println(s);

  }

  }

  publicstaticvoidmain(String[]args){

  Vectorv=newVector();

  v.add("one");

  v.add("two");

  v.add("three");

  v.add("four");

  Enumerationenume=v.elements();

  while(enume.hasMoreElements()){

  Strings=(String)enume.nextElement();

  if(s.equals("two"))

  v.remove("two");

  else{

  System.out.println(s);

  }

  }

  System.out.println("What'sreallythere...");

  enume=v.elements();

  while(enume.hasMoreElements()){

  Strings=(String)enume.nextElement();

  System.out.println(s);

  }

  }

  运行代码看看结果跟你想的一样么?

  A:

一般不建议在遍历聚集的时候对聚集进行操作。

为什么结果是这样呢?

看JDK源码能得到答案。

Enumeration没有实现FailFast操作,如果换成ArrayList,上面的代码可能会出错。

《java与模式》迭代子(iterator)介绍了。

publicStringsubstring(intbeginIndex,intendIndex){

if(beginIndex<0){

thrownewStringIndexOutOfBoundsException(beginIndex);

}

if(endIndex>count){

thrownewStringIndexOutOfBoundsException(endIndex);

}

if(beginIndex>endIndex){

thrownewStringIndexOutOfBoundsException(endI

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1