全国咨询/投诉热线:400-618-9090

首页新闻动态正文

Java String类和StringBuffer类有什么区别?

更新时间:2020-01-08 来源:黑马程序员 浏览量:

由于字符串是常量,因此一旦创建,其内容和长度是不可改变的。如果需要对一个字符串进行修改,则只能创建新的字符串。为了便于对字符串的修改,在JDK中提供了个StringBuffer类(也称字符串缓冲区)。StringBuffer类和String类最大的区别在于它的内容和长度都是可以改变的。StringBuffer类似一个字符容器,当在其中添加或删除字符时,并不会产生新的StringBuffer对象。针对添加和删除字符的操作,StringBuffer类提供了一系列的方法。

1578474077903_String和StringBuffer的区别.jpg


StringBuffer类和String类有很多相似之处,初学者在使用时很容易混淆。接下来针对这两个类进行对比,简单归纳一下两者的不同,具体如下:

(1)String类表示的字符串是常量,一旦创建后,内容和长度都是无法改变的。而StringBuffer表示字符容器,其内容和长度都可以随时修改。在操作字符串时,如果该字符串仅用于表示数据类型,则使用 String类即可,但是如果需要对字符串中的字符进行增删操作,则使用 StringBuffer类。

(2) String类覆盖了Object类的equals()方法,而StringBuffer类没有覆盖Object类的equals()方法,具体示例如下

String s1=new String("abc");

String s2=new String("abd");

System.out.println(s1.equals(s2));          //打印结果为true

StringBuffer sb1=new StingBuffer("abc");

StringBuffer sb2=new StringBuffer("abc");

System.out.println(sb1.equeals(sb2));       //打印结果为false

 

 

(3)  String类对象可以用操作符+进行连接,而 String Buffer类对象之间不能,具体例如下:

String s1="a";

String s2="b";

String s3=s1+s2;        //合法

System.out.println(s3); //打印输出ab

StringBuffer sb1=new StringBuffer("a");

StringBuffer sb2=new StringBuffer("b");

StringBuffer sb3=sb1+sb2;           //编译出错


1577349771854_学IT就到黑马程序员.gif


猜你喜欢:

Java String类的操作有哪些?
黑马程序员java基础教程下载

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

http://www.itcast.cn/subject/uizly/index.shtml?seozxuids

14天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

20天免费试学

基础班入门课程限时免费

申请试学名额

8天免费试学

基础班入门课程限时免费

申请试学名额

20天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

0天免费试学

基础班入门课程限时免费

申请试学名额

12天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

10天免费试学

基础班入门课程限时免费

申请试学名额
在线咨询 我要报名