2012-03-13 6 views
2

가능한 중복 : 클래스가 JVM에 의해로드 될 때 정확하게 (메모리 관리의 측면에서) 어떻게 이해하십니까
static allocation in java - heap, stack and permanent generation메모리 할당

. 구체적으로 :

  • 로드 중/배치되는 실제 클래스 바이트 코드는 어느 부분입니까?
  • 정적 변수는 어느 부분에로드/배치됩니까?
  • 로드/배치되는 다른 변수와 메서드는 어느 부분입니까?
+0

이 질문에 대한 답변입니다 [here] (http://stackoverflow.com/a/3849819/964592). –

답변

0

먼저 클래스를 포함하는 바이트 배열이 PermGen에로드됩니다.

그런 다음 클래스 바이트 배열이 구문 분석되고 일부 구문 분석 된 정보가 PermGen에도 배치됩니다.

그런 다음 클래스의 문자열이 내부화되고 PermGen에 배치됩니다.

클래스가 초기화되면 모든 정적 변수 인스턴스가 힙에 배치됩니다.

함수가 지정된 임계 값보다 자주 호출되면 JIT로 컴파일 된 함수의 코드가 PermGen에도 배치됩니다.

모두 AFAIK가되어야하지만 JVM 개발자는 아닙니다.