java基础复习一

上一篇 / 下一篇  2014-10-24 15:48:39 / 个人分类:java基础复习

String(字符串常量),StringBuffer(字符串变量-线程安全),StringBuild(字符串变量-非线程安全)的区别:

1.String,StringBuffer主要性能区别在于String是不可变对象,每次对String类型进行改变时都等同于生成了一个新的String对象,然后指向新的String对象,经常改变内容的字符串最好不要用String;

2.使用StringBuffer类,不会生成新的对象,一般推荐使用StringBuffer,特别是字符串对象经常改变的情况下;

3.在某些特别情况下,String对象的字符串拼接其实是被jvm解释成了StringBuffer对象的拼接,此时使用String对象并不会比StringBuffer对象慢;

4.java.lang.StringBuffer线程安全的可变字符序列,一个类似于String的字符串缓存区,但不能修改,虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。StringBuffer 上的主要操作是append 和insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而insert 方法则在指定的点添加字符。

5.java.lang.StringBuilder 一个可变的字符序列是5.0 新增的。此类提供一个与StringBuffer 兼容的API,但不保证同步。该类被设计用作StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比StringBuffer 要快。两者的方法基本相同。


TAG:

 

评分:0

我来说两句

Open Toolbar