您的位置:首页 > 编程语言 > Java开发

java++常见笔试陷阱题++更新中...

2011-10-12 22:04 281 查看
int a=5;
System.out.println("value is"+((a<5)? 10.9:9 ));

输出结果为:

A.编译错误 B10.9 C.9 D 以上答案都不对。

运行执行结果为:

value is9.0

因为((a<5) ? 10.9 )有一个10.9java 根据运算符精度自动转型。因此后面的 9 也会变成9.0 。

所以选D 。

a
StringBuffer str1=new StringBuffer("123");
StringBuffer str2=new StringBuffer("123");
if(str1.equals(str2)){
System.out.println("str1.equalstr2");
}else{
System.out.println("str1.notequalstr2");
}
结果为: str1.notequalsstr2 这说明StringBuffer 没有重写 equals 方法。

Float fa=new Float(0.9f);
Float fb=new Float(0.9f); //Float fb=new Float("0.9f");
Double db=new Double(0.9f);
if(fa==fb){  //false
System.out.println("fa==fb");
}else{
System.out.println("fa!=fb");
}
if(fa.equals(fb)){ //true
System.out.println("fa.equalfb");
}else{
System.out.println("fa!equalfb");
}
if(db.equals(fb)){ //false
System.out.println("db.equalfb");
}else{
System.out.println("db!equalfb");
}
结果为:

fa!=fb
fa.equalfb
db!equalfb Float 型与Double 型肯定不相等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: