>  기사  >  Java  >  자바에서 gc란 무엇인가?

자바에서 gc란 무엇인가?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼원래의
2019-11-11 14:40:524172검색

자바에서 gc란 무엇인가?

GC는 가비지 수집(Gabage Collection)을 의미합니다. 메모리 처리는 프로그래머가 잊어버리거나 잘못된 메모리 재활용으로 인해 프로그램이나 시스템이 불안정해지거나 심지어 충돌이 발생할 수 있습니다.

Java에서 제공하는 GC 기능은 자동으로 메모리를 회수하는 목적을 달성하기 위해 객체가 범위를 초과하는지 자동으로 감지할 수 있습니다. 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()가 우선 순위가 매우 낮은 스레드에서 실행되기 때문에 실행되지 않을 수 있음을 보여줍니다.

php 중국어 웹사이트, 수많은 무료 Java 입문 튜토리얼, 온라인 학습을 환영합니다!

위 내용은 자바에서 gc란 무엇인가?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.