- 756 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 22:26:07 ]
- jadで確認してみた。
String tmp = ""; for (int i=0; i<100; i++) { tmp = tmp + i; } すると、ループ内で毎回StringBuilderをtmpで作って、i入れて、toStringした 結果を、tmpに入れてる。 0 ldc <String ""> [16] 2 astore_1 [tmp] 3 iconst_0 4 istore_2 [i] 5 goto 30 8 new java.lang.StringBuilder [18] 11 dup 12 aload_1 [tmp] 13 invokestatic java.lang.String.valueOf(java.lang.Object) : java.lang.String [20] 16 invokespecial java.lang.StringBuilder(java.lang.String) [26] 19 iload_2 [i] 20 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [29] 23 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [33] 26 astore_1 [tmp] 27 iinc 2 1 [i] 30 iload_2 [i] 31 bipush 100 33 if_icmplt 8 最適化しないのね。
|

|