全网整合营销服务商

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

免费咨询热线: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底层实现深入剖析  # 操作方法  # 在这个  # 的说  # 不需要  # 就不  # 两种  # 中有  # 有一定  # 但这  # 只需要  # 不需  # 有两种  # 所占  # 都为  # 以对  # 第二种  # 第一种  # 要再  # 大家多多  # 举个 


相关文章: 如何在阿里云虚拟主机上快速搭建个人网站?  网站制作新手教程,新手建设一个网站需要注意些什么?  建站主机核心功能解析:服务器选择与网站搭建流程指南  网站制作公司排行榜,抖音怎样做个人官方网站  网站网页制作专业公司,怎样制作自己的网页?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  安云自助建站系统如何快速提升SEO排名?  北京网站制作的公司有哪些,北京白云观官方网站?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  ,在苏州找工作,上哪个网站比较好?  建站之星备案流程有哪些注意事项?  制作企业网站建设方案,怎样建设一个公司网站?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  电商平台网站制作流程,电商网站如何制作?  如何选择高效响应式自助建站源码系统?  教程网站设计制作软件,怎么创建自己的一个网站?  ,想在网上投简历,哪几个网站比较好?  如何选择适合PHP云建站的开源框架?  Bpmn 2.0的XML文件怎么画流程图  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  如何通过智能用户系统一键生成高效建站方案?  学校为何禁止电信移动建设网站?  个人摄影网站制作流程,摄影爱好者都去什么网站?  中山网站推广排名,中山信息港登录入口?  如何通过cPanel快速搭建网站?  长沙企业网站制作哪家好,长沙水业集团官方网站?  怀化网站制作公司,怀化新生儿上户网上办理流程?  如何选择PHP开源工具快速搭建网站?  如何通过FTP空间快速搭建安全高效网站?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  如何通过可视化优化提升建站效果?  微信h5制作网站有哪些,免费微信H5页面制作工具?  网站app免费制作软件,能免费看各大网站视频的手机app?  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  如何在宝塔面板中创建新站点?  如何生成腾讯云建站专用兑换码?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  建站之星代理商如何保障技术支持与售后服务?  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  ,巨量百应是干嘛的?  建站之星如何开启自定义404页面避免用户流失?  PHP正则匹配日期和时间(时间戳转换)的实例代码  高性价比服务器租赁——企业级配置与24小时运维服务  b2c电商网站制作流程,b2c水平综合的电商平台?  平台云上自助建站如何快速打造专业网站?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息? 

您的项目需求

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