众所周知,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/