博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 中包装类型的比较注意事项
阅读量:4220 次
发布时间:2019-05-26

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

Integer不能用比较等号==进行判断
1)示例1:
Integer a = 127;Integer b = 127;if (a == b) {    log.info("a == b");} else {    log.info("a != b");}
输出:
a == b
2)示例2:
Integer a = 128;Integer b = 128;if (a == b) {    log.info("a == b");} else {    log.info("a != b");}
输出:
a != b
分析:
当我们用等号==进行比较时,小于等于127的数,可以正确的获取比较结果,但是大于127则比较结果是错误的。
推荐写法(用equals方法):
Integer a = 128;Integer b = 128;if (a.equals(b)) {    log.info("a == b");} else {    log.info("a != b");}
输出:
a == b
分析:
查看equals源码可知道,equals会只比较int的值
public boolean equals(Object obj) {    if (obj instanceof Integer) {        return value == ((Integer)obj).intValue();    }    return false;}
总结:
Java中包装类型比如:Integer、Long等也是对象,不能通过==直接比较,会出现莫名其妙的问题,
推荐都用equals方法进行比较

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

你可能感兴趣的文章
Spark Shuffle及其调优
查看>>
数据仓库分层
查看>>
常见数据结构-TrieTree/线段树/TreeSet
查看>>
Hive数据倾斜
查看>>
TopK问题
查看>>
HQL排查数据倾斜
查看>>
DAG以及任务调度
查看>>
LeetCode——DFS
查看>>
MapReduce Task数目划分
查看>>
3126 Prime Path
查看>>
app自动化测试---ADBInterface驱动安装失败问题:
查看>>
九度OJ 1091:棋盘游戏 (DP、BFS、DFS、剪枝)
查看>>
c++使用宏检测类是否包含某个函数或者变量属性
查看>>
CSS之Multi-columns的column-gap和column-rule
查看>>
CSS之Multi-columns的跨列
查看>>
CSS之浮动(一)
查看>>
CSS之浮动(二)
查看>>
AtomicInteger源码解析
查看>>
CopyOnWriteArraySet源码学习
查看>>
Openfiler 配置 NFS 示例
查看>>