Integer 源码探寻

        Integer a = 2013;
        Integer b = 2013;
        if (a == b) {
            System.out.println("a==b");
        } else if (a.equals(b)) {
            System.out.println("a equals b");
        }

        Integer c = 24;
        Integer d = 24;
        if (c == d) {
            System.out.println("c==d");
        } else if (a.equals(b)) {
            System.out.println("c equals d");
        }

a equals b
c==d
  • Integer 的包装类,所以是引用类型,比较的是对象的地址值,所以走else;
  • 但是24为什么就==成立了呢, 因为 integer内部对-128到127进行了缓存直接取出的是同了一个对象;

参考文章 : https://my.oschina.net/jiutianniao/blog/400390

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 3,752评论 0 11
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,898评论 25 709
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,802评论 18 399
  • 今天6点前完成了任务,然后又要到8点,两个小时竟然没有要到微信,每个人都非常着急的匆匆走,也有可能是周五的原因,还...
    楠_8819阅读 189评论 0 0
  • 这几天跟我宝在一起,不仅没写简书,还严重打乱了她的读书,看论文,学英语的计划,但是我真的过得非常非常开心,她也是。...
    上天的XLG阅读 82评论 0 1