zoukankan      html  css  js  c++  java
  • 一个奇妙的java坑:Long 类型的比较

            Long userId=127L;
            Long authorId=127L; 
            System.out.println(userId==authorId);//true
            userId=128L;
            authorId=128L;
            System.out.println(userId==authorId);//false
            Long x=new Long(127);
            Long y=new Long(127);
            System.out.println(x==y);//false
            System.out.println(x.equals(y));//true

    Long是引用类型,要比较两个Long的大小,一定要用equals而不能用==

    但是,当Long为常量且常量值小于一个字节时,两个Long指向同一个常量内容;

    当Long为常量且常量值大于一个字节时,两个Long指向不同的常量内容。

    最后总结,引用比较一定要用equals而不要用==

    这个问题有多重要,在此说明一下。

    我跟同学上线了一个话题帖子交流系统app,帖子是不是转发的通过帖子的用户Id与帖子的作者Id进行判等。到了127号用户之后出问题了,用户自己发的帖子显示的却是转发的。

  • 相关阅读:
    HTTP——Web服务器、代理、缓存
    nginx配置文件详解2
    nginx配置文件详解
    shell笔记2
    django笔记
    python 发请求,urllib,urllib2
    nginx配置
    python os模块学习
    mac 终端命令小结
    mac常用命令笔记
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/5468065.html
Copyright © 2011-2022 走看看