String、StringBuffer与StringBuilder的区别
比较String和StringBuffer:
1. String是不可变类,String对象一旦被创建,其值将不能被改变;StringBuffer是可变类,当对象被创建后仍可以对其值进行修改。
当一个字符串经常需要被修改时,最好使用StringBuffer来实现。因为如果使用String,就会生成很多无用的对象,由于这些对象会被GC回收,因此会影响程序的性能。
2. 当实例化String时,有两种方式进行初始化,分别为:String s = new String("Hello")和String s = "Hello";而StringBuffer只能使用构造函数的方式进行初始化,即StringBuffer sb = new StringBuffer("Hello");
StringBuilder:
类似StringBuffer,也是可变类。但不同的是,StringBuilder不是线程安全的,而StringBuffer是线程安全的(因为String是不可变类,所以String也是线程安全的)。
总结:
1. 如果要操作的数据量比较小,应优先使用String类;
2. 如果是在单线程下操作大量数据,应优先使用StringBuilder类;
3. 如果是在多线程下操作大量数据,应优先考虑StringBuffer类。
posted on 2017-03-16 15:36 一个不会coding的girl 阅读(142) 评论(0) 编辑 收藏 举报