【原创】谈谈String、StringBuffer、StringBuilder
论坛不支持表格,下面的内容先想办法记住吧StringBuffer【JDK1.0开始支持】【线程安全,适用于单/多线程】【性能稍低】
StringBuilder【JDK1.5开始支持】【线程不安全,仅适用于单线程】【性能略高】
先说说String吧,最常用,但是在对字符串进行大量操作时【比如 + 操作】,性能最低
而从JDK1.0就开始支持的StringBuffer,是“可变的”动态字符串数组,在进行串接(append)操作时,天生就比String性能高出很多
【有些时候会比String高出20倍的性能,具体示例代码可以百度搜索一下】
但是由于StringBuffer是线程安全的,所以在单线程的代码段中,还是没能把性能发挥到极致
在JDK1.5开发时,由于之前的Java的性能一直被诟病;如何让Java的运行性能逼近C/C++,是开发JDK的人员所面对的最大的挑战
所以为了达到单线程下最高的运行性能,StringBuilder就应运而生了【有些时候会比StringBuffer高1.5倍的性能】
了解了之后,就会得出结论:
没有谁好谁不好的问题,而是什么情况下应该用什么的问题