Replies: 2 comments
-
String은 문자열을 대표하는 것으로 문자열을 조작하는 경우 �사용한다. 그리고 문자열, 숫자, char 등을 concat할 때는 StringBuffer, StringBuilder를 사용할 수 있다. StringBuffer와 StringBuilder의 차이점은 동기화 지원 여부이다. 두 클래스가 제공하는 메소드는 같지만, StringBuffer는 각 메소드 별로 synchronized keyword가 존재한다. 즉, 멀티 쓰레드 상태에서 동기화를 지원한다는 것이 두 클래스의 차이이다. 또한 String의 '+' 활용한 문자열 합치기는 JDK 1.5 이전에는 매번 String 인스턴스를 생성하는 방식이었지만, 이런 성능 이슈를 개선하기 위해 JDK 1.5 버전 이후에는 컴파일 단계에서 StringBuilder로 컴파일 되도록 변경되었다. public final class StringBuffer {
public synchronized StringBuffer append(String str) {
super.append(str);
return this;
}
public synchronized StringBuffer append(boolean b) {
super.append(b);
return this;
}
...
}
public final class StringBuilder {
public StringBuilder append(String str) {
super.append(str);
return this;
}
public StringBuilder append(boolean b) {
super.append(b);
return this;
}
...
} |
Beta Was this translation helpful? Give feedback.
-
String은 불변입니다. 기존 String에 새로운 String을 더하는 경우, 기존 String을 변경하는 것이 아닌 새로운 문자열이 만들어집니다. |
Beta Was this translation helpful? Give feedback.
-
.
Beta Was this translation helpful? Give feedback.
All reactions