博客
关于我
Integer 与int 赋值比较
阅读量:796 次
发布时间:2023-03-25

本文共 589 字,大约阅读时间需要 1 分钟。

Java中的Integer是引用类型,而int是值类型,这两者在内存中的存储方式和比较方式存在显著差异。以下是对这些差异的详细分析:

  • i01和i02的比较:i01是Integer类型,i02是int类型。在Java中,当比较引用类型和值类型时,引用类型会被自动拆箱为对应的值类型进行比较。因此,i01和i02的比较结果为true,因为它们都表示相同的整数值59。

  • i01和i03的比较:i01和i03都是Integer引用类型。由于i03是通过Integer.valueOf(59)创建的,这实际上是获取了一个已经存在的Integer对象(即i01)。因此,它们引用同一个Integer对象,地址相同,比较结果为true。

  • i03和i04的比较:i03和i04都是Integer引用类型,但i04是通过new操作符创建的新对象。因此,它们引用不同的Integer对象,地址不同,比较结果为false。

  • i02和i04的比较:i02是int类型,i04是Integer引用类型。在比较时,Java会将i04拆箱为int值59,与i02的值比较,因此结果为true。

  • 通过这些比较,可以看出Java在不同类型之间的比较中会自动进行拆箱操作,这确保了在不需要显式拆箱的情况下,可以正确地进行值比较。然而,这种自动拆箱的机制也可能在某些情况下引发问题,特别是当涉及到较大对象或多线程时。

    转载地址:http://lyhfk.baihongyu.com/

    你可能感兴趣的文章
    Nginx Location配置总结
    查看>>
    Nginx 反向代理解决跨域问题
    查看>>
    nginx 后端获取真实ip
    查看>>
    Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
    查看>>
    Nginx 我们必须知道的那些事
    查看>>
    oauth2-shiro 添加 redis 实现版本
    查看>>
    OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
    查看>>
    Objective-C实现A-Star算法(附完整源码)
    查看>>
    Objective-C实现atoi函数功能(附完整源码)
    查看>>
    Objective-C实现base64加密和base64解密算法(附完整源码)
    查看>>
    Objective-C实现base85 编码算法(附完整源码)
    查看>>
    Objective-C实现basic graphs基本图算法(附完整源码)
    查看>>
    Objective-C实现BCC校验计算(附完整源码)
    查看>>
    Objective-C实现bead sort珠排序算法(附完整源码)
    查看>>
    Objective-C实现BeadSort珠排序算法(附完整源码)
    查看>>
    Objective-C实现bellman-ford贝尔曼-福特算法(附完整源码)
    查看>>
    Objective-C实现bellman-ford贝尔曼-福特算法(附完整源码)
    查看>>
    Objective-C实现BellmanFord贝尔曼-福特算法(附完整源码)
    查看>>
    Objective-C实现BF算法 (附完整源码)
    查看>>
    Objective-C实现binary exponentiation二进制幂运算算法(附完整源码)
    查看>>