개인적으로 나는 후자를 사용하는 것 - 그것은 명확하게 그리고 실제로 더 효율적입니다 :
- 대신 그것은 원
StringBuffer
- 의 동기화되지 않은
StringBuilder
유형을 사용합니다 자바의 현대 버전 ' "Price: " + price
및 "Description: " + description + ";"
에 대한 중간 문자열을 구성해야합니다.
Java 5 이상에서는 후자의 코드가 필요합니다. 그러나 두 번째 양식의 선명도는
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("Description: ");
builder.append(description);
builder.append(";");
builder.append("Price");
builder.append(price);
return builder.toString();
}
중요한 점이다 - 나는 확실히 훨씬 간단 처음보다 읽기 찾을 : 컴파일. 하나의 흥미로운 점은 컴파일 된 버전에서 문자열 상수를 추가하기위한 두 번의 연속 호출이 있다는 것입니다 (확인했습니다). 더 읽기, IMO 및 - - 그것은 약간 더 효율적이 될 것이다 쓰기 : 그것은 모두 documentation에 따라 같은 컴파일 된 이후
public String toString() {
return "Description: " + description + ";Price: " + price;
}
하지 않습니다. StringBuffer가 더 최적화되었습니다. – madmik3
Java (5+)의 최신 버전은 실제로 ['StringBuffer'] 대신 ['StringBuilder'] (http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html)을 사용합니다. (http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuffer.html)에서 동기화의 오버 헤드를 피하기 위해'+'연산자로'String' 연결을 사용합니다. – Jeffrey
@ madmik3 여기에 대한 자료가 있습니까? –