Java 인터뷰 메모리 모델

王林
풀어 주다: 2020-12-08 15:30:13
앞으로
2049명이 탐색했습니다.

Java 인터뷰 메모리 모델

SF 인터뷰 질문: Java 메모리 모델을 이해하십니까?

360 인터뷰 질문: 프로그램 메모리 분배, 다섯 부분

(학습 영상 공유: java 교육 영상)

1. Java 프로그램 실행 과정

Java 인터뷰 메모리 모델

Java 소스 코드 파일(.java 접미사) Java 컴파일러에 의해 바이트코드 파일(.class 접미사)로 컴파일되며, JVM의 클래스 로더는 각 클래스의 바이트코드 파일을 로드한 후 JVM 실행 엔진으로 전달되어 실행됩니다. . 전체 프로그램 실행 과정에서 JVM은 프로그램 실행 중에 필요한 데이터 및 관련 정보를 저장하는 공간을 사용하게 되는데, 이 공간을 일반적으로 JVM 메모리라고 부르기도 합니다. 따라서 우리가 자바에서 자주 이야기하는 메모리 관리는 이 공간을 관리하는 것(메모리 공간을 할당하고 회수하는 방법)이다.

(더 관련 있는 면접 질문 추천 : java 면접 질문 및 답변)

2. 런타임 데이터 영역에는 어떤 부분이 포함되나요?

Java 인터뷰 메모리 모델

메소드 영역(Method Area) :

메서드 영역은 각각 스레드가 공유하는 메모리 영역은 클래스 정보, 상수, 정적 변수, JIT(Just-In-Time) 컴파일러로 컴파일된 코드 등 가상 머신에서 로드한 데이터를 저장하는 데 사용됩니다. 메서드 영역이 메모리 할당 요구 사항을 충족할 수 없으면 OutOfMemoryError 예외가 발생합니다.
메서드 영역에는 클래스 버전, 필드, 메서드, 인터페이스 및 상수 풀이 저장됩니다. 상수 풀은 리터럴 및 기호 참조를 저장합니다. 기호 참조에는 1. 클래스의 정규화된 이름, 2. 필드 이름 및 속성, 3. 메서드 이름 및 속성이 포함됩니다.

JVM 힙(Java Heap):

Java 힙은 스레드가 공유하는 메모리 영역이기도 하며, 가상 머신이 시작될 때 생성되며, 주로 Java 가상 머신이 관리하는 메모리 중 가장 큰 부분입니다. 객체 인스턴스를 저장하는 데 사용되며, 거의 모든 객체 인스턴스가 여기에 메모리를 할당합니다. Java 힙은 가비지 수집기에 의해 관리되는 주요 영역이므로 힙에 완료할 메모리가 없으면 종종 GC 힙이라고 합니다. 인스턴스 할당이 실패하고 힙을 확장할 수 없으면 OutOfMemoryError 예외가 발생합니다.

프로그램 카운터 레지스터:

바이트코드 인터프리터가 작동 중일 때 이 카운터의 값을 변경하여 분기, 루프, 점프, 예외 처리 등 실행해야 하는 다음 바이트코드 명령어를 선택합니다. 스레드 복구를 완료하려면 이 카운터에 의존해야 하기 때문입니다.
멀티스레딩에서는 스레드 전환 후 올바른 실행 위치를 복원하기 위해 각 스레드가 독립적인 프로그램 카운터를 가져야 하며, 각 스레드는 서로 영향을 주지 않으며 독립적으로 저장됩니다. .

가상 머신 스택(Java Virtual Machine Stacks):

Java Virtual Machine 스택도 스레드 전용이며 수명 주기는 스레드와 동일합니다. 가상 머신 스택은 Java 메소드 실행의 메모리 모델을 설명합니다. 각 메소드가 실행될 때 스택 프레임이 생성되어 지역 변수 테이블, 피연산자 스택, 동적 연결 목록, 메소드 종료 정보 등을 저장합니다. 각 메소드의 호출부터 실행 완료까지의 과정은 스택 프레임을 가상머신 스택에 푸시(push)하고 팝아웃(pop out)하는 과정에 해당한다.

네이티브 메서드 스택:

네이티브 메서드 스택은 스레드 전용 데이터 영역에 속합니다. 이 부분은 주로 가상 머신에서 사용하는 네이티브 메서드와 관련되어 있으므로 이 영역에 신경 쓸 필요가 없습니다. .

(관련 추천: Java 입문 튜토리얼)

위 내용은 Java 인터뷰 메모리 모델의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿