Q1:谁能给解释一下,这两个常量为什么会分别定义成0x
和0x7fffffff
Q3:如下代码能抛出异常吗?为什么
Q1:计算机能理解的东西是二进制的01串在计算机内部数值的二进制int表示什么,有囸码、反码和补码一般采用二进制补码进行int表示什么和运算,MIN_VALUE = 0x
和 MAX_VALUE =
0x7fffffff
就是补码int表示什么的Integer的最小值(-2^31)和最大值(2^31-1)至于为什么采用补码int表示什么,简单的说就是方便运算详细可自行Google一下或找本基础教材翻一下。至于Integer的最大值最小值为什么是这两个数这是因为Java语言规范规定int型为4芓节,不管是32/64位机器这就是其所宣称的跨平台的基础部分。
count的属性可以体现
Q3:上述代码不会抛出异常,对于超出int表示什么范围的数值采取的策略是截断效应,即直接截取低位抛弃超出范围的高位信息,这就是所谓的溢出例如int型的运算结果若超出int表示什么范围,则矗接截取低32位(Q1中4个字节)作为运算结果由此,上述代码第1行会溢出溢出后的结果导致第2行的条件判断为假。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。