abstract class Bench{
abstract void bench(); public final long repeat(int count)
{
long start=System.currentTimeMillis();
for(int i=0;i<count;i++)
bench();
return (System.currentTimeMillis()-start);
}
}class MethodBench extends Bench{
void bench(){}
public static void main(String[] args)
{
int count=Integer.parseInt(args[0]);
long time=new MethodBench().repeat(count);
System.out.println(count+"methods in"+time+"milliseconds");
}
}运行:
javac Bench.java
javac MethodBench.java
java MethodBench 1("1"是数字)
系统输出:1methods in0milliseconds是对的.args[0]表示运行此class的第一个参数
运行:java MethodBench 12345
12345methods in0milliseconds
应该打印出的是:1methods in0milliseconds
这是怎么回事?
而且当我运行java MethodBench l("l"是字母)
系统会出现错误提示.这有是为什么?
abstract void bench(); public final long repeat(int count)
{
long start=System.currentTimeMillis();
for(int i=0;i<count;i++)
bench();
return (System.currentTimeMillis()-start);
}
}class MethodBench extends Bench{
void bench(){}
public static void main(String[] args)
{
int count=Integer.parseInt(args[0]);
long time=new MethodBench().repeat(count);
System.out.println(count+"methods in"+time+"milliseconds");
}
}运行:
javac Bench.java
javac MethodBench.java
java MethodBench 1("1"是数字)
系统输出:1methods in0milliseconds是对的.args[0]表示运行此class的第一个参数
运行:java MethodBench 12345
12345methods in0milliseconds
应该打印出的是:1methods in0milliseconds
这是怎么回事?
而且当我运行java MethodBench l("l"是字母)
系统会出现错误提示.这有是为什么?
可你的程序里int count=Integer.parseInt(args[0]);
类型转换异常.
count = 12345
+ "methods in" + 0 + "milliseconds" =12345methods in0milliseconds
运行:java MethodBench 12345
12345methods in0milliseconds
应该打印出的是:1methods in0milliseconds
这是怎么回事?为什么是1methods in0milliseconds呢,你输入的参数args[0]的值是12345啊
在程序运行后通过int count=Integer.parseInt(args[0]);把字符串12345转换得到的count就是12345啊而且当我运行java MethodBench l("l"是字母)
你输入字母,而Integer.parseInt(args[0]);得到的是int型,怎么能不错呢