Integer i = new Integer (42);
Long 1 = new Long (42);
Double d = new Double (42.0);
Which two expressions evaluate to True? (Choose Two)
A. (i ==1)
B. (i == d)
C. (d == 1)
D. (i.equals (d))
E. (d.equals (i))
F. (i.equals (42)) 为什么答案是D和E呢?请高人讲讲。F错在哪里?
Long 1 = new Long (42);
Double d = new Double (42.0);
Which two expressions evaluate to True? (Choose Two)
A. (i ==1)
B. (i == d)
C. (d == 1)
D. (i.equals (d))
E. (d.equals (i))
F. (i.equals (42)) 为什么答案是D和E呢?请高人讲讲。F错在哪里?
i.equals(d)
把i转换成字符串为42,而D为42.0, 这样42.equals("42.0")并不相等.
同理e也错误.
F错在一个对象不能直接与一个int类型比较.无法编译.
Compares this object to the specified object.
所以就是d和e了,f是object和基本类型比较,所以不对。
本人愚见,请高手指点。
Long l = new Long (42);
Double de = new Double (42.0);
System.out.println (i.equals(de));
System.out.println (de.equals(i));
System.out.println (i.equals(42));此程序在我的机上运行结果为:(jdk1.5.0)
false
false
true
equals()是比较对象中的值的方法,F不对我已经明白了,D和E呢?42.0和42算相等吗?