java中String、StringBuffer、StringBuilder之间的区别

本文为大家介绍了java中String、StringBuffer、StringBuilder之间的区别,对此不甚理解的同学可以仔细阅读。String类的内容一旦声明后是不可改变的,改变的只是其内存的指向。

java中String、StringBuffer、StringBuilder之间的区别

区别如下:

1) String类的内容一旦声明后是不可改变的,改变的只是其内存的指向,而StringBuffer类的对象内容是可以改变的。

2) 对于StringBuffer,不能像String那样直接通过赋值的方式完成对象实例化,必须通过构造方法的方式完成。

3) StringBuffer的在进行字符串处理时,不生成新的对象,在内存使用上要优于串类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入,删除等操作,使用StringBuffer要更加适合一些。

在线教学视频分享:java视频

例: String对象不可修改指的是对象本身不可修改,而不是引用不可修改。

String a = “你好”;
只听到从山间传来架构君的声音:
孤城背岭寒吹角,独树临江夜泊船。有谁来对上联或下联?

这行代码的意思是声明一个String类型的引用变量叫做a,在内存中创建一个String对象(值为"你好"),然后把这个对象的引用赋值给变量a。

此代码由Java架构师必看网-架构君整理
a = “hello”;

这行代码执行的效果是在内存中另外创建了一个String对象(值为"hello"),然后把这个新对象的引用赋值给变量a,而不是把原来的内存中的那个“你好”的String对象值变为“hello”。

4) StringBuilder,StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

5) StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类,然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

想了解更多java相关的文章可以访问:java编程入门

架构君码字不易,如需转载,请注明出处:https://javajgs.com/archives/35695
0

发表评论