Wowww! Nice catch Otávio! That is really a good improvement!
Em seg, 26 de nov de 2018 às 10:47, Otávio Gonçalves de Santana < osant...@tomitribe.com> escreveu: > The reason to prefer StringBuilder is that both + and concat create a new > object every time you call them (provided the right-hand side argument is > not empty). This can quickly add up to a lot of objects, almost all of > which are completely unnecessary. > > public class Main{ > public static void main(String[] args) > { > long now = System.currentTimeMillis(); > slow(); > System.out.println("slow elapsed " + > (System.currentTimeMillis() - now) + " ms"); > > now = System.currentTimeMillis(); > fast(); > System.out.println("fast elapsed " + > (System.currentTimeMillis() - now) + " ms"); > } > > private static void fast() > { > StringBuilder s = new StringBuilder(); > for(int i=0;i<100000;i++) > s.append("*"); > } > > private static void slow() > { > String s = ""; > for(int i=0;i<100000;i++) > s+="*"; > } > } > > > - slow elapsed 11741 ms > - fast elapsed 7 ms > > Also, this PR avoids unnecessary call in StringBuilder > Ref: https://github.com/apache/tomee/pull/219 > -- Daniel "soro" Cunha https://twitter.com/dvlc_