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