>  기사  >  Java  >  Java 메모리 관리에서 젊은 세대, 노년층, 영구 세대가 어떻게 함께 작업합니까?

Java 메모리 관리에서 젊은 세대, 노년층, 영구 세대가 어떻게 함께 작업합니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-02 17:46:29615검색

How do the Young, Old, and Permanent Generations Work Together in Java Memory Management?

Java 메모리 관리: Young, Old, Permanent 세대 이해

Java의 메모리 관리 용어에서 힙은 세 가지 기본 세대로 나뉩니다. : 젊고, 늙고, 영구적입니다. 각 세대는 특정 목적을 수행하며 다른 세대와 동적으로 상호 작용합니다.

젊은 세대

젊은 세대는 새로운 객체가 처음 할당되는 힙 영역입니다. 또한 Eden과 Survivor라는 두 개의 하위 공간으로 나뉩니다. 대부분의 할당은 Eden 공간에서 발생합니다. Eden 공간의 객체가 하나 이상의 가비지 수집 주기에서 살아남으면 Survivor 공간으로 승격됩니다.

Old Generation

Old Generation이 주요 저장 영역입니다. 수명이 긴 개체의 경우. 생존자 공간의 여러 가비지 수집에서 살아남은 개체는 이전 세대로 승격됩니다. Old Generation은 Young Generation에 맞지 않는 큰 객체를 저장하는 역할도 담당합니다.

Permanent Generation(Non-Heap)

이름과 달리 Permanent 생성은 Oracle JVM의 힙의 일부가 아닙니다. 이는 주로 클래스 정의, 메타데이터 및 공유 상수 데이터를 위해 예약된 별도의 전용 공간입니다. Java 6 이하에서는 인턴된 문자열도 영구 세대에 저장되었으나 Java 7에서는 이것이 변경되었습니다.

상호작용과 관계

3세대는 다음과 같이 상호작용합니다. :

  • 객체가 할당되면 Eden 공간에 배치됩니다.
  • 객체가 Eden에서 하나 이상의 가비지 수집을 거쳐 살아남으면 Survivor 공간으로 승격됩니다.
  • Survivor 공간에서 충분히 오래 살아남은 객체는 Old Generation으로 승격됩니다.
  • Old Generation의 객체는 더 이상 도달할 수 없거나 전체 가비지 수집이 발생할 때까지 그곳에 남아 있습니다.
  • 영구 세대는 애플리케이션 수명 동안 로드된 모든 클래스에 대한 클래스 정의와 메타데이터를 저장합니다.

위 내용은 Java 메모리 관리에서 젊은 세대, 노년층, 영구 세대가 어떻게 함께 작업합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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