본문 바로가기
IT관련/정리

[IT용어] StringBuilder

by XoX 2020. 8. 3.
728x90
개인적인 메모를 위해 작성된 글이므로 가벼운 참고용으로 봐주세요.

 

StringBuilder를 사용하는 이유

 

① str이 가르키는 객체와 str2가 가르키는 객체가 같기때문에 결과는 true가 나온다.

 

② str이 가르키는 객체와 str2가 가르키는 객체가 다르기때문에 결과는 false가 나온다.

 

③ str이 가르키는 객체와 str2가 가르키는 객체가 다르기때문에 결과는 false가 나온다.

 

①과 같이 코드를 짜게 되면 같은 내용을 재사용할 수 있어서 효율적이고 좋은 것 같다.

그러나 아래와 같은 상황에서 봤을 때 결과값은 '***'인데,

메모리상으로는 '*', '**', '***' 이렇게 3가지가 생기기때문에 비효율적이다.

 

위의 상황이 왜 비효율적인지 이해가 안되면 아래와 같은 상황을 보자.

'100개짜리 별'을 만들기위해 위에 처럼 코드를 짜게되면  '*', '**', '***' ... '100개짜리 별'

총 100가지의 객체가 생성되므로 굉장히 비효율적이다.

 

 

그래서 탄생한 게 StringBuilder이다.

StringBuilder를 이용하면 객체는 '*',  '100개짜리 별' 이렇게 두개만 생성되므로 메모리로 봤을 때 효율적이다.

 

 

 

※ 물론 메모리 상으로는 아래와 같이 객체를 1개만 생성하는 게 좋지만

사람이 작업하기에는 그닥 좋지않으니까...

 

 

StringBuilder와 StringBuffer는 비슷한데 웹에서 비동기적으로 작동하는 경우에는

StringBuffer로 코드를 짜는 게 더 안전하다고 한다.

728x90
반응형

'IT관련 > 정리' 카테고리의 다른 글

[IT용어] RSA 암호  (0) 2020.08.02
[IT용어] 에이젝스(Ajax)  (0) 2020.07.31
[IT용어] 디바운싱(debouncing)과 스로틀링(throttling)  (0) 2020.07.29
스프링부트(Spring Boot) 소개  (0) 2020.07.28
[IT용어] SQL의 인덱스란?  (0) 2020.07.27

댓글