Java中Integer类型数据溢出的原因分析

背景:某个场景是需要将时间戳格式化为日期;采用的方案是将时间戳转换为毫秒再格式化成日期,先把时间戳乘以1000转换成毫秒,再通过Date格式化为日期,时间戳的数据类型是Integer;转换后的日期确是1969年;

原因分析:Integer类型占4字节,每个字节占8位二进制码,因此Integer类型总共占32位二进制码,去除首位的符号位,剩下31位则用来表示数值,所以Integer的取值范围是2^31次方即-2147483648至2147483647;Long类型占8字节,取值范围是2^63次方即-9223372036854775808至9223372036854775807;Byte类型占1字节,取值范围是2^7次方即-128至127;

你可能感兴趣的:(Java中Integer类型数据溢出的原因分析)