Java 中 String, StringBuffer 和 StringBuilder 这三个类经常用到,那它们的区别和联系需要认识一下,在网上找到很多,主要部分摘录写下来,
1, 联系
三者都可用于创建字符串;2, 区别
(1), String 类的长度是不可的,即定长; 一旦定义就占用定长的内存空间,即使用不完也占着;
[ 我认为线程安全主要是针对那些需要维护内部状态改变的类。
而java的String 是不可变的,他的所有操作都不会对他的状态进行修改,有的操作是重新创建一个String对象,所以我觉得 说String是否线程安全不合适 ]
(2), StringBuffer 是线程安全的,可变长度字符序列,同步;
(3), StringBuilder 是非线程安全的,可变长度字符序列,不保证同步,它被设计用作 StringBuffer的简单替换,
用在字符串缓冲区被单个线程使用的情况(这个情况很普通),如果有可能建议优先使用 StringBuilder 类,因在
大多数现实中,它的速度比StringBuffer要快;