相关疑难解决方法(0)

怎么能"while(i == i);" 在单线程应用程序中是一个非无限循环?

我刚才有一个我无法回答的问题.

假设您在Java中使用此循环定义:

while (i == i) ;
Run Code Online (Sandbox Code Playgroud)

如果循环不是无限循环并且程序只使用一个线程i,i那么类型和值什么?

java

141
推荐指数
6
解决办法
8297
查看次数

Java变量如何与自身不同?

我在网上表格上收到了这个测验,以申请我所在城市最近的Java活动:

//Instead of this comment what code should be written so you can get "Gotcha!" printed
if( a == a ){
  System.out.println("Not yet...");
} else {
  System.out.println("Gotcha!");
}
Run Code Online (Sandbox Code Playgroud)

AFAIK:==Java中对象的比较检查两个对象在内存中是否相同,并且覆盖该equals方法不会覆盖==运算符,如C++和其他允许运算符重载的语言

我试图a用Java中的以下功能来改变价值,但没有一个能让我得到我想要的东西:

  1. 瞬态变量
  2. 目标注释
  3. 垃圾收集器
  4. 可变对象

我该怎么做才能使a对象与自身不同?

java comparison

76
推荐指数
0
解决办法
3890
查看次数

为什么 Java 的 double/float Math.min() 是这样实现的?

我正在查看 的源代码中的一些内容java.lang.Math,我注意到 while Math.min(int, int)(或其长版本)是这样实现的:

public static int min(int a, int b) {
   return a <= b ? a : b;
}
Run Code Online (Sandbox Code Playgroud)

这对我来说完全有意义,这和我要做的一样。但是,双/浮点实现是这样的:

public static float min(float a, float b) {
   if (a != a) {
      return a;
   } else if (a == 0.0F && b == 0.0F && (long)Float.floatToRawIntBits(b) == negativeZeroFloatBits) {
      return b;
   } else {
      return a <= b ? a : b;
   }
}
Run Code Online (Sandbox Code Playgroud)

我完全傻眼了。相比a于自己?第二次检查是为了什么?为什么它的实现方式与 int/long 版本不同?

java floating-point

70
推荐指数
4
解决办法
5070
查看次数

while(i!= i){} - 是否可能有一个始终为真的赋值

最近我接受了一家软件公司的采访,在技术能力回合中询问了以下问题:

以这样的方式声明我,条件总是为真:

while(i != i) {
}
Run Code Online (Sandbox Code Playgroud)

在Java中技术上是否可以分配这种东西?

java variables variable-assignment while-loop

13
推荐指数
1
解决办法
1162
查看次数

在哪种情况下,"a!= a"可以返回"true"?

java.lang.Math #min(double,double):

public static double min(double a, double b) {
    if (a != a) return a; // a is NaN
    if (a == 0.0d && b == 0.0d && Double.doubleToLongBits(b) == negativeZeroDoubleBits) return b;
    return (a <= b) ? a : b;
}
Run Code Online (Sandbox Code Playgroud)

在哪种情况下可以a != a返回true?似乎a是NaN 的时候,但我无法想象一个例子.你能提供一个吗?

java numbers equality nan

4
推荐指数
1
解决办法
289
查看次数