参考博文:http://blog.csdn.net/myfmyfmyfmyf/article/details/22047367
代码如下图:
Long a = (long) (30*24*60*60*1000);
Long b = 30l*24l*60l*60l*1000l;
System.out.println("a = " + a);
System.out.println("b = " + b);
运行结果
a = -1702967296
b = 2592000000
原因是:30*24*60*60*1000是按照int类型来计算的,然后再由int转long,但30*24*60*60*1000的结果超出了int类型的最大范围(2147483647),所以溢出了,导致计算结果为负数。所以在计算大数值时,记得使用30l*24l*60l*60l*1000l这样的形式来计算