A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

由于String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变得,直至这个对象被销毁。StringBuffer对象则代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append(),insert(),reverse(),setCharAt(),setLength()等方法可以改变这个字符串对象的字符序列。一旦通过StringBuffer生成了最终想要的字符串,就可以调用它的toString()方法将其转换为一个String对象。
从jdk1.5开始出现的StringBuilder类,也代表字符串对象。实际上,StringBuffer与StringBuilder基本相似,两个类的构造器和方法也基本相同。不同的是,StringBuffer是线程安全的(由于该类中的方法为同步方法,故为线程安全的,但代价是会比StringBuilder慢),而StringBuilder则没有实现线程安全功能,所以性能略高。因此在通常情况下,如果需要创建一个内容可变的字符串对象,则应该优先使用Stringbuilder()类。
并且StringBuilder类的API文档中写到:该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马