计时这个词语在生活中被应用的很普遍,比如,哥们,帮我计时一下在山的那边,海的那边,.........,这好像是一首歌的歌词,坏笑。跑过去需要多长时间?
体育竞赛时频繁出现的秒表,发令信号一经发出,秒表就在滴答滴答流转开始计时了,秒表此时的作用就是计时的代名词,在我们编写代码的时候,时不时也要统计一下执行一个方法或者一系列逻辑时所消耗的时间。
这时我们就用到了java常用的计时方式之一了,System.currentTime()方法在方法的前后计算时间差。配上代码的方式我们来看下。
Tips:左右滑动可以显示完整代码。
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
final long size = 1000000000;
long sum = 0;
for (int i = 0; i < size; i++) {
sum += i;
}
long endTime = System.currentTimeMillis();
System.out.println("统计计算0~1000000000相加的总和" + sum + "耗时时间为:" + (endTime - startTime) + "ms");
}
我们先分析这段代码涉及的内容吧,计算0到1000000000之间数字的总和,进行统计所消耗的时间,进行手动输出。
public static native long currentTimeMillis();
上面的方法使用native关键字进行标识,这不是一个java方法,而是一个本地方法,本地方法是运行在本地方法栈的。
想了解本地方法栈和java方法栈的内容可以先看下这两篇文章