日期:2014-05-20 浏览次数:20803 次
package mytest;
public final class TestAutoBoxing {
public strictfp static void main( String... args ) {
long t;
t = System.nanoTime();
Long sum1 = 0L; // change to long will get 10 times performance!!!
for( int i = 0; i < Integer.MAX_VALUE; ++i ) sum1 += i;
System.out.println( System.nanoTime() - t );
System.out.println( sum1 );
t = System.nanoTime();
long sum2 = 0L; // change to long will get 10 times performance!!!
for( int i = 0; i < Integer.MAX_VALUE; ++i ) sum2 += i;
System.out.println( System.nanoTime() - t );
System.out.println( sum2 );
}
}
Compiled from "TestAutoBoxing.java"
public final class mytest.TestAutoBoxing extends java.lang.Object{
public mytest.TestAutoBoxing();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return
public static strictfp void main(java.lang.String[]);
Code:
0: invokestatic #2; //Method java/lang/System.nanoTime:()J
3: lstore_1
4: lconst_0
5: lstore_3
6: iconst_0
7: istore 5
9: iload 5
11: ldc #3; //int 2147483647
13: if_icmpge 28
16: lload_3
17: iload 5
19: i2l
20: ladd
21: lstore_3
22: iinc 5, 1
25: goto 9
28: getstatic #4; //Field java/lang/System.out:Ljava/io/PrintStream;
31: invokestatic #2; //Method java/lang/System.nanoTime:()J
34: lload_1
35: lsub
36: invokevirtual #5; //Method java/io/PrintStream.println:(J)V
39: getstatic #4; //Field java/lang/System.out:Ljava/io/PrintStream;
42: lload_3
43: invokevirtual #5; //Method java/io/PrintStream.println:(J)V
46: return
}
long sum3 = 0;
for(int i = 1;i<=15;i++)
{
sum3 += Integer.MAX_VALUE - i;
}
------解决方案--------------------
我的没有问题,运算比的慢了些
22166703271
2305843005992468481
2957734366
2305843005992468481
------解决方案--------------------
没有任何问题啊
------解决方案--------------------
没问题
估计是版本的问题?