一个奇妙的java坑:Long 类型的比较
2018-03-08 14:21
239 查看
本文转自:http://www.cnblogs.com/weidiao/p/5468065.html
Long是引用类型,要比较两个Long的大小,一定要用equals而不能用==
但是,当Long为常量且常量值小于一个字节时,两个Long指向同一个常量内容;
当Long为常量且常量值大于一个字节时,两个Long指向不同的常量内容。
最后总结,引用比较一定要用equals而不要用==
这个问题有多重要,在此说明一下。
我跟同学上线了一个话题帖子交流系统app,帖子是不是转发的通过帖子的用户Id与帖子的作者Id进行判等。到了127号用户之后出问题了,用户自己发的帖子显示的却是转发的。
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号用户之后出问题了,用户自己发的帖子显示的却是转发的。
相关文章推荐
- 一个奇妙的java坑:Long 类型的比较
- 一个奇妙的java坑:Long 类型的比较
- 一个奇妙的java坑:Long 类型的比较
- java中Long类型数据必须转化为int才能正确比较
- Java中long类型与Long类型的区别和大小比较详解
- 1.00 【基础知识之基础类型】 JAVA中Long与Integer比较容易犯的错误
- java中Long类型数据必须转化为int才能正确比较
- java -UDP ---客户端向主机传输一个long类型字符
- Long类型比较的一个小问题
- java Long、Integer 、Double、Boolean类型 不能直接比较
- Java中的long类型和Long类型比较大小
- Java程序返回一个list类型而前台的的flex对其进行读取
- 关于数据类型Char(看了论坛的帖子后自己写的)——原来一个中文字在java中也是一个char
- 一个比较综合的Java语言基础试题
- 一个关于Java数据类型的有趣问题
- java如何访问Oracle的long类型?
- Java常用类型定义、转换及比较
- 转:把一个java web应用包装成桌面应用的简单做法(个人比较喜欢,想有空研究一下,特意转载,以备后用)
- java中数据类型转换 Integer String Long Float Double Date
- java中数据类型转换 Integer String Long Float Double Date