스택 메모리, 힙 메모리, 메소드 영역 간의 관계 분석

王林
풀어 주다: 2020-07-30 16:37:28
앞으로
2435명이 탐색했습니다.

스택 메모리, 힙 메모리, 메소드 영역 간의 관계 분석

먼저 코드를 살펴보겠습니다:

(권장 튜토리얼: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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!