x==-x(true)的22个可能值是什么?

最近在 Java 面试中问了这个问题。尝试并搜索了解决方案,但找不到。如果有人知道,请评论解决方案。这会很有帮助。

回答

数字基本类型中的零。Float 和 double 各有两个零。那是九个值。然后MIN_VALUE是 int 和 long。那是十一点。

所以:

int x = 0;
int x = Integer.MIN_VALUE;
long x = 0;
long x = Long.MIN_VALUE;
byte x = 0;
short x = 0;
char x = 0;
double x = 0.0;
double x = -0.0;
float x = 0f;
float x = -0f;

然后这些值中的每一个都包装为一个对象:

Integer x = 0;
Integer x = Integer.MIN_VALUE;
Long x = 0L;
Long x = Long.MIN_VALUE;
Byte x = 0;
Short x = 0;
Character x = 0;
Double x = 0.0;
Double x = -0.0;
Float x = 0f;
Float x = -0f;

总共22个。

(我不会将这些对象称为 more values。它们又是相同的 11 个值,但包含在对象中。但是如果您应该总共找到 22 个,我认为这一定是它。)

请注意,对于较小的整数类型,例如 short,执行-x会将它们扩展为 int,因此x==-x不适用于Short.MIN_VALUE.

x==-x 对于浮点零计算为真,因为即使正零和负零是不同的值,它们也被视为彼此相等。


以上是x==-x(true)的22个可能值是什么?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>