所以本质区别就是String进行拼接是必须走StringBuilder(或StringBuffer)这条路的,而每次拼接都要创建一个StringBuilder对象,一个String对象,每次拼接需要创建两个对象进行一万次拼接需要创建两万个对象,而大多时候可能过程中创建的StringBuilder对象和String对象都不会使用,即会被清理。(String常量池中对象的创建暂不谈,因为解决同一拼接需求的情况下两种拼接方式需要创建的StringTable中的对象数量相同,别说不同拼接需求嘞,这是个伪命题,别管它)而StringBuilder拼接,只需要创建一个StringBuilder对象,就可以进行一万次拼接,这种时候用StringBuilder是用String直接拼接的效率的n倍,即1(StringBuiledr):n(String直接拼接),所以如果只要n次拼接后最终结果,StringBuilder是最好的选择,如果需要每次拼接的结果,使用String直接拼接和StringBuilder进行拼接知识一个隐式创建了2乘n个对象,一个创建了1(StringBuilder)+n(String)个对象,所以还是StringBuiledr效率高,高一倍,即用时1(StringBuilder):2(String直接拼接),StringBuilder还是最好的选择。
所以以后遇到拼接就直接使用StringBuilder,是效率高,使用内存最小的方式了
(StringBuffer没讲暂不知)