您的位置:首页 > 产品设计 > UI/UE

String、StringBuffer、StringBuilder之间的区别-整理中

2015-06-10 23:37 411 查看
1.在字符串拼接的效率上。

StringBuilder > StringBuffer > String

原因:

StringBuilder类进行字符串拼接是线程不安全的,没有限制,一般用在方法内部使用,可用于单线程。

StringBuffer类进行字符串拼接是线程安全的,一般用在方法外部对类属性进行操作,上面俩个类方法都基本一样,拼接字符串只使用原来的对象,不会创建新的对象,可用于多线程。

String类进行字符串拼接会重新创建新对象,新对象是原对象和拼接对象的组合。String创建对象引用是在栈上,实际的字符放在堆内存上。其实字符串有个很重要的特性,那就是字符串常量。笔者认为JDK设计者设计String主要是做这个用处,而不是用于字符串的拼接。系统中的静态常量就是很好的说明,设计者始终相信一个字符串的重用比让一个字符串拼接要频繁。在JAVA中如果是通过“+”和new出的字符串对象,都是不会共享,因为这些对象的值是放在堆上,引用是放在栈上,只有在栈和常量池上的数据才能够共享,字符串常量和基本类型数据常量都存放在常量池中。

明天继续。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: