最近在反編譯一段java代碼的時候,出現一個情況,凡是,字符串變量相加的代碼,反編譯的時候都是被優化了的代碼,比如:
“abc ”+"edf"+"xyz"反編譯后為 “abcedfzyz”。而 “sam”+new String(“tiger”)則變為:new StringBuilder().appen("sam").apperd("tiger").tostring
凡是字符串相加的代碼,都會被以上方式給優化了,但是在循環里用字符串相加的話,則會變成在循環體類,new Stringbuilder。
比如:String str;
for(int i=0;i<10;i++) str +=i; 則會變為: for(int i=0;i<10;i++) new StringBuilder(str).append(i).toString;