본문 바로가기
프로그래밍언어 & 프레임워크/C#

C# 불변(immutable)타입과 가변(mutable)타입

by 공부하는개미 2021. 8. 24.
반응형

 

아래 글은 C# 문법 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.

 

 

📃 참고자료

* 위 링크를 참고해서 아래 글을 작성했습니다.

 

 

 

 

# 가변타입(Mutable Type)

 

 

Mutable Type이란?

  • Mutable한 객체는 생성된 이후에 상태가 변경될 수 있는 객체입니다.

 

대표적인 Mutable Type

  • List
  • ArrayList
  • HashMap 
    등등

 

 

# 불변타입(Immutable Type)

 

Immutable Type이란?

  • Immutable은 '변하지 않는'이라는 뜻이 담겨 있습니다. 
  • Immutable한 객체는 생성된 이후에 상태가 변경되지 않는 객체를 말합니다.
  • 불변이란, 객체가 컴퓨터의 메모리 내에서 쓰기를 할 수 없다는 뜻이 아니다.

 

대표적인 Immutable Type 

  • String
  • Integer
  • Double
  • Long

 

 

 

Immutable Type을 사용하는 이유

  • 성능을 향상시키기 위함
    - 객체가 미래에 변할 계획이 없을 때
  • 메모리 사용을 줄이기 위함
    - 전체 객체를 복사하지 않고 객체 참조를 만듦
  • Thread-safety
    - 여러개의 쓰레드가 서로 간섭하지 않고 같은 객체를 참조할 수 있음
반응형