항목 13에서 보여주었던 String 클래스에는 큰 문제(..)는 없으나, 문자열 특성상 복사만 하고 삭제 되는 경우가 있기 때문에, 불필요한 복사가 이루어 진다고 볼 수 있다.

여기서 생각해 볼 만한 사항은, 어떻게 하면, 문자열의 내부가 변경 되어 질 경우에만, 실제 복사가 이루어 지게 하고, 아닐 경우에는 문자열만 공유 되게 할 수 있는가? 이다.

다음 코드를 보자!


자. 어떻게 하면 위의 "생각해 볼 만한 사항"을 만족하게 StringBuf 와 String 을 구현 할 수 있을까?


해설

이번 최적화 복사 알고리즘은,

  1. 내부값이 변경 되는가?
  2. 변경 된다면 깊은 복사
  3. 변경 되지 않는다면 참조 복사
로 요약 된다.^^


총평

음~

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기