string

String 字符串常量(final修饰,不可被继承,线程不安全),String是常量,当创建之后即不能更改,可以给多个引用共享,在做大量字符串拼接的时候效率低。(可以通过StringBuffer和StringBuilder创建String对象(常用的两个字符串操作类)。)

StringBuffer、StringBuilder

可以改变字符串的长度和内容,是一个字符串缓冲区,在做大量字符串拼接的时候不会开辟新的空间。

StringBuffer 字符串变量(线程安全,效率低)

其也是final类别的,不允许被继承,其中的绝大多数方法都进行了同步处理,包括常用的Append方法也做了同步处理(synchronized修饰)。其自jdk1.0起就已经出现。其toString方法会进行对象缓存,以减少元素复制开销。

public synchronized String toString() {
if (toStringCache == null) {
toStringCache = Arrays.copyOfRange(value, 0, count);
}
return new String(toStringCache, true);
}
1
2
3
4
5
6
StringBuilder 字符串变量(非线程安全,效率高)

其自jdk1.5起开始出现。与StringBuffer一样都继承和实现了同样的接口和类,方法除了没使用synch修饰以外基本一致,不同之处在于最后toString的时候,会直接返回一个新对象。

public String toString() {
// Create a copy, don’t share the array
return new String(value, 0, count);
}
1
2
3
4

---------------------

最新文章

  1. jqueyr获取动态创建的元素
  2. c++中的指针
  3. 通过指定函数/方法形参类型提高PHP代码可靠性
  4. mui slider 改变默认index
  5. [Unity2D]游戏引擎介绍
  6. hiho_1044 状态压缩
  7. MYSQL数据库重点:事务与锁机制
  8. ubuntu14.04+opencv 3.0+python2.7安装及测试
  9. supervisor 部署文档
  10. Qt Windows下链接子系统与入口函数(终结版)(可同时存在main和WinMain函数)
  11. SQL中on条件与where条件的区别(转载)
  12. 高性能MySQL之【第十五章 备份与恢复】学习记录
  13. Android通过WebService实现图片的上传和下载(一)
  14. Leetcode_114_Flatten Binary Tree to Linked List
  15. 2、前端学习笔记之——css
  16. 学习django就看这本书了!django book 2.0中文版
  17. Java探针
  18. python小结 1
  19. 【翻唱】Keep On Fighting
  20. Extjs 文件上传

热门文章

  1. [信息学奥赛一本通oj1741]电子速度 题解
  2. linux 命令参数列表过长以及find用法
  3. "New page after" by code
  4. USACO 5.3 章节
  5. cpupower:Shows and sets processor power related values
  6. think PHP提取字符串中的数字,并到数据库中使用in查询所关联表的字段值
  7. js的浏览器判断方法
  8. 年度重大升级,IntelliJ IDEA 2019.2 稳定版发布
  9. leetcode.排序.451根据字符出现频率排序-Java
  10. <每日一题>题目4:for循环套生成器的面试题