Java类型转换注意事项

0

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

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的最大值,还是会出现问题的。