繁体   English   中英

Java中的时间生成

[英]Time Generation in Java

昨天我正在使用Java,并且编写了此应用程序。

public class MaxInt {

    public static void main(String[] args){
        long startTime = System.currentTimeMillis();
        long endTime;
        for(int i = 0; i < 2147483647; i++){
        }
        endTime = System.currentTimeMillis();

        long timeneeded = startTime - endTime;
        System.out.println("It took " + timeneeded + " milliseconds to count to 2,147,483,646.");
    }
}

但是,奇怪的是,循环完成后所需的时间等于-3,这对我完全没有意义。 我只是好奇这个程序为什么以及如何产生时间。

您应该使用:

long timeneeded = endTime - startTime;

正如您所期望的, endTime会更大:)

替换startTime - endTime; endTime- startTime ;

我为您整理了一些代码,也许将来会给您一些想法

   public static void main(String[] args) {
    long endTime;
    long startTime = System.currentTimeMillis();
    for (int i = Integer.MAX_VALUE; i > 0; i--) {}
    endTime = System.currentTimeMillis();
    long timeneeded = endTime - startTime;
    System.out.println(MessageFormat.format("It took {0} milliseconds to count to {1}.", timeneeded, Integer.MAX_VALUE));
    }

另外,您没有计算到2,147,483,646,而您正在计算到2,147,483,647。 请记住,在for循环中,您将要计数的第一个数字设为0,因此您无需添加额外的数字。 倒数也更有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM