gpt4 book ai didi

java - 为什么这段 Java 代码不打印 Long 值?

转载 作者:行者123 更新时间:2023-12-01 17:34:27 27 4
gpt4 key购买 nike

我编写了一个简单的秒表类,如下所示。

public class StopWatch 
{
private long startTime;
private long stopTime;
private boolean isRunning;


public void Start()
{
this.startTime=System.currentTimeMillis();
this.isRunning=true;

}

public void Stop()
{
this.stopTime=System.currentTimeMillis();
this.isRunning=false;

}


public long timeElapsed()
{
if(isRunning)
{
return ((System.currentTimeMillis()-startTime));

}
else
{
return ((stopTime-startTime));
}



}
public static void main(String[] args)
{
StopWatch s=new StopWatch();
try
{
s.Start();
int sum=0;
for( int i=0;i<=10;i++)
{

sum=sum+i;

}
s.Stop();
long timetaken=s.timeElapsed();
System.out.println(timetaken);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}




}

如果我在停止时间上加上 +100L,那么我得到的答案为 100。出于某种原因,开始时间和停止时间具有相同的值,并且减法为 0。不确定为什么会发生这种情况。

我还设置了 100000 作为循环计数器,即使这样也给了我 0。在复制粘贴代码时,for 循环中的值是 10。

使用纳秒,它工作正常,我试图检查 Java 中自动装箱带来的性能问题。

最佳答案

for( int i=0;i<=10;i++) {  sum=sum+i;    } 

上述代码的执行时间不到一毫秒。尝试使用System.nanoTime()

关于java - 为什么这段 Java 代码不打印 Long 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7873281/

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