`

String与StringBuffer

阅读更多

1、String

String代表字符串常量。String是一个final Class。

String str = "abc";

                                等效于:

                                             char data[] = {'a', 'b', 'c'};
                                             String str = new String(data);

 

String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的。

在String类中特别要注意“==”和“equals”,他们有着本质的区别,“==”比较的是两个字符串的对象引用,而“equals”比较的是两个字符串的内容。

2、StringBuffer

    StringBuffer类用于内容可以改变的字符串,可以将其他各种类型的数据增加、插入到字符串中,也可以翻转字符串中猿类的内容,并且可以把StringBuffer类生成的字符串通过StringBuffer类的tostring()方法转化成String类,然后就可以通过String类的各种方法操作该字符串了。
     java中提供了“+”来连接两个String类型的字符串连接成一个新的字符串,在StringBuffer类中可以通过append方法实现。

    StringBuffer为线程安全

 

3、StringBuilder

   同Stringbuffer,但线程不安全

 

一般应用时的效率为

StringBuilder > StringBuffer > String

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics