Java面试题:求满足x == -x结果为true的22个x的可能值
Java 中满足
x == -x 为 true 的22个取值汇总 以下取值全部符合Java语法规范和运算规则,可直接编码验证:
基本类型取值(共11个)
整数相关(7个)
- 基本类型int:
0 - 基本类型long:
0L - 基本类型short:
(short) 0 - 基本类型byte:
(byte) 0 - 基本类型char:
(char) 0(即字符'\u0000') - 基本类型int:
Integer.MIN_VALUE(int最小值-2147483648,补码溢出取反后等于自身) - 基本类型long:
Long.MIN_VALUE(long最小值-9223372036854775808,补码溢出取反后等于自身)
浮点数相关(4个)
- 基本类型float:
0.0f(正浮点数零) - 基本类型float:
-0.0f(负浮点数零,Java规范规定正负浮点数零==判断为true) - 基本类型double:
0.0d(正双精度零) - 基本类型double:
-0.0d(负双精度零)
包装类型取值(共11个)
整数包装类相关(7个)
Integer.valueOf(0)Long.valueOf(0L)Short.valueOf((short) 0)Byte.valueOf((byte) 0)Character.valueOf((char) 0)Integer.valueOf(Integer.MIN_VALUE)Long.valueOf(Long.MIN_VALUE)
浮点数包装类相关(4个)
Float.valueOf(0.0f)Float.valueOf(-0.0f)Double.valueOf(0.0d)Double.valueOf(-0.0d)
规则说明:包装类型参与负号运算时会触发自动拆箱,实际比较的是拆箱后的基本类型数值,因此上述包装类对象全部满足
x == -x的判断条件。
内容的提问来源于stack exchange,提问作者Kakashi
相关产品推荐
相关产品推荐

