关注小编,可以天天看新内容哦
Java中常见面试题
String、StringBuffer类和StringBuilder类的区别?工作原理?
StringBuffer和StringBuilder是一个字符串缓冲区。
工作原理:预先在内存中申请一块空间,以容纳字符序列,如果预留的空间不够用,则进行自动扩容,以容纳更多字符序列。
StringBuffer、StringBuilder和String最大的区别:String是不可变得字符序列,存储字符串常量池中。StringBuffer底层是一个char数组,但是该char数组是可变的。并且可以自动扩容。StringBuffer和StringBuilder的默认初始化容量是16。
StringBuffer是线程安全的。(可以在多线程的环境下使用不会出现问题)。StringBuilder是非线程安全的。(在多线程环境下使用可能出现问题)
如何优化StringBuffer和StringBuilder呢?
最好在创建StringBuffer之前,预测StringBuffer的存储字符数量,采用指定初始化容量的方式创建StringBuffer。为了减少底层数组的拷贝,提高效率。
Java String类常用的方法3
public char[] toCharArray()
将字符串转换为一个新的字符数组。
public String toLowerCase()
将此字符串中的所有字符都转换为小写。
public String toUpperCase()
将此字符串中的所有字符都转换为大写。
public String trim()
返回一个新的字符串,将字符串前后的空格忽略。
public static String valueOf(int i)
返回int型参数的字符串表示形式。
public String intern()
返回一个字符串对象。一个由类String类私有维护的、初始为空的字符串常量池。当调用intern()方法时,如果常量池已经包含一个与此字符串对象相同的字符串,则返回池中的字符串。否则,将此字符串对象添加到池中,并返回此字符串对象的引用。