String 使用private final char value[] 来实现字符串的存储的,String对象创建之后,就不能再修改此对象中存储的字符串内容,是不可变字符串。
String类有一个特殊的创建方法,就是使用“”双引号来创建,如果用new String("zifuchuan")实际上是创建了两个对象,一个是通过""双引号创建的,另一个是new出来的对象,但是他们两个创建的时期不同(双引号的创建),一个是编译期创建的(利用new创建的对象)。
利用双引号创建的对象是编译期常量,编译时已经能确定它的值了,在编译好的class文件中,它已经在String Pool(字符串常量池)中了,接下来如果还有用双引号创建相同的字符串,则直接引用。
StingBuffer和StringBuilder是可变字符串,可以对其进行追加、插入、删除、替换等操作。
StringBuffer是线程安全的,但是速度慢,StringBuilder不是线程安全的,但是速度快。
String与StringBuffer的效率比较:
String result = "hello"+"world";
StringBuffer result = new String().append("hello").append("world");
public interface IIdentificationCodeService {
//方法名
public List
getCodeList(TOriginIdentificationCode condition,int start,int limit) throws BusinessException;
}
StringBuffer面试的关键点:
不能简单的认为append()效率好于"+"。
不要使用new创建string
注意intern()的使用。
在编译期能够确定字符串值得情况下,使用“+”效率最高。
避免使用“+=”来构造字符串。