(接上文)

3、String、StringBuffer 与StringBuilder

String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)

看一个栗子:

用字符数组value创建一个String对象   private final String(char[] value);

1 char[] value = {"a","b","c","d"};

2 String str4 = new String(value);//相当于String str4 = new String("abcd");

字符串的本质是字符数组,因为有final修饰,所以String类的对象是不可改变的。所以每次修改String对象的值时,实际上是生成了一个新的对象,而指针指向了新的String对象;所以经常改变内容的字符串最好不要用 String ,因为只要改变就会变成新的对象,创建对象的过程是很消耗性能的,每次生成对象都会对系统性能产生影响。

StringBuffer:如果是使用 StringBuffer 类则结果就不一样了,每次结果都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,再改变对象引用。 字符串对象经常改变的情况下推荐使用 StringBuffer类。String的大多数方法StringBuffer都可以使用,除此之外还增加了String没有的插入和删除字符串的方法。

StringBuffer buf=new StringBuffer("abc");

String s1=buf.toString(); //转换为String类

buf.append("abc");    //在字符串后面追加abc ,相当于String中 +“abc”

buf.insert(0,"abc");   //在开头位置插入abc

buf.delete(0,5)      //删除下标从0到5且不包含5的字符

buf.setCharAt(1,’D’);    //则对象buf的值将变成”aDc”

StringBuilder  被设计用作 StringBuffer 的一个简易替换,两者的方法基本相同,由于没有对方法进行加同步锁,所以它是非线程安全的。但在字符串缓冲区被单个线程使用的时候,处理的效率更高。

String、StringBuffer 与StringBuilder相关推荐

  1. String,StringBuffer与StringBuilder的区别

    String,StringBuffer与StringBuilder的区别 String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全 ...

  2. Java中String StringBuffer和StringBuilder的区别是什么

    String StringBuffer 和 StringBuilder 的区别是什么?String 为什么是不可变的? 可变性 简单的来说:String 类中使用 final 关键字修饰字符数组来保存 ...

  3. String,StringBuffer与StringBuilder的区别??

    2019独角兽企业重金招聘Python工程师标准>>> String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全 ...

  4. String,StringBuffer和StringBuilder的区别

    一.可变性 不同于String类的不可变性,StringBuffer和StringBuilder都继承了抽象类AbstractStringBuilder,这个类用一个char数组来存储value. a ...

  5. String,StringBuffer和StringBuilder区别?

    String是字符串常量,final修饰;StringBuffer字符串变量(线程安全);StringBuilder 字符串变量(线程不安全).此外StringBuilder和StringBuffer ...

  6. String,StringBuffer与StringBuilder的区别?

    http://blog.csdn.net/rmn190/article/details/1492013 String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuil ...

  7. String,StringBuffer与StringBuilder的区别以及String为什么是不可变的?

    String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要 ...

  8. String StringBuffer 和 StringBuilder 的区别是什么?

    可变性: String类中使用了关键词final来修饰字符数组来保存字符串,private final char value[],所以String对象是不可变的:而StringBuffer与Strin ...

  9. String,StringBuffer与StringBuilder

    (1)如果要操作少量的数据用 String:  (2)多线程操作字符串缓冲区下操作大量数据 StringBuffer:  (3)单线程操作字符串缓冲区下操作大量数据 StringBuilder. st ...

  10. String, StringBuffer, and StringBuilder

    1.String String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁. ​ 再次给a赋值时,并不是对原来堆中实例对象进行重新赋值 ...

最新文章

  1. NeurIPS 2019揭榜!华人作者贡献42%,谷歌170篇屠榜;国内清华第一,腾讯领衔产业界(附链接)...
  2. 为什么你应该深入Github
  3. IE6-IE9兼容性问题列表及解决办法_补遗漏之一:button的type默认值改变为submit了。...
  4. WebView显示的网页在大分辨率屏下被放大--解决方案
  5. winxp升级win7教程_WinXP桌面右下角提示网络电脑没有插好的原因及解决方法教程一览-...
  6. unet 层_UNet解释及Python实现
  7. learning ddr pagesize calculate
  8. 1030 完美数列 (25 分)(c语言)
  9. Windows 10系统安装JDK1.8与配置环境
  10. 2015.7.11js-10(无缝滚动)
  11. java codepointbefore_Java StringBuilder codePointBefore()方法与示例
  12. 前端radio单选框默认选中_「radio选中」单选框radio总结(获取值、设置默认选中值、样式) - seo实验室...
  13. 宏观经济学gdp计算方法_宏观经济学考研的重要考点
  14. 百度地图Key的设置方法
  15. 结对-结对编项目作业名称-测试过程
  16. 奶茶店收银系统php版,奶茶店收银系统
  17. crispr基因编辑_用CRISPR编程基因组
  18. 在项目中后端开发所需要掌握的前端知识
  19. python小练习(杂七杂八)
  20. 数据库------绪论+关系数据库及其运算基础

热门文章

  1. 【推荐】互联网或技术多平台,一文多发小工具!
  2. python numpy和pandas做数据分析时去掉科学记数法显示
  3. jqAutoComplete 和 knockout
  4. swift-自定义Alert
  5. Extjs 学习总结-Ext.define自定义类
  6. 《Cocos2d-JS开发之旅》重印在即,感谢大家的支持
  7. ios虚拟机安装(二)
  8. 基本排序算法之1——希尔排序shellsort
  9. 图解 TCP IP 协议:三次握手、四次挥手
  10. zend studio 免注册无限试用