Java类型转换注意事项

有人反馈说半年内文章找不到,但是前两天都是好好的,怎么会呢?去看了看代码才发现,计算时间时半年的时间写错了。

private final static long HALF_YEAR_LONG = 180 * 24 * 60 * 60 * 1000;

说实话当时真没注意这个问题。这个乘法是先计算最后转long类型,所以时间计算出来其实已经 超过了int的最大值2147483647 。最后修改如下:

private final static long HALF_YEAR_LONG = 180L * 24 * 60 * 60 * 1000;

请注意在180后面就加上L转为long类型,如果加在1000后面如果前面超过了int的最大值还是会出现问题的。