未解之谜 JAVA大神帮忙解决问题 long d2为什么不等于d3

图片说明

 主要int的范围
 “-2^32”到“2^32-1”
 long ddd=(40*86400000),等号右边,编译器是按照int计算,再转long的,而40*86400000已经超出了整型表示的范围。
 如果要ddd是long型,应该 long ddd=(40*86400000L),加一个l,表示long型乘积

怎么看出来不相等的,你输出下 d2 == d3 看看返回什么。

D2为什么等于D3? 你明明 ddd 后面只有4个0.

dd+dd 又不等于 ddd 不懂为什么会这么问