
我们在进行Java编程的时候,使用最频繁的数据类型基本上就是int型了。平时在使用这种数据类型的过程中,我们似乎也并没有感觉到有什么太多需要注意的地方,其实int类型的变量在使用过程中也会有一些隐藏很深的坑,我们通过一篇短文来了解一下。
首先我们先来明确一下Java虚拟机在对int型数据进行处理时默认的两条规则
1. 当程序出现“整型常量”的时候,默认都是以int型存储的
2. 如果算术表达式中出现的所有的数字都是int型的,默认运算结果也是int类型
了解了这两条基本规则之后,我们接着往下看。在程序编译过程中,编译器只对“直接出现”的int常量进行数据超范围检查,而对“运算产生的int型值”并不进行超范围检查。这句话是什么意思呢?我们来看下面的代码

我们使用数字2200000000给long类型的变量x赋值,2200000000其实并没有超过long类型数据的范围,但是编译器却认为这条语句有语法错误,为什么呢?刚才我们强调过:当程序出现“整型常量”的时候,默认都是以int型存储的&#x