众所周知,String在Java中是不可变的。我有以下方法的主体,它们返回String

Partner partner = context.getComponent(ComponentNames.PARTNER_COMPONENT_NAME);
String lastAccesDate = partner.getLastAccessDate();
if(lastAccesDate == null) {
    return "";
}
lastAccesDate = new SimpleDateFormat(DATE_PATTERN).format(); //1
return lastAccesDate;


事实是,由于字符串不可变性,将在//1处创建一个新的String对象,因此实际上我将有两个String对象,第一个包含partner.getLastAccessDate();,第二个包含new SimpleDateFormat(DATE_PATTERN).format();。开销不好,我该如何避免呢?

最佳答案

如果是多线程,请使用StringBuffer(即,如果您需要线程安全的可变字符序列),否则请使用StringBuilder

关于java - 用法StringBuffer和String?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27636055/

10-11 04:54