# 01.reference count & garbage collection.py

# 파이썬의 경우 메모리 자동으로 해제
# 언제 해제되는가? 그 중심에 레퍼런스 카운트가 있다.
# 파이썬의 경우 모두 객체이다.


# s에 문자열 할당
s = 'Garbage Collection'
print(s)


# r이라는 이름으로 리스트를 참조, 소멸시기 : "객체를 아무도 참조하지 않는 상황일 때"
r = [1, 2, 3]   #rc 1이 올라간다.
r = 10 # [1, 2, 3]리스트의 rc는 0이 된다.

# 일단 소멸대상으로 등록만 해 두고 시스템에 시간적 여유가 생길 때 소멸시킨다. 이런 일련의 과정을 가비지 컬렉션이라고 한다.
# 레퍼런스 카운트는 가리킴을 당한 '대상'을 두고 생각해야 한다.
# 해당 대상을 가리켰던 변수가 다른 것을 가리키면 레퍼런스 카운트가 1이 줄고, 다른 변수가 그 대상을 또 가리키면 1이 증가한다.






