JAVA中String与StringBuffer的区别

2009-12-3文字大小:大中小

在java中有3个类来负责字符的操作。

1.Character 是执行

单个字符操作的,

2.String 对一串字符执行

操作。不可变类。

3.StringBuffer 也是对一串字符执行

操作,但是可变类。

String:

是对象不是原始类型.

为不可变对象,一旦被建立

,就不能修改它的值.

对于已经存在的String对象的修改都是重新建立

一个新的对象,然后把新的值保存进去.

String 是final类,即不能被继承.

StringBuffer:

是一个可变对象,当对他执行

修改的时候不会像String那样重新建立对象

它只能通过构造函数来建立,

StringBuffer sb = new StringBuffer();

note:不能通过付值符号对他执行

付值.

sb = "welcome to here!";//error

对象被建立以后,在内存中就会分配内存空间,并原始

保存一个null.向StringBuffer

中付值的时候可以通过它的append要领

.

sb.append("hello");

字符串连接操作中StringBuffer的效率要比String高:

String str = new String("welcome to ");

str += "here";

的处理步骤实际上是通过建立一个StringBuffer,让侯调用append(),最后

再将StringBuffer toSting();

这样的话String的连接操作就比StringBuffer多出了一些附加操作,当然效率上要打折扣.

并且由于String 对象是不可变对象,每次操作Sting 都会重新建立新的对象来保存新的值.

这样原来的对象就没用了,就要被垃圾回收.这也是要影响性能的.

看看以下代码:

将26个英文字母重复加了5000次,

String tempstr = "abcdefghijklmnopqrstuvwxyz";

int times = 5000;

long lstart1 = System.currentTimeMillis();

String str = "";

for (int i = 0; i < times; i++) {

str += tempstr;

}

long lend1 = System.currentTimeMillis();

long time = (lend1 - lstart1);

Java中string与String区别_JAVA中String与StringBuffer的区别相关推荐

  1. java中string 和stringbuffer的区别_Java中的String,StringBuilder,StringBuffer三者的区别...

    最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下, ...

  2. java中String类是什么_Java中字符串的学习(一)String类的概述及常见方法使用

    转载请注明出处http://www.cnblogs.com/devtrees/p/4347079.html (拓展:Api:编程语言对外给我们提供的应用程序接口.) 一.概述: 我们平时上网发帖,帖子 ...

  3. java中String类是什么_Java中的String类

    /* String类用于描述字符串事物的 那么它就提供了多个方法对字符串进行操作 方法都会用,字符串这块就结束了 常见的操作有哪些? "abcd" 它应该具备什么功能,我们才能更好 ...

  4. java string 后几位_java中String占几个位元组

    java中String占几个位元组以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! java中String占几个位元组 J ...

  5. Java中string字符串的值_Java中的字符串(String)

    一.基本概念: 字符串是一系列字符串的序列.在Java语言中字符串是用一对对双引号"",括起来的字符系列.例如"Hello","你好".从数 ...

  6. java中string类面试题_java中String类的面试题大全含答案

    1.下面程序的运行结果是()(选择一项) String str1="hello"; String str2=new String("hello"); Syste ...

  7. java null和 的区别_java中null和的区别

    null和""的区别 问题一: null和""的区别 String s=null; string.trim()就会抛出为空的exception String s ...

  8. java中容易混淆的方法_java中容易混淆的区别

    本文会随时更新一些java中容易混淆的关键字或者知识点,如有偏见之处,望留言! final和static的差别: 1,final的英语意思"最后的",在java中修饰类,方法和变量 ...

  9. JAVA中重写和实现的区别_Java中重载和重写的区别

    Java中重载和重写的区别 1.1重载是什么 Overloading   方法重载是让类以统一的方式处理不同类型数据的一种手段,多个同名函数同时存在,具有不同的参数个数/类型 1.2为什么用重载 重载 ...

最新文章

  1. Windows 10 技术预览
  2. 【 hdu3949 XOR】
  3. XGBoost的基本使用应用Kaggle便利店销量预测
  4. BAPI_ACC_GL_POSTING_POST生成财务预制凭证
  5. WebService SOAP、Restful和HTTP(post/get)请求区别
  6. unity应用开发实战案例_「简历」STAR法则的实战应用,附手把手教学案例
  7. 销售与顾客的PV同步算法
  8. python程序员自我介绍范文_程序员的自我介绍|史上最有趣的版本
  9. 47.使用外部 JavaScript 和 CSS(8)
  10. OpenCV算法精解1--OpenCV中C++基本操作1
  11. linux系统中使用百度云盘
  12. 计算机网络名词解释dns_DNS名词解释
  13. 动态规划实现生物碱基序列全局匹配
  14. DIY装机用单条8GB还是2条4GB双通道内存好?选错当心速度会变慢!
  15. yxy小菊蒻的201130总结
  16. 快速调出multisim里单刀双置开关
  17. 读懂 x86 架构 Linux 系统虚拟化,这文不容错过
  18. (项目)在线教育平台(十三)
  19. 什么是IA32 及字长的理解
  20. java一个猿人部落生存游戏,猿人进化模拟器无限金币钻石无敌版

热门文章

  1. 在非洲意外当上酋长的河南小伙,现在咋样了?
  2. 厉害!这位80后连发2篇Science!身处普通高校,告诉你科研不决取于平台
  3. 颜宁的学生都已经副院长了!还发表了学校首篇Nature
  4. 教授是如何教授数学思维的?
  5. 华人学者黄皓两页证明解决计算机科学领域难题:布尔函数敏感度猜想
  6. NIPS 2018 | 中科院自动化所两篇入选论文:高清真实图像生成领域及GAN研究在人脸识别领域的进展...
  7. C语言fgets函数了解
  8. 当微服务遇上 Serverless | 微服务容器化最短路径,微服务 on Serverless 最佳实践
  9. 如何做规划?分享2种思维和4个方法
  10. 「直播回顾」Mars:加速数据科学的新方式