gpt4 book ai didi

java 程序停止且没有错误

转载 作者:行者123 更新时间:2023-12-01 06:42:58 24 4
gpt4 key购买 nike

我有一个非常简单的程序,用于计算对 100000 个数字进行选择排序所需的时间。代码如下:

import java.util.Calendar;
import java.util.GregorianCalendar;

public class Stopwatch {

public static void main(String[] args) {
// Create a stopwatch
int howManyNumbers = 100000;
Integer[] numbers = new Integer[howManyNumbers];
for (int i = 0; i < numbers.length; i++) {
numbers[i] = (int)(100 * Math.random());
}
System.out.println("Array created");
StopWatching watch = new StopWatching();

System.out.println("Sorting started");
for (int i = 0; i < numbers.length; i++ ) {
for (int j = i; j < numbers.length; j++) {
if (numbers[j] < numbers[i]) {
int temp = numbers[i];
numbers[i] = numbers[j];
numbers[j] = temp;
}
}
}
System.out.print("Finished the sort");
watch.stop();
System.out.println();
System.out.println(watch.getElapsedTime());
for (int i = 0; i < numbers.length; i++) {
System.out.print(numbers[i]);
}

}

}

它运行,将“Array Created”和“Sorting Started”打印到控制台,持续一两秒,然后停止。没有错误或警告。不打印“完成排序”或类似的内容。它应该打印“完成排序”,然后从 watch.getElapsedTime() 返回耗时(StopWatching 类的对象,该对象有效,已在其他环境中进行了测试)。

任何人都可以指出我在这里做错了什么吗?

注意:watch.getElapsedTime() 的返回类型是 Long,它是从创建 watch 到调用 watch.stop() 方法(通过利用 GregorianCalendar 类)计算的时间(以毫秒为单位)。

附注我正在使用 Eclipse IDE

最佳答案

问题出在 Eclipse 的 GUI 控制台输出上。

代码

for (int i = 0; i < numbers.length; i++)    {
System.out.print(numbers[i]);
}

一行打印 100000 个数字。在操作系统控制台中使用 java 运行时,这没有问题。

但是在 Eclipse 中完成后,控制台只是关闭并删除任何以前的打印输出。

<小时/>

这是我第一次尝试分析:

我猜程序并没有停止,而是仍在运行。循环内部执行100000*100000次。

在 Eclipse 中,使用调试 View 查看程序是否已停止或仍在运行。

关于java 程序停止且没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33956727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com