Based on the Oracle JDK source code, it seems that the implementation creates a new Formatter for each String#format call, which in turn allocates a fresh StringBuilder for each call. So yes. But, as mentioned in the commentary on your question, this is a very concrete implementation, although common sense suggests that he will choose the most efficient way to do things.
source share