double除以int结果是int吗_你真的会用Java的int型变量吗?有些坑你真的不知道

  • Post author:
  • Post category:java


77525f3d3acb6d517e6486851f63052f.png

我们在进行Java编程的时候,使用最频繁的数据类型基本上就是int型了。平时在使用这种数据类型的过程中,我们似乎也并没有感觉到有什么太多需要注意的地方,其实int类型的变量在使用过程中也会有一些隐藏很深的坑,我们通过一篇短文来了解一下。

首先我们先来明确一下Java虚拟机在对int型数据进行处理时默认的两条规则

1. 当程序出现“整型常量”的时候,默认都是以int型存储的

2. 如果算术表达式中出现的所有的数字都是int型的,默认运算结果也是int类型

了解了这两条基本规则之后,我们接着往下看。在程序编译过程中,编译器只对“直接出现”的int常量进行数据超范围检查,而对“运算产生的int型值”并不进行超范围检查。这句话是什么意思呢?我们来看下面的代码

44fa521e38424b0ebea2c2328b3863c2.png

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