본문 바로가기
프로그래밍/키워드

[JAVA] String 클래스

by Luhie 2016. 11. 25.

자바에서는 다른 언어들과 다르게 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