MENU

Java整型128陷阱

December 11, 2019 • Read: 644 • 编程之路,Java

先看一段程序的运行结果

现象

  • a=127 b=127时,二者==true
  • c=128 d=128时,二者==false

先说结论

  • int数值范围为-128 ~ 127时,会被封装为IntegerCache类型
  • int数值范围在-128 ~ 127之外时,会被封装为Integer类型

解释:

[scode type="share"]Java的自动封装机制[/scode]

int类型赋值给Integer类型的变量,内部会自动执行Integer.valueOf(),从而把int转换成Integer,查看其源码就可以得出上述结论。
附源码:

- - - 结束 - - -
  • 文章标题:Java整型128陷阱
  • 文章链接:https://blog.canye365.cn/archives/91.html
  • 版权所有:本文版权归 残夜 所有,转载请注明出处!除特殊注明外 (如有侵权,请 点此联系我 )
  • Last Modified: January 17, 2020