项目服务端有个查询当地新闻的接口,从GEO文件中取得code,后台查询。
下午测试的时候查询日本:3920000000,结果报java.lang.NumberFormatException,数字格式化异常,
调试后发现代码中有个是否整数的判断,会把String转换成Integer,"3920000000"超出了int的值域后报异常。
JDK 7的虚拟机中,int取值范围为"-2^31~(2^31-1)"。
对于 byte 类型,取值范围是从-128 至 127(-27至 27-1) ,包括-128 和 127。
对于 short 类型,取值范围是从− 32768 至 32767(-215至 215-1) ,包括− 32768 和
32767。
对于 int 类型,取值范围是从− 2147483648 至 2147483647(-231至 231-1) ,包括−
2147483648 和 2147483647。
对于 long 类型,取值范围是从− 9223372036854775808 至 9223372036854775807
(-263至 263-1) ,包括− 9223372036854775808 和 9223372036854775807。
对于 char 类型,取值范围是从 0 至 65535,包括 0 和 65535。
测试:
public class Integertest { public static void main(String[] args) { System.out.println("最大取值:" + Integer.MAX_VALUE); System.out.println("最小取值:" + Integer.MIN_VALUE); } }
输出:
最大取值:2147483647 最小取值:-2147483648