Java 计时器代码不工作
计时器Java代码不工作Java 计时器代码不工作,java,Java,计时器Java代码不工作 public interface IncDec { void increment(); void decrement(); } public class MyIncDec implements IncDec { private int x; public MyIncDec(int x) { this.x = x; } public void increment() { this.x++; } public void decrement() {
public interface IncDec
{
void increment();
void decrement();
}
public class MyIncDec implements IncDec
{
private int x;
public MyIncDec(int x) {
this.x = x;
}
public void increment() {
this.x++;
}
public void decrement() {
this.x--;
}
}
第1部分:实现一个类,该类可用于测量每次调用递增和递减方法所需的时间(在
毫秒)并打印出此信息。该类应该或多或少透明地适应IncDec接口的现有客户机
我的解决方案:
public class Test{
public static void main(String[] args){
MyIncDec mid = new MyIncDec(4);
long l1;
long l2;
l1 = Calendar.getInstance().getTimeInMillis();
mid.increment();
l2 = Calendar.getInstance().getTimeInMillis();
System.out.println(l2-l1);
}
}
我的解决方案给出的时间差为0。当我在调用'increment'后在n之前显示长值时,它们是相同的。为什么会这样
假设我必须为应用程序中的许多地方提供类似的东西(方法调用的计时)。一个想法是为所有不同的方法编写一个单独的计时器类。是否有人有其他优化的想法来更方便地获取计时?首先,您的时差为0,因为运行它可能需要不到1毫秒的时间。尝试在
increment
方法中添加线程。sleep(50)
,查看是否有更改
public void increment() {
try { Thread.sleep(50); } catch (InterruptedException e) { }
this.x++;
}
其次,你的家庭作业可能希望你在课堂上使用IncDec
接口计算你的时间。所以要考虑到这一点。一定要了解接口是什么,它们用于什么,更重要的是,它们是如何使用的
祝你好运
mid.increment()
。或者,测量时间以纳秒为单位我认为你的作业是建议你利用 我不会给出完整的解决方案,但这里有一个提示:
public class MyIncDecProxy implements IncDec{
MyIncDec incDec;
public MyIncDecProxy(int x){
//Initialise incDec
}
public void increment() {
// Wrap the method of incDec implementing your timer
}
public void decrement() {
//ditto
}
}
然后,您将使用MyIncDecProxy类而不是MyIncDec为什么您希望方法调用花费整整毫秒的时间
System.nanoTime
更精确,但没有那么精确。+1:关于如何提问家庭作业问题的一个很好的例子!:)到目前为止,你还没有接受任何问题的答案。你是新来的,所以也许你不知道这意味着什么。常见问题解答说:当您决定哪个答案对您最有帮助时,单击答案左侧的复选框大纲,将其标记为已接受的答案。这让其他人知道你的问题得到了很好的答案。这样做是有帮助的,因为它向其他人表明你从社区中获得了价值。(如果你不这样做,人们通常会礼貌地要求你回去接受更多问题的答案!)你为什么要删除这个问题?如果你想删除它,请删除它,但不要清空它。我再说一遍……如果你想删除这个问题,请删除它。但不要留下肤浅的问题。