스택 메모리, 힙 메모리, 메소드 영역 간의 관계 분석
Jul 30, 2020 pm 04:37 PM먼저 코드를 살펴보겠습니다:
(권장 튜토리얼: java 입문 튜토리얼)
package cn.liang.jvm; public class SimpleHeap { private int id; public SimpleHeap(int id){ this.id = id; } public void show(){ System.out.println("My ID is " + id); } public static void main(String[] args) { SimpleHeap s1 = new SimpleHeap(1); SimpleHeap s2 = new SimpleHeap(2); s1.show(); s2.show(); } }
관계 다이어그램:
(추천 비디오 튜토리얼: java 비디오 튜토리얼)
-
SimpleHeap 인스턴스 자체는 힙 메모리에 할당됨
SimpleHeap 클래스를 설명하는 정보는 메소드 영역에 저장됨
main() 함수의 s1 및 s2 지역 변수는 Java 스택 메모리에 저장되며 두 개를 가리킴 힙 메모리 인스턴스
힙 영역:
1. 모든 개체가 저장되며 각 개체에는 해당 클래스에 대한 정보가 포함됩니다. (클래스의 목적은 작업 명령을 얻는 것입니다.)
2. JVM에는 모든 스레드가 공유하는 힙 영역(힙)이 하나만 있습니다. 기본 유형 및 객체 참조는 힙에 저장되지 않으며 객체 자체만 저장됩니다.
스택 영역:
1. 각 스레드에는 기본 데이터 유형의 객체와 사용자 정의 객체에 대한 참조만 스택에 저장됩니다.
2. 스레드 스택의 데이터(기본 유형 및 객체 참조)는 비공개이며 다른 스택에서 액세스할 수 없습니다.
3. 스택은 기본형 변수 영역, 실행 환경 컨텍스트, 작업 명령 영역(저장소 작업 명령)의 세 부분으로 나뉩니다.
메서드 영역:
1. 정적 영역이라고도 하며 힙과 마찬가지로 모든 스레드에서 공유됩니다. 메소드 영역에는 모든 클래스 및 정적 변수가 포함됩니다.
2. 메소드 영역에는 클래스 및 정적 변수와 같이 전체 프로그램에서 항상 고유한 요소가 포함됩니다.
위 내용은 스택 메모리, 힙 메모리, 메소드 영역 간의 관계 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

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

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제









