반갑습니다. 태호쿤입니다.
자바 시리즈 첫 기고글로 가비지 컬렉션을 고르게 되었습니다.
가비지 컬렉션은 자바를 쓰는 이유 중 하나라고 생각하기에 자바를 나타내는 핵심이라고도 생각합니다.
이번 글에선 간단하게 가비지 컬렉션에 대해 집고 넘어가겠습니다.
흔히 자바의 특성에 대해 얘기하면 학부 때 배우는
JVM을 통한 플랫폼 독립성
완벽한 객체지향
캡슐화
.java 파일과 .class 파일
패키지 및 배포
멀티스레드....
등등 배우실 겁니다.
그 중 가비지 컬렉션도 배울텐데 교제에선 이렇게 배울겁니다.
이로 인한 장점
개발자가 신경쓰지 않아도 할당된 메모리를 알아서 회수하기에 프로그래밍에 집중 가능
이로 인한 단점
자바 응용 프로그램 실행 도중 예측할 수 없는 시점에서 가비지 컬렉션이 실행된다.
이는 데드라인 내에 반드시 결과를 내야하는 리얼타임 시스템엔 부적합하다.
항공, 우주, 군사 분야에선 COBOL 언어를 주로 씁니다.(우리나라에 경우 K-9 자주포가 대표적)
발생사례
Person a, b;
a = new Person("이몽룡");
b = new Person("성춘향");
b = a; // 이 시점 b가 가리키던 객체는 가비지가 된다.
위 내용까지가 학부에서 집고 넘어가는 내용입니다.
이후 교수님의 재량으로 추가적인 부분을 집고 넘어가실텐데
아래에 대한 내용을 공부하실 겁니다.
가비지 컬렉션을 C++처럼 메소드를 통해 원하는 시점에 작동하도록할 수 있는가?
가비지 컬렉션을 내부적으로 어떻게 구현했길래 가능한 걸까?
바로 다음 글은 [너만 모르는 가비지 컬렉션]으로 넘어가겠습니다.