자바에서는 다른 언어들과 다르게 String이 Object이다.
처음 jjdev를 s에 생성이 된다.
+를 했기 때문에 jjdev에 luahius가 붙을것 같지만
String은 immutable(불변)이기 때문에 jjdev의 참조를 끊고 새로운 jjdevluahius의 참조를 따라간다.
이와같이 String타입은 값이 자주바뀌다 보면 트래픽이 발생한다.
단점을 보완하기 위해유사한 String 타입이 나왔다.
하지만 이것들의 문제는 미리 확보하고 있기 때문에 메모리상의 낭비가 발생한다.
StringBuffer
thread에 안전(싱크로라이즈)
StringBuilder
버퍼뒤에 만들어진 것으로
싱크로라이징이 안되어있어 속도는 빠르지만 안전성이 떨어진다
버퍼와 빌더는 jjdev를 만들때 jjdev보다 더 긴 글자를 가리키고 있다가 나중에 글자를 추가 할 수 있다.
equals를 사용하여 값을 비교했을때
s와 jjdev는 true
Buffer의 sf 와 jjdev는 false
Builder의 sb 와 jjdev는 false
분명히 같은 값이 들어갔지만 false가 뜬다
toString을 사용해 String으로 바꾸어 문자열을 그대로 리턴하여 값 비교를 할수 있다.
'프로그래밍 > 키워드' 카테고리의 다른 글
HTTP 모니터링 (0) | 2016.12.12 |
---|---|
배열 (Arrays) (0) | 2016.11.30 |
[JAVA] toString() (0) | 2016.11.25 |