-
Garbage Collector, Garbage Collection에 대하여Programming/etc. 2022. 3. 29. 23:20
가비지 콜렉터를 통하여 수집된 가비지 컬렉션은 스택 메모리 영역의 원시타입과 힙 메모리 영역의 참조타입 간의 차이를 고려하여 레퍼런스 카운팅, 메뉴얼 기법인 타임 베이스 혹은 이벤트 베이스 방식으로 수집되어 메모리에서 해제되게 된다.
Garbage Collector: 메모리의 힙 영역에 할당 된 더 이상 사용되지 않는 객체를 제거하는 역할
Garbage Collection: 더 이상 필요없는 오브젝트, 참조하지 않는 오브젝트의 경우 가비지라 부르며, 수집이 가능하다.
•래퍼런스 카운터를 이용하여 참조하는 오브젝트의 개수가 0이되면 수집한다.
•순환 참조 되는 변수들은 메모리에서 해제가 되지 않으니(메모리 누수,릭) 특정 timeline(시간대) 안에서 참조가 안된 변수는 해제하는 방식도 있다.
•Manual Garbage Collection(수동)을 수행하는 방법은 두가지가 있다.
1)Time-based(시간 기반): 가비지 컬렉터를 코정된 시간 간격마다 호출하는 것이다.
2)Event-based(이벤트 기반): 이벤트 발생 시 가비지 컬렉터를 호출한다. 예를 들어, 사용자가 응용프로그램을 종료하거나응용 프로그램이 중단 상태일때 호출하는 것이다.
Primitive Type: 원시 타입이라고도 부르며 정수, 실수, 문자, 논리 리터럴등 실제 데이터의 값을 메모리 주소와 함께 저장하는 타입이다.
Reference Type: 객체 혹은 배열의 값이 저장된 주소를 메모리에 주소와 함께 저장하여 실제 값이 든 주소를 통하여 값을 참조한다.
•자바에서 실제 객체는 힙 영역에 저장되고 참조 타입 변수는 스택 영역에 실제 객체의 주소를 저장하여 객체를 호출 할 때 마다 참조 변수에 저장된 객체의 주소를 불러와 사용하는 방식
Heap 메모리 영역: 동적인 메모리 영역, 객체와 배열이 생성된다.
•참조 타입 객체들의 주소를 스택 영역에 저장한다.
•크기가 정해져있지 않다. 그렇기 때문에 객체나 배열의 값이 동적으로 저장된다.
Stack 메모리 영역: 정적 메모리 영역, 스택 영역에는 기본 타입 변수가 할당되고 변수의 실제 값이 저장된다.
•참조 타입의 변수들은 이 스택 영역에서 힙 영역에 생성된 객체들의 주소 값을 저장한다
Heap Stack EX): 스택 힙
int age = 25
String name = 10000번지(힙 메모리 주소) / 10000번지: "이름"'Programming > etc.' 카테고리의 다른 글
RESTful API에 대하여 (0) 2022.05.10 Twelve-Factor(트웰브 팩터) 방법론 (0) 2022.03.28 CDN에 관하여 (0) 2022.03.18 CI/CD에 대한 이해 (0) 2022.02.10 CORS(Cross-Origin Resource Sharing)에 대하여 (0) 2022.02.10