全网整合营销服务商

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

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


相关文章: 如何在Tomcat中配置并部署网站项目?  网站专业制作公司有哪些,做一个公司网站要多少钱?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  如何在Windows服务器上快速搭建网站?  如何在建站之星网店版论坛获取技术支持?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  建站之星后台密码如何安全设置与找回?  如何快速登录WAP自助建站平台?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  建站主机与服务器功能差异如何区分?  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  如何配置支付宝与微信支付功能?  建站主机助手选型指南:2025年热门推荐与高效部署技巧  如何零基础开发自助建站系统?完整教程解析  如何快速搭建高效WAP手机网站吸引移动用户?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  一键网站制作软件,义乌购一件代发流程?  Bpmn 2.0的XML文件怎么画流程图  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  如何选购建站域名与空间?自助平台全解析  重庆市网站制作公司,重庆招聘网站哪个好?  香港服务器部署网站为何提示未备案?  浅析上传头像示例及其注意事项  ,交易猫的商品怎么发布到网站上去?  自助网站制作软件,个人如何自助建网站?  如何快速查询网站的真实建站时间?  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  网站制作的步骤包括,正确网址格式怎么写?  c# 在ASP.NET Core中管理和取消后台任务  如何通过建站之星自助学习解决操作问题?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  如何通过云梦建站系统实现SEO快速优化?  盐城做公司网站,江苏电子版退休证办理流程?  建站主机是什么?如何选择适合的建站主机?  安云自助建站系统如何快速提升SEO排名?  香港服务器如何优化才能显著提升网站加载速度?  宝塔新建站点为何无法访问?如何排查?  如何通过VPS搭建网站快速盈利?  北京网站制作公司哪家好一点,北京租房网站有哪些?  临沂网站制作企业,临沂第三中学官方网站?  如何通过FTP空间快速搭建安全高效网站?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  如何在宝塔面板中创建新站点? 

您的项目需求

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