String : 문자열이 추가될 때마다 메모리 주소가 변경 됨
StringBuffer : 문자열이 추가 되어도 메모리 주소는 변하지 않음, 동기화 지원
StringBuilder : 문자열이 추가 되어도 메모리 주소는 변하지 않음, 동기화 미지원
package Study;
public class StringStudy {
public static void main(String[] args) {
/*String*/
String str = new String("hello");//hello
System.out.println(str.hashCode());//메모리 주소 : 99162322
str = str.concat(" world");//hello world
System.out.println(str.hashCode());//메모리 주소 : 1794106052
/*StringBuffer : 동기화 지원*/
StringBuffer strBuffer = new StringBuffer("hello");//hello
System.out.println(strBuffer.hashCode());//메모리 주소 : 366712642
strBuffer.append(" world");//hello world
System.out.println(strBuffer.hashCode());//메모리 주소 : 366712642
/*StringBuilder : 동기화 미지원*/
StringBuilder strBuilder = new StringBuilder("");//StringBuilder strBuilder = ""; X
System.out.println(strBuilder.hashCode());//메모리 주소 : 1829164700
strBuilder.append(" world");//hello world
System.out.println(strBuilder.hashCode());//메모리 주소 : 1829164700
}
}
String은 문자열이 추가, 삭제 될때마다 메모리 주소가 변경되므로 잦은 문자열의 변경이 있는경우
StringBuffer, StringBuilder보다 연산속도가 느리다
'Programming > JAVA' 카테고리의 다른 글
[JAVA] JUnit (0) | 2020.09.25 |
---|---|
[lombok] 롬복 설치 방법 (0) | 2020.09.23 |
[JAVA] 프로그래밍 네이밍 규칙 (0) | 2020.09.17 |
[Spring] JSON (0) | 2020.09.16 |
[JAVA] Serializable(직렬화) 와 Deserialize(역직렬화) (0) | 2020.09.16 |