简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后,JVM 的 GC 就会开始工作,那速度是一定会相当慢的。这里尝试举个不是很恰当的例子: String S1 = “abc”;
For(int I = 0 ; I < 10000 ; I ++) // For 模拟程序的多次调用
{
S1 + = “def”;
S1 = “abc”;
}如果是这样的话,到这个 for 循环完毕后,如果内存中的对象没有被 GC 清理掉的话,内存中一共有 2 万多个了

牵扯到String里内容不断变换的时候用StringBuffer,String S1 = “This is only a” + “ simple” + “test”;  速度要比  StringBuffer Sb = new StringBuilder(“This is only a”).append(“ simple”).append(“ test”); 快出很多
String S2 = “This is only a”;
String S3 = “ simple”;
String S4 = “ test”;
String S1 = S2 +S3 + S4; 速度则会慢很多
以上内容摘抄于http://blog.csdn.net/shirleyacount/article/details/39958371

转载于:https://www.cnblogs.com/qiangqiangqiang/p/7613684.html

StringBuffer笔记相关推荐

  1. StringBuilder与StringBuffer的一点笔记

    StringBuilder与StringBuffer的一点笔记 toStringCache toString() append(String str) toStringCache private tr ...

  2. `java`学习笔记(十二)`Java`--`String``StringBuffer``StringBuilder`

    Java–String&&StringBuffer&&StringBuilder 文章目录 `Java`--`String`&&`StringBuffe ...

  3. java学习笔记(十)----String类和StringBuffer类

    ***String类和StringBuffer类 -------------------------- String类对象中的内容一旦被初始化就不能再改变 StringBuffer类用于封装内容可以改 ...

  4. Java学习笔记20(String类应用、StringBuffer类、StringBuilder类)

    1.获取指定字符串中大小写和数字的个数: package demo;public class StringTest {public static void main(String[] args) {g ...

  5. 黑马程序员——【学习笔记】集合——String、StringBuffer 以及集合

    ------- android培训 . java培训 .期待与您交流!---------- 1 String类的特点: 1.1 字符串对象一旦被初始化就不会被改变. 1.2 String覆写Objec ...

  6. JAVASE学习笔记 Java中的常用类--StringBuffer类、StringBuilder类

    1.StringBuffer类概述 在Java中我们如果对字符串进行拼接操作,每次拼接都能构建一个新的String对象,这样操作既费时有浪费时间,StringBuffer类就能解决这个问题. Stri ...

  7. Java笔记(5)-String、StringBuffer、StringTokenizer、Date、Calendar

    浮云一别后,流水十年间.-–韦应物<淮上喜会梁川故人 / 淮上喜会梁州故人> String类 构造字符串对象 Java专门提供了处理字符串的String类,在java.lang包中默认引入 ...

  8. String、StringBuffer、StringBuilder笔记

    String.StringBuffer.StringBuilder 三者都是操作字符串的类,底层均为char型数组存储. 执行效率: StringBuilder > StringBuffer & ...

  9. JAVA学习笔记:concat, StringBuffer ,append,insert

    concat: String a=new String ("asd");a=a.concat("qwe");//如果没有等于a,则不会在后面接qweSystem ...

最新文章

  1. 命令行是你的至交好友
  2. Spring之AOP由浅入深
  3. 微软向马斯克的人工智能项目OpenAI投资10亿美元
  4. python format函数实例_Python字符串格式化,format格式化函数详细使用
  5. 球迷福利!Next VR本周将直播三场ICC比赛
  6. Java高新技术 枚举
  7. 跟面试官侃半小时MySQL事务隔离性,从基本概念深入到实现
  8. 【LeetCode】剑指 Offer 56. 数组中数字出现的次数
  9. [转载] python格式化字符串漏洞_从两道CTF实例看python格式化字符串漏洞
  10. .Spark Streaming(上)--实时流计算Spark Streaming原理介
  11. 自定义事件和jQuery插件
  12. break用于什么场景python_break语句陷入循环
  13. 前端面试有这几篇就够了--HTML篇
  14. 电镜的成像原理-透射电镜成像原理2
  15. Buckhorn跳羚声卡驱动安装设置方法
  16. 安卓项目迁移androidX(为何需要迁移,迁移遇到的问题及解决),必须迁移,早动早省事
  17. 微信小程序 环形进度条_微信小程序实现圆形进度条
  18. 相机的内参会改变吗_关于相机内参中的焦距fx和fy
  19. android 后台自动拍照,Android实现后台服务拍照功能
  20. matlab 数值计算课 二阶微分方程-龙格库塔方法 ODE45

热门文章

  1. 不同地图坐标系的坐标转换
  2. ESP8266 WiFi串口模块的学习与使用(一)
  3. sdut 2506 完美网络(优先队列)
  4. [YTU]_2442( C++习题 矩阵求和--重载运算符)
  5. MATLAB 图像函数(第五章) 图像空间变换和图像配准
  6. android如何使用xml资源文件,Android-使用xml文件资源定义菜单
  7. Django整理(二) - 视图和模板的初步使用
  8. Hadoop记录-监控几个思路
  9. golang中map并发读写问题及解决方法
  10. 合并石子 四边形不等式优化