GC는 가비지 수집(Gabage Collection)을 의미합니다. 메모리 처리는 프로그래머가 잊어버리거나 잘못된 메모리 재활용으로 인해 프로그램이나 시스템이 불안정해지거나 심지어 충돌이 발생할 수 있습니다.
Java에서 제공하는 GC 함수는 객체가 범위를 초과하는지 자동으로 감지하여 메모리를 자동으로 회수하는 목적을 달성할 수 있습니다. Java 언어에서는 할당된 메모리를 해제하는 명시적인 작업 방법을 제공하지 않습니다. (추천 학습: java 과정 )
GC는 가비지 수집기입니다. Java 프로그래머는 메모리 관리에 대해 걱정할 필요가 없습니다. 가비지 수집기가 메모리 관리를 자동으로 처리하기 때문입니다. 가비지 수집을 요청하려면 다음 메소드 중 하나를 호출할 수 있습니다.
System.gc() Runtime.getRuntime().gc()
Java는 C++에서 개발되었습니다.
C++에서 번거롭고 오류가 발생하기 쉬운 부분을 버립니다. 그 중 하나가 바로 이 GC입니다.
C/C++ 프로그램을 작성할 때 프로그래머는 변수를 정의합니다. 이는 값을 저장하기 위해 메모리에서 해당 공간을 여는 것을 의미합니다. 메모리가 아무리 크더라도 제한되어 있으므로 프로그램이 더 이상 특정 변수를 사용할 필요가 없으면 다른 변수가 사용할 수 있도록 이 메모리 공간 리소스를 해제해야 합니다.
C/C++에서 쓸모없는 가변 메모리 공간을 해제하는 문제는 프로그래머가 직접 해결해야 합니다. 즉, 프로그래머가 변수가 쓸모없다고 생각하면 변수가 차지하는 메모리를 해제하는 코드를 작성해야 합니다. 이러한 방식으로 메모리 누수와 리소스 낭비를 최대한 피할 수 있습니다.
하지만 이것은 분명히 매우 번거로운 작업입니다. 프로그램이 상대적으로 크고 변수가 많을 때 프로그래머들은 메모리를 해제하거나, 해제하면 안되는 메모리를 해제하는 것을 잊어버리는 경우가 많습니다.
그리고 개발 관점에서 메모리 해제는 프로그래머가 걱정해야 할 문제가 아닙니다. 프로그래머가 해야 할 일은 메모리 할당과 해제에 많은 에너지를 소비하는 대신 필요한 프로그램 기능을 구현하는 것이어야 합니다.
Java의 GC를 사용하면 프로그래머는 메모리 공간을 수동으로 해제할 필요가 없습니다. JVM(Java Virtual Machine)은 메모리 자원이 부족하다는 사실을 발견하면 쓸모 없는 변수가 차지하는 메모리 공간을 자동으로 정리합니다. 물론 필요한 경우 프로그래머는 Java 프로그램에서 System.gc()를 명시적으로 사용하여 즉각적인 메모리 정리를 강제할 수 있습니다.
명시적인 선언은 힙 메모리 전체 스캔, 즉 전체 GC를 수행하기 위한 것이므로 모든 활동을 중지해야 합니다(Stop The World Collection). 애플리케이션이 이를 견딜 수 있습니까?
System.gc() 호출 표시는 가상 머신에 대한 제안일 뿐이며 System.gc()는 우선 순위가 매우 낮은 스레드에서 실행되기 때문에 실행되지 않을 수 있습니다.
위 내용은 자바 GC가 뭐죠?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!