全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JAVA中String类与StringBuffer类的区别

在Java中有两种字符串的操作:String类和StringBuffer类(缓冲字符串处理类)。

下面先简单的说一下两者的区别。

String类和StringBuffer类都提供了相应的方法实现字符串的操作,但二者略有不同。

(1) String类

该类一旦产生一个字符串,其对象就不可变。String类的内容和长度是固定的。如果程序需要获得字符串的信息需要调用系统提供的各种字符串操作方法实现。虽然通过各种系统方法可以对字符串施加操作,但这并不改变对象实例本身,而是生成一个新的实例。系统为String类对象分配内存,是按照对象所包含的实际字符数分配的。

(2) StringBuffer类

查了查Buffer这个词,有缓冲的意思,这个类肯定有缓冲的功能。该类处理可变的字符串。如果要修改一个StringBuffer类的字符串,不需要再创建新的字符串对象,而是直接操作原来的串。该类的各种字符串操作方法与String类提供的方法不相同。系统为StringBuffer类分配内存时,除去当前字符所占的空间外,还提供另外的16个字符大小的缓冲区。每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超过容量时,会自动增加容量。

下面来举一些具体的实例

字符串的连接

String类有两种方法

第一种(“+”)

public class str{
  public static void main(String[] args){
      String str1="加特效!";
      String str2="Duang~~";
      System.out.println(str1+" "+str2);
    }
  }

第二种(”concat”)

public class str{
  public static void main(String[] args){
      String str1="加特效!";
      String str2="Duang~~";
      System.out.println(str1.concat(str2));
    }
  }

StringBuffer类的方法

public class str{
  public static void main(String[] args){
    //构建一个缓冲字符串的对象sb
    StringBuffer sb=new StringBuffer("加特效!");
    //通过append方法,在这个对象后面添加一个新字符串
    sb.append(" Duang~~");
    System.out.println(sb);
  }
}

最终输出的结果都为:加特效! Duang~~

通过上面的例子不难看出,String类在进行扩展的时候,需要实例两个对象,每个对象都会占用一定的内存,而StringBuffer类就不需要再实例化一个新的类,只需要调用一个扩展的方法就可以了。

还有一点StringBuffer类的内存容量是可扩展的。举个具体的例子:

public class str{
  public static void main(String[] args){
     //声明字符串对象sb
      StringBuffer sb=new StringBuffer(40);
      System.out.println(sb.capacity());   //输出字符串的容量capacity
      sb.ensureCapacity(100);         //扩充容量
      System.out.println(sb.capacity());   //输出字符串的容量capacity
    }
  }

capacity()方法代表了字符串对象在内存中,可以容纳字符串的个数。如果想要扩充内存容量,可以使用方法ensureCapacity()。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Java  # String  # StringBuffer  # Java中字符数组、String类、StringBuffer三者之间相互转换  # java stringbuffer的用法示例  # java 中String和StringBuffer与StringBuilder的区别及使用方法  # java_String和StringBuffer区别分析  # Java之String、StringBuffer、StringBuilder的区别分析  # Java那点事——StringBuffer与StringBuilder原理与区别  # Java中String、StringBuffer和StringBuilder底层实现深入剖析  # 操作方法  # 在这个  # 的说  # 不需要  # 就不  # 两种  # 中有  # 有一定  # 但这  # 只需要  # 不需  # 有两种  # 所占  # 都为  # 以对  # 第二种  # 第一种  # 要再  # 大家多多  # 举个 


相关文章: 利用JavaScript实现拖拽改变元素大小  常州自助建站工具推荐:低成本搭建与模板选择技巧  网站好制作吗知乎,网站开发好学吗?有什么技巧?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  C#怎么创建控制台应用 C# Console App项目创建方法  如何通过虚拟主机空间快速建站?  PHP正则匹配日期和时间(时间戳转换)的实例代码  如何在企业微信快速生成手机电脑官网?  IOS倒计时设置UIButton标题title的抖动问题  建站之星价格显示格式升级,你的预算足够吗?  个人摄影网站制作流程,摄影爱好者都去什么网站?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  建站之星图片链接生成指南:自助建站与智能设计教程  javascript中的try catch异常捕获机制用法分析  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  常州自助建站费用包含哪些项目?  如何在Tomcat中配置并部署网站项目?  金*站制作公司有哪些,金华教育集团官网?  专业商城网站制作公司有哪些,pi商城官网是哪个?  网站制作壁纸教程视频,电脑壁纸网站?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  湖北网站制作公司有哪些,湖北清能集团官网?  完全自定义免费建站平台:主题模板在线生成一站式服务  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  如何选择PHP开源工具快速搭建网站?  用v-html解决Vue.js渲染中html标签不被解析的问题  ,sp开头的版面叫什么?  XML的“混合内容”是什么 怎么用DTD或XSD定义  如何配置WinSCP新建站点的密钥验证步骤?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  如何在VPS电脑上快速搭建网站?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  制作旅游网站html,怎样注册旅游网站?  山东云建站价格为何差异显著?  如何挑选高效建站主机与优质域名?  如何在IIS中新建站点并解决端口绑定冲突?  python的本地网站制作,如何创建本地站点?  做企业网站制作流程,企业网站制作基本流程有哪些?  学校建站服务器如何选型才能满足性能需求?  如何快速查询域名建站关键信息?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  建站之星后台密码遗忘如何找回?  seo网站制作优化,网站SEO优化步骤有哪些?  网站制作说明怎么写,简述网页设计的流程并说明原因?  Swift中循环语句中的转移语句 break 和 continue  建站VPS选购需注意哪些关键参数?  制作营销网站公司,淘特是干什么用的? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。