先看一段程序的运行结果

现象

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

先说结论

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

解释:

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

Last modification:January 17th, 2020 at 09:45 am
如果觉得我的文章对你有用,请随意赞赏~