1. 참조 자료형 (Reference Data Type)
ㅇ (주로, 객체지향 언어에서 많이 사용)
- 변수 선언과 메모리 생성이 분리되는 데이터형
- 즉, 변수 선언시, `해당 변수 값이 생성되어 저장되는 메모리의 주소`에 대한 참조가 이루어짐
ㅇ 종류
- 배열 참조형 : 배열 객체를 참조하기 위한 자료형
- 클래스 참조형 : 클래스 객체를 참조하기 위한 자료형
- 인터페이스 참조형
. 자바 언어 등에서는 클래스 외에 인터페이스라는 것을 제공하여주는데,
. 이러한 인터페이스 객체를 참조하기 위한 자료형
- 열거 참조형 등
ㅇ 특징
- 이들을 조작할 때는 사실상 해당 데이터 자체를 직접 조작하는 것이 아니라,
. 그에 대한 참조를 통해 조작하는 것임
- 만일, 생성된 저장 공간에 대한 참조가 없어지면,
. 후에 가비지 컬렉션에 의한 소멸 과정을 겪게됨
. 통상, 참조 카운트(Reference Count)가 0가 되면, 가비지 컬렉터가 해당 메모리를 비우게 됨
2. 불변 객체 타입 (Immutable), 가변 객체 타입 (Mutable)
ㅇ 불변 객체 타입
- 생성 후 그 값의 내용을 바꿀 수 없는 객체
- 파이썬 例) 숫자, 문자열, 튜플 등
ㅇ 가변 객체 타입
- 생성 후에도 그 값의 내용을 바꿀 수 있는 객체
- 파이썬 例) 리스트, 딕셔너리, 집합, 바이트 등
- 자바스크립트 例) 배열 등