[C#] 왜 string은 불변성일까?
카테고리: CSharp
왜 string은 불변성일까? 라는 의문에서 시작하여 공부하고 정리한 글입니다.
참고 책 : CLR via C#
왜 string은 불변성일까?
string
이 불변성이여서 얻는 장점이 있다- 문자열을 조작하거나 액세스할 때 스레드 동기화 작업이 필요치 않다
- 값이 변하지 않는다는 점은 스레드 동기화할 때 상호 배제를 할 필요가 없어서 성능에 유리하다
- 하나의
String
객체를 이용하여 CLR이 여러개의 동일한 문자열을 공유할 수 있도록 하여 메모리 사용량을 낮출 수 있다- 문자열 보관을 사용할 경우 내부 해시 테이블에서 문자열을 가지고 있고 해시 테이블에 있는 문자열을 참조하는 방식이다
- 다만 해시 테이블에서 보관되기 때문에 문자열이 사용되지 않는다고 해서 가비지 수집기가 수집할 수 없다
- 문자열을 조작하거나 액세스할 때 스레드 동기화 작업이 필요치 않다
💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸
댓글 남기기