1.String是最基本的字符串类,用于表示字符串。

特点:对象内容不可变,但可以通过指向不同的对象来“表示”不同的内容。

使用场景:如果不涉及到内容改变,可以使用String。

注意:如果想将String作为输出型参数,抱歉,做不到。 方法返回后,内容还是没有赋上值。具体原因就得追究到内存原理上了。此处不再叙述。

2.StringBuffer:针对String要改变内容必须指向别的对象的缺陷而设计,StringBuffer可以直接改变其内容,不需要指向别的对象。

特点:内容可改变(通过append/insert等方法); 线程安全。

使用场景:字符串内容需要不断进行改变的地方,比如不断重组,且需要保证线程安全。

3.StringBuilder:同StringBuffer。

与StringBuffer区别在于:StringBuffer是线程安全的,而StringBuilder是线程不安全的。但效率上来说,StringBuilder比StringBuffer高。

使用场景:字符串内容需要不断进行改变的地方,比如不断重组,且就是在单线程中使用,不涉及到线程安全。

综上可知,实际中的场景应该是使用String和StringBuilder比较多。

最新文章

  1. JQuery的ajax
  2. C语言链表中数组实现数据选择排序,升序、降序功能主要难点
  3. JavaScript中经典方法
  4. 使用eclipse与jLink V8调试exynos 4412 u-boot
  5. unity3d引擎程序员养成
  6. Cannot Create Supplier Site (Address) (文档 ID 1069032.1)
  7. centos6.4下没有heartbeat包解决办法
  8. CSS,注意点!!!!!!!
  9. VUE 源码学习01 源码入口
  10. jquery通过数值改变球大小
  11. lesson - 10 shell 基础知识
  12. Winform下去除MDI窗体边框
  13. javascript面向对象精要第一章原始类型和引用类型整理精要
  14. 读书--编写高质量代码 改善C#程序的157个建议2
  15. MySQL介绍及安装(一)
  16. python 四种单例模式
  17. cf1060E. Sergey and Subway(树形dp)
  18. bzoj 1880 最短路径图
  19. java反射 - getXXX 与 getDeclaredXXX
  20. yield* 表达式

热门文章

  1. 6.hdfs的存储过程
  2. codeforces 303C. Minimum Modular(数论+暴力+剪枝+贪心)
  3. 《梦断代码Dreaming In Code》阅读笔记(二)
  4. 利用SqlServer的作业定时清除过期数据
  5. css3边框阴影效果
  6. 使用source创建一个新项目(将本地项目文件和github远程库链接)
  7. SQL SERVER技术内幕之4 子查询
  8. Kafka性能之道
  9. [OS] CPU调度
  10. 【Python】安装python包时遇到"error: Microsoft Visual C++ 9.0 is required"的简答