Musimy cały czas budować ciągi dla danych wyjściowych dziennika i tak dalej. W wersjach JDK nauczyliśmy się, kiedy używać StringBuffer
(wiele dodatków, bezpieczny wątek) i StringBuilder
(wiele dodatków, nie bezpieczny wątek).
Jaka jest rada na temat korzystania String.format()
? Czy jest wydajny, czy też jesteśmy zmuszeni trzymać się konkatenacji dla jedno-liniowych, w których wydajność jest ważna?
np. brzydki stary styl,
String s = "What do you get if you multiply " + varSix + " by " + varNine + "?";
vs. schludny nowy styl (String.format, który jest prawdopodobnie wolniejszy),
String s = String.format("What do you get if you multiply %d by %d?", varSix, varNine);
Uwaga: moim szczególnym przypadkiem użycia są setki ciągów dziennika „jeden wiersz” w całym kodzie. Nie wymagają pętli, więc StringBuilder
jest zbyt ciężki. Interesuje mnie String.format()
konkretnie.