이 기사는 JVM 메모리 모델에 대한 사전 이해를 제공합니다. 이는 특정 참조 가치가 있습니다. 도움이 필요한 모든 사람에게 도움이 되기를 바랍니다.
컴퓨터 메모리 모델
프로그램이 실행될 때 CPU는 메인 메모리에 액세스하여 데이터를 얻습니다. 그러나 CPU의 급속한 발전으로 CPU 액세스 속도가 점점 빨라지고 있으며, 하드웨어도 점점 빨라지고 있습니다. CPU의 조건을 충족할 수 없습니다. 메모리에는 캐시 메커니즘이 있습니다. CPU마다 해당하는 다중 레벨(보통 3개) 캐시가 있습니다. 레벨 캐시 - 3단계 캐시 - 메인 메모리, 액세스 속도를 향상시키지만 동시에 서로 다른 CPU의 캐시에 있는 데이터가 다를 수 있으므로 CPU와 메인 메모리가 데이터 동기화를 달성할 수 없습니다
JAVA 메모리 모델
JAVA 메모리 모델(JMM)은 컴퓨터와 일치합니다. 메모리 모델은 메모리 장벽을 설정하여 다양한 하드웨어 및 운영 체제의 액세스 차이를 보호하여 Java 프로그램이 달성할 수 있도록 보장합니다. 다양한 플랫폼에서 일관된 메모리 액세스 효과.
다섯 가지 주요 메모리 영역
1. 프로그램 카운터
각 스레드에는 프로그램 카운터가 있습니다. 프로그램 카운터는 현재 스레드의 프로그램 바이트 코드 라인 번호를 식별하는 데 사용됩니다. , 프로그램 카운터가 저장합니다. 이는 바이트코드 파일의 행 번호입니다. 기본 메소드가 실행 중일 때 프로그램 카운터의 내용은 비어 있습니다. 다른 스레드에는 스레드에 비공개인 고유한 프로그램 카운터가 있습니다
2 .JAVA 가상 머신 스택
각 메소드 로컬 변수 테이블, 작업 스택, 동적 링크, 메소드 종료 및 기타 정보 저장을 포함하여 런타임 중에 스택 프레임이 생성됩니다. 각 메서드가 호출되는 과정은 가상 머신 스택의 스택 프레임이 스택에 푸시된 후 스택 밖으로 튀어나오는 과정에 해당합니다.
JAVA 가상 머신 스택은 주로 메소드 매개변수, 메소드 내부의 로컬 변수, 컴파일 중에 로드된 데이터 유형 및 스레드에 비공개인 반환 주소 유형을 저장하는 데 사용됩니다
3 로컬 메소드 스택
및 JAVA. 가상 머신 스택 기능은 비슷하지만 차이점은 후자가 가상 머신이 실행하는 자바 메소드(바이트코드)를 서비스하고, 로컬 메소드 스택은 가상 머신이 호출하는 네이티브 메소드, 즉 기본 서비스를 서비스한다는 점이다. 일반적으로 C 또는 C++로 작성됩니다
4 .Heap
힙은 가상 머신이 로드하는 메모리 영역 중 가장 큰 부분으로 객체 인스턴스를 저장하는 데 사용됩니다. 논리 주소가 연속적인 한. 신세대와 구세대로 나누어지는데, 신세대와 구세대의 비율은 1:2입니다. (-XX:NewRatio 매개변수로 지정 가능)
5 메소드 영역
이라고도 합니다. 가상 머신이 로드한 클래스 정보, 상수 및 정적 변수를 저장하는 데 사용되는 영구 생성은 스레드의 공유 영역이며 JDK8 이후에 폐기되었으며 대신 메타스페이스가 사용되었습니다
권장 튜토리얼: java 튜토리얼
위 내용은 JVM 메모리 모델이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.
