[英]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.