String StrigBuffer StringBuilder 浅解
1.String是最基本的字符串类,用于表示字符串。
特点:对象内容不可变,但可以通过指向不同的对象来“表示”不同的内容。
使用场景:如果不涉及到内容改变,可以使用String。
注意:如果想将String作为输出型参数,抱歉,做不到。 方法返回后,内容还是没有赋上值。具体原因就得追究到内存原理上了。此处不再叙述。
2.StringBuffer:针对String要改变内容必须指向别的对象的缺陷而设计,StringBuffer可以直接改变其内容,不需要指向别的对象。
特点:内容可改变(通过append/insert等方法); 线程安全。
使用场景:字符串内容需要不断进行改变的地方,比如不断重组,且需要保证线程安全。
3.StringBuilder:同StringBuffer。
与StringBuffer区别在于:StringBuffer是线程安全的,而StringBuilder是线程不安全的。但效率上来说,StringBuilder比StringBuffer高。
使用场景:字符串内容需要不断进行改变的地方,比如不断重组,且就是在单线程中使用,不涉及到线程安全。
综上可知,实际中的场景应该是使用String和StringBuilder比较多。