본문 바로가기

전체 글

(32)
참조 카운팅과 순환 참조의 이해 강화 참조 카운팅 (Reference Counting)참조 카운팅은 객체가 몇 개의 다른 객체나 변수가 자신을 참조하고 있는지를 세는 방식.객체가 참조될 때마다 카운트 증가, 참조가 해제되면 카운트 감소. 참조 카운트가 '0'이 되면 더 이상 그 객체를 참조하는 곳이 없으므로 가비지 컬렉션의 대상이 됩니다.class Node: def __init__(self, value): self.value = value self.ref = None # 다른 노드를 가리키는 참조node1 = Node(1)node2 = Node(2)# 현재 상태:# node1 참조 카운트: 1 (node1 변수)# node2 참조 카운트: 1 (node2 변수)node1.ref = node2node2.ref ..
오랜만에 정리하는 자바의 인스턴스와 String Pool 오랜만에 자바를 다시 보려고 하니 여러가지 까먹은게 많다.그래서 정리를 해보려고 한다. 메모리 측면 관리와 성능 최적화 측면을 보겠다.  1. 인스턴스화 (Instantiating a String)인스턴스화는 new 키워드를 사용하여 새로운 문자열 객체를 생성하는 방법입니다. String a = new String("Hello");String b = new String("Hello");위 코드는 'a','b'라는 각각 새로운 'string' 객체를 힙 메모리에 생성한다.비록 같은 "Hello" 라는 문자열을 가지지만, 두 객체는 서로 다른 메모리 주소를 가지고있다.'a'와 'b'는 각각 독립적인 객체를 가리키고 있으며, 하나가 변경되거나 가비지 컬렉션의 대상이 되더라도 다른 하나에는 영향을 미치지 않는다..
이제 와서 정리해보는 파이썬과 자바의 GC(garbage Collector) 자바에는 유명한 가비지 컬렉터가 있다.하지만 왜인지 나는 파이썬에는 없다고 생각했다 왜 그런 바보같은 생각을 했을까?그래서 지금 다시 알아보고 다시 정리해보려고 나를 위해 기록한다. 자바와 파이썬은 둘 다 메모리 관리를 자동으로 처리하는 가비지 컬렉터를 사용합니다.가비지 컬렉션은 프로그램 실행 중에 더 이상 필요하지 않은 객체를 메모리에서 자동으로 해제 하여 메모리 누수를 방지하는 중요한 기능입니다. 두 언어에서 가비지 컬렉터의 작동 방식은 다소 다르며, 자세히 설명해보겠습니다. JAVA의 가비지 컬렉터자바는 명시적으로 메모리 할당, 해제 할 필요가 없습니다. 자바 가비지 컬렉터는 힙 메모리에서 더 이상 사용되지 않는 객체를 자동으로 찾아내고 회수합니다.자바는 Generational garbage col..