Java计算出现的问题int超出最大值会怎样

今天发现我的Android应用出现一个问题,找了好久,现在记录下来
今天计算是debug调试出这么一个问题
这里写图片描述
我用简单的乘法尽然算出了一个负数,最后发现int的计算超出最大值就变成负数了
currentTimeMills 当前时间
正确的写发应该如下(用long计算)
long time = currentTimeMills - (90L * 24L * 60L * 60L * 1000L);

最近又找了以下为什么会变成负数,原因是,int型数据在二进制里面是有固定位数的,当数字超过int数据时,二进制的最前面的位数也就是符号位会发生变化,所以就变成负数了


版权声明:本文为qq_35864421原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。