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)
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)
相关文章推荐
- Java多线程和String知识点< 2 >
- <转>String、StringBuffer与StringBuilder之间区别
- Java核心知识点-String、StringBuilder和StringBuffer的特点
- 牛客网Java刷题知识点之String、StringBuffer、StringBuilder和StringTokenizer
- java基础<String-StringBuffer-StringBuilder>
- Java String,StringBuilder和StringBuffer的区别 StringBuilder > StringBuffer> String
- <java——String、StringBuffer、StringBuilder>
- JAVA知识点总结(六)String、StringBuffer、StringBuilder
- java中String、StringBuffer、StringBuilder的区别
- Java中的String,StringBuilder,StringBuffer三者的区别
- java String、StringBuffer、StringBuilder总结
- java中int和integer,String,StringBuffer,StringBuilder的区别
- java List<Map<String,Object>遍历的方法
- 黑马程序员--JAVA<API>--String
- Java知识点<11> 静态代理和动态代理
- 【java面试题】StringBuilder与StringBuffer和String 的区别
- 探索JAVA之String、StringBuffer、StringBuilder的比较
- struts2的<s:iterator>标签 遇到的问题:java.lang.ClassCastException:cannot be cast to java.lang.String
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- Java String为什么是不可变类,StringBuffer与StringBuilder区别