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

Java知识点<5> String , StringBuilder , StringBuffer

2018-03-10 11:06 537 查看
String 是不可变类,也就是说,String对象一旦被创建,就不能被修改。当创建一个String对象之后,String的值会保存在内存里,当同样内容的对象被创建时,不会在进行值的创建,新创建的对象直接指向已经存在的String值。如果用String进行字符串操作,会产生很多的字符串对象,而且很多会是无效的对象,而这些对象是在常量区的,不会被回收(回收的区域主要是内存的 堆),所以效率很低 。
StringBuffer是可变类,并且封装了一些修改字符串的方法,比如常用的append,insert,replace等方法。同时Stringbuffer是线程安全的,基本上方法都是synchorinized ,所以多线程的时候使用比较安全。扩容:int newCapacity = value.length * 2 + 2;
StringBuilder同样是封装了很多String相关的操作,但是相对于Stringbuffer来说,它不是线程安全的,常用在单线程操作中。因为方法中并没有synchorinized,所以执行效率上,相对较高一点。Stringbuilder扩容:(newCapacity = value.length * 2 + 2)
public StringBuilder append(StringBuffer sb) 

 public synchronized StringBuffer append(StringBuffer sb) 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: