Integer i = new Integer (42);
Long 1 = new Long (42);
Double d = new Double (42.0);A. (i ==1)
B. (i == d)
C. (d == 1)
D. (i.equals (d))
E. (d.equals (i))
F. (i.equals (42)) 为什么D,E正确,而B不行呢?
他们不都是比较内存地址么?
Long 1 = new Long (42);
Double d = new Double (42.0);A. (i ==1)
B. (i == d)
C. (d == 1)
D. (i.equals (d))
E. (d.equals (i))
F. (i.equals (42)) 为什么D,E正确,而B不行呢?
他们不都是比较内存地址么?
equals是判断两个变量或实例所指向的内存空间的值是不是相同
B不行 是语法错误,Double类型不能转化为Integer类型。
(Object)i==d 或者 i==(Object)d 语法都正确 ,运行结果都是false 。
equals是判断两个变量或实例所指向的地址的数值,是不是相同的
equals是比较值的,具体可参考相关类中的实现.