区别如下:
1) String类的内容一旦声明后是不可改变的,改变的只是其内存的指向,而StringBuffer类的对象内容是可以改变的。
2) 对于StringBuffer,不能像String那样直接通过赋值的方式完成对象实例化,必须通过构造方法的方式完成。
3) StringBuffer的在进行字符串处理时,不生成新的对象,在内存使用上要优于串类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入,删除等操作,使用StringBuffer要更加适合一些。
在线教学视频分享:java视频
例: String对象不可修改指的是对象本身不可修改,而不是引用不可修改。
String a = “你好”;
登录后复制
这行代码的意思是声明一个String类型的引用变量叫做a,在内存中创建一个String对象(值为"你好"),然后把这个对象的引用赋值给变量a。
a = “hello”;
登录后复制
这行代码执行的效果是在内存中另外创建了一个String对象(值为"hello"),然后把这个新对象的引用赋值给变量a,而不是把原来的内存中的那个“你好”的String对象值变为“hello”。
4) StringBuilder,StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
5) StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类,然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
想了解更多java相关的文章可以访问:java编程入门
以上就是java中String、StringBuffer、StringBuilder之间的区别的详细内容,更多请关注Work网其它相关文章!