java值判断问题

来源:百度知道 编辑:UC知道 时间:2024/05/09 18:38:06
有一道题:
11. public static void main( String[] args ) {
12. Integer a = new Integer(10);
13. Integer b = new Integer(10);
14. Integer c = a;
15. int d = 10;
16. double e = 10.0;
17. }
Which three evaluate to true? (Choose three)
A. (a == c)
B. (d == e)
C. (b == d)
D. (a == b)
E. (b == c)
F. (d == 10.0)
为什么选择B呢?谢谢了!
那为什么d和e相等呢?int型与double型精度不相同啊?

class Demo1
{
public static void main(String[] args)
{
Integer a = new Integer(10);
Integer b = new Integer(10);
Integer c = a;
int d = 10;
double e = 10.0;

System.out.println(a == c);
System.out.println(d == e);
System.out.println(b == d);
System.out.println(a == b);
System.out.println(b == c);
System.out.println(d == 10.0);

}
}

结果:
true
true
true
false
false
true

要相信机器,不明白可以去问老师。

那你觉得10 != 10.0????
更何况程序结果是最能说明问题的