Java String类和StringBuffer类的区别介绍

 更新时间:2022年04月06日 17:01:11   作者:china_zyb  
这篇文章主要介绍了Java String类和StringBuffer类的区别, 关于java的字符串处理我们一般使用String类和StringBuffer类有什么不同呢,下面我们一起来看看详细介绍吧

 关于java的字符串处理我们一般使用String类和StringBuffer类

那么String类和StringBuffer类的区别在什么地方呢?

  • 1、String是不可变的、StringBuffer是可变的。在程序中如果定义String s = "this is a string".那么在以后的应用中不能对s进行任何修改只能进行诸如subString等操作,如果想进行改动只能重新new一个string而不是对原来的s进行改动.而对于StringBuffer却是可以改变的,在程序中定义StringBuffer s ="This is a",对于StringBuffer可以使用append和insert等函数,如s.append("string")结果就是s="This is a string".
  • 2、String类提供了一些方法,用来进行字符串的比较。这个类实现了Object父类的equals()方法,用来比较两种字符串的值是否相等。同时还增加了equalsIgnoreCase()方法可以忽略两个字符串大小写的区别。但是StringBuffer类并没有实现Objcet类的Equals方法,所以不能用这个方法来比较两个StringBuffer类的字符串是否相等。除了用equalse方法来比较两个字符串外,还可以用==来比较字符串。与equalse方法不同的是,==不是比较两个字符串的值是否相等,而是比较几个字符串的引用是否指向同一个实例。
  • 3、StringBuffer的效率并不一定比string高,如对于String s1 ="This "+“is”+"a"+"string"和StringBuffer s2="":s2.append(""This");s2.append("is");s2.append("a");s2.append("string").测试发现前者明显比后者效率高。原因是,在定义s1时,编译时即可使得s1="This is a string",而s2需要等到运行时才能确定。
  • 4、当然了,一般情况下,StringBuffer是要比String效率高些的

与包装类相似,String类是不可以改变的,从而不能修改字符串的值,所以必须创建一个新的字符串来存放,每次都重新开辟了一个内存空间。

如果字符串较少的话我们可以使用String 类,如果文件有几百成千个字节又会怎么样呢.

相反,我们提供另一个类Stingbuffer 来对字符串进行操作。

String类常用方法:

 char charAt(int index);  返回index索引位置的字符

 int length(); 返回字符串的长度。

 String substring(int beginindex,int endindex)返回一个新的字符串,其值是beginindex索引位置到endindex索引位置。

 String trim(); 去除字符串两边的空格,并返回一个新的字符串。

 String toLowerCase(); 将字符串中的所以大写字母转换成小写字母,已有大写字母则不需要转换,并返回一个新的字符串。

 String toUpperCase();String toLowerCase(); 将字符串中的所以小‘写字母转换成小写字母,已有小写字母则不需要转换,并返回一个新的字符串。

 boolean equals(String str);本对象中的字符串与str对象字符串进行比较(区分大小写) 返回一个boolean值

 String replace(char oldChar, char newChar);将旧的字符串(oldChar)换成新的字符串(newChar)

String类方法:

 主要方法

 append();向字符串末尾添加数据,而不像String类重新开辟空间存放新的内容

 insert();根据方法的重载传递不同的参数,在指定的位置对字符串进行插入子字符串。

例:

 String str = "how ";

  str += "are ";

 str +="you";

 如果我们打印str的最终结果是how are you 是我们所期望的,内存里面的变化:

 how

 how are

 how are you

 String类使用重载加法运算符,在字符串表中创建新的条目,上面一共创建了三条。

 当处理的字符串过多时,上面的做法就很耗费内存。

 StringBuffer str = new StringBuffer("how");

 //向str末尾添加字符串

 str.append("are ");

 str.append( "you");

 将需要处理字符串交给StringBuffer类处理 ,

 每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,

 就无需分配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量自动增大。而不是重新声明新的对象

 这样的话就不会耗费内存!

到此这篇关于Java String类和StringBuffer类的区别介绍的文章就介绍到这了,更多相关Java String类与StringBuffer类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Springboot访问templates html页面过程详解

    Springboot访问templates html页面过程详解

    这篇文章主要介绍了Springboot访问templates html页面过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Java数据结构之KMP算法的实现

    Java数据结构之KMP算法的实现

    这篇文章主要为大家详细介绍了Java数据结构中KMP算法的原理与实现,文中的示例代码讲解详细,对我们学习Java有一定的帮助,需要的可以参考一下
    2022-11-11
  • springboot项目如何部署到服务器

    springboot项目如何部署到服务器

    这篇文章主要介绍了springboot项目如何部署到服务器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • java String类型对象转换为自定义类型对象的实现

    java String类型对象转换为自定义类型对象的实现

    本文主要介绍了java String类型对象转换为自定义类型对象的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 从零实现一个简单的Spring Bean容器的代码案例

    从零实现一个简单的Spring Bean容器的代码案例

    Spring是一个非常流行的Java Web开发框架,它提供了强大的依赖注入、面向切面编程、声明式事务管理等功能,为开发者提供了高效、快速地构建Web应用程序的工具,在这篇文章中,咱们将一步一步地构建一个简单的SpringBean容器,需要的朋友可以参考下
    2023-06-06
  • JAVA String.valueOf()方法的用法说明

    JAVA String.valueOf()方法的用法说明

    这篇文章主要介绍了JAVA String.valueOf()方法的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Java中String类startsWith方法详解

    Java中String类startsWith方法详解

    这篇文章主要给大家介绍了关于Java中String类startsWith方法的相关资料,startsWith() 方法用于检测字符串是否以指定的前缀开始,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-05-05
  • java实战小技巧之字符串与容器互转详解

    java实战小技巧之字符串与容器互转详解

    Java.lang.String是Java的字符串类. Srting是一个不可变对象,下面这篇文章主要给大家介绍了关于java实战小技巧之字符串与容器互转的相关资料,需要的朋友可以参考下
    2021-08-08
  • Scala中Array和List的区别说明

    Scala中Array和List的区别说明

    这篇文章主要介绍了Scala中Array和List的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • 学习SpringMVC——国际化+上传+下载详解

    学习SpringMVC——国际化+上传+下载详解

    本篇文章主要介绍了学习SpringMVC——国际化+上传+下载,小编觉得挺不错的,现在分享给大家,也给大家做个参考。
    2016-12-12

最新评论