foo*_*ter 6 java memory string string-formatting immutability
由于Java中的字符串是不可变的,我总是使用StringBuilder或StringBuffer来连接字符串.String.format()方法是否处理此问题以及StringBuilder或StringBuffer?换句话说,String.format()管理内存以及StringBuffer或StringBuilder吗?
根据 Oracle JDK 的源代码,该实现似乎Formatter为每个String#format调用创建一个新的,进而StringBuilder为每个调用分配一个新的。所以是的。但正如对您的问题的评论所提到的,这在很大程度上是特定于实现的,尽管常识表明它将选择最有效的做事方式。