int、Integer、double、Double 用 == 比较的差异
在 Java 中,使用 == 运算符比较基本数据类型(int、double 等)和包装类(如 Integer、Double)存在一些令人困惑的地方。
基本数据类型
- int a = 10 和 double c = 10 存储的是原始值,它们被视为二进制表示,因此可以直接比较。因此,a == c 是 true。
包装类
立即学习“Java免费学习笔记(深入)”;
- Double b = 10.0 和 Double d = 10.0 存储的是引用变量,它们指向着包含原始值的堆中的对象。当使用 == 比较时,比较的是对象引用,即内存地址。因此,b == d 是 false。
编译器错误
- Integer e = 10 和 Double b = 10.0 使用 == 比较时编译出错,这是因为 Integer 是一种对象,而 Double 也是一种对象,它们是不同的类型,不能直接相互比较。
总结
要正确比较基本数据类型和包装类,需要考虑它们在内存中的表示形式和比较的类型。对于基本数据类型,使用 == 比较它们的原始值,而对于包装类,需要先明确比较的是对象引用还是原始值。
以上就是Java 中,int、Integer、double、Double 用 == 比较时需要注意什么?的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系 yyfuon@163.com