美文网首页
Java 中CharSequence、String、String

Java 中CharSequence、String、String

作者: 柠檬师傅 | 来源:发表于2016-11-26 07:12 被阅读0次

之前对这四个String、StringBuilder、StringBuffer、CharSequence的认识不够清晰,现在再重新深入的去了解下他们。


首先CharSequence可以说是另外三个的老大,CharSequence本身是一个接口(去掉了原本的注释):

/**
 * This interface represents an ordered set of characters and defines the
 * methods to probe them.
 */
public interface CharSequence {

   
    public int length();

  
    public char charAt(int index);

 
    public CharSequence subSequence(int start, int end);

   
    public String toString();
}

这就是CharSequence的源码,String、StringBuilder、StringBuffer都是实现了CharSequence这个接口而来的,所以他们都有这四个方法。上面的源码中可以看到最后一个方法toString()方法,说明StringBuilder、StringBuffer都可以转成String。

StringBuilder和StringBuffer我们一般都会用来拼接字符串,StringBuilder和StringBuffer的初始大小都是16,我们也可以按需求来自己定义大小。StringBuffer是线程安全的,StringBuilder是线程不安全的,所以单线程使用StringBuilder多线程使用StringBuffer,StringBuilder的性能也会高于StringBuffer。

我们平时有很多时候可能会直接使用加号来进行字符串拼接,如果字符串是已知的那么会在编译期以StringBuilder#append的形式编译,但是如果字符串是获取的是未知的,那么会无端创建很多不必要的对象,占用内存,所以尽量不要使用加好来拼接字符串。

相关文章

网友评论

      本文标题:Java 中CharSequence、String、String

      本文链接:https://www.haomeiwen.com/subject/bgfwpttx.html