【发布时间】:2012-01-14 07:23:22
【问题描述】:
让我们观察以下 Java 代码段,它在 for 循环中使用了 System.currentTimeMillis()。
package loops;
final public class Main
{
public static void main(String... args)
{
final long MAX_VAL=Long.MAX_VALUE;
final long CURRENT_MILLIS=System.currentTimeMillis();
System.out.println("MAX_VAL = "+MAX_VAL);
System.out.println("CURRENT_MILLIS = "+CURRENT_MILLIS);
for(long time = 0; time < CURRENT_MILLIS; time++)
{
System.out.println("inside for = "+time);
}
}
}
在上面的代码中,final long 类型变量CURRENT_MILLIS 保存了系统维护的当前毫秒数,它始终小于(MAX_VAL) 通过for 循环在Java 中long 数据类型的大小陷入无限循环。怎么样?
【问题讨论】:
-
这不是一个无限循环,而是一个有数十亿次迭代的循环。只是需要很长时间才能完成。这个问题的意义何在?
-
这个问题没有意义,只是好奇。
标签: java halting-problem