问你输出结果

java里int的最大值是2147483647,所以++以后是(-2147483648),这个没什么,long型的最大值是922京多,你以为赋值21474836471很安全,所以++j以后得21474836472,错,正确答案如图

给 j 赋的值不是21474836471,而是2147483647L,L小写了。在IDE中给j赋值21474836471会提示错误,所以图中你看到的给 j 赋的值也只能是2147483647L,所以结果如图
实际上代码中的数字结尾如果不加大写L或小写L,数字是不能超过int的最大值的,也就是说被默认当成int对待
网友评论