- 173 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 12:25:08 ]
- >>158
System.out.println("あ"+"い"); は、"あ" と "い" は定数でコンパイル時に値が確定するから、 コンパイル結果は "あい" と最適化されるんじゃないの? コンパイル時に値が確定されない文字変数は、+ でくっつけるようなソース書いても、 コンパイル時に .append() に変換されるんじゃないの? 例:↓みたいなソース public static void main(String[] args) { String foo = args[0]; String bar = args[1]; System.out.println(foo + bar); } というか ecj は知らんが jad でやったら、 System.out.println() の行は、 System.out.println((new StringBuilder()).append(s).append(s1).toString()); になった。 public static void main(String[] args) { String foo = "あ"; String bar = "い"; System.out.println(foo + bar); } も、↑と同様。 public static void main(String[] args) { System.out.println("あ" + "い"); } は、System.out.println("あい"); になった。
|

|