Java 가상 머신 사양은 다양한 하드웨어와 운영 체제의 메모리 차이를 보호하여 크로스 플랫폼 메모리 액세스 효과를 달성하는 Java 메모리 모델을 정의합니다.
더 나은 실행 성능을 얻기 위해 Java 메모리 모델은 실행 엔진이 프로세서의 특정 캐시나 캐시를 사용하여 주 메모리(RAM과 비교할 수 있지만 메모리의 일부)와 상호 작용하는 것을 제한하지 않습니다. 가상 머신 메모리) 작업 메모리(캐시와 비교할 수 있으며 가상 머신 메모리의 일부이기도 함)는 스레드 전용입니다.
작업 메모리와 메인 메모리의 구분은 Java 힙, 스택, 메소드 영역의 구분과 다릅니다. 둘은 거의 일치하지 않는다면 메인 메모리는 인스턴스 데이터 부분으로 이해될 수 있습니다. 힙에 있고 작업 메모리는 스택 영역의 일부에 해당합니다
여기서 캐시의 정의는 너무 광범위하여 모호성을 유발할 수 있습니다. 이거 좀 보세요ㅋㅋㅋ
Java 가상 머신 사양은 다양한 하드웨어와 운영 체제의 메모리 차이를 보호하여 크로스 플랫폼 메모리 액세스 효과를 달성하는 Java 메모리 모델을 정의합니다.
더 나은 실행 성능을 얻기 위해 Java 메모리 모델은 실행 엔진이 프로세서의 특정 캐시나 캐시를 사용하여 주 메모리(RAM과 비교할 수 있지만 메모리의 일부)와 상호 작용하는 것을 제한하지 않습니다. 가상 머신 메모리) 작업 메모리(캐시와 비교할 수 있으며 가상 머신 메모리의 일부이기도 함)는 스레드 전용입니다.
작업 메모리와 메인 메모리의 구분은 Java 힙, 스택, 메소드 영역의 구분과 다릅니다. 둘은 거의 일치하지 않는다면 메인 메모리는 인스턴스 데이터 부분으로 이해될 수 있습니다. 힙에 있고 작업 메모리는 스택 영역의 일부에 해당합니다
-----인용문<<JAVA 가상 머신에 대한 깊은 이해>>
스레드에는 스레드 스택이 있고 메서드 호출은 스택 프레임입니다. 스택 프레임은 로컬 변수 영역, 피연산자 스택 및 프레임 데이터 영역으로 구분됩니다.
작업 메모리는 로컬 변수 영역에 있는 데이터라고 이해하시면 됩니다.
@wlingxiao는 "JAVA 가상 머신에 대한 심층적인 이해", 제2판, 12.3.1 주 메모리 및 작업 메모리에서 말했습니다.