자바 프로그램 실행 과정 및 메모리 메커니즘 상세 설명
Java 프로그램 실행 과정
메모리 메커니즘
3 단계 에서 우 리 는 바이트 코드 가 클래스 로 더 에 의 해 메모리 에 불 러 올 것 이 라 고 말 했 습 니 다.그러면 불 러 온 후에 JVM 은 어떻게 메모리 관 리 를 합 니까?
보통 메모 리 를 불 러 온 후에 자바 프로그램 이 사용 하 는 메모 리 는 크게 3 개의 영역 으로 나 뉜 다.쌓 기(hep),스 택(stack)과 방법 구역(methodarea)이다.
더미:new 에서 나 온 물건 을 저장 합 니 다.
스 택:부분 변 수 를 저장 합 니 다.
방법 구역:유형 정보,필드 정보,상수 탱크(constant pool),정적 변수,방법 정보 등.
public final class Student extends Object implements Serializable
{
// 1.
// 2.
private String name;
private int score;
// 3.
public final int id = 0;
public final String gender = "male";
// 4.
public static int a = 0;
// 5.
public int getid()
{
return id;
}}
PC 레지스터:실행 할 명령 을 저장 하 는 주소 입 니 다.(기계 의 머리 가 잘 돌아 가지 않 기 때문에 그 가 어디 까지 실 행 했 는 지 기억 할 수 있 도록 전문 적 인 구역 이 필요 하 다.그렇지 않 으 면 잊 어 버 릴 것 이다)로 컬 방법 스 택:JVM 스 택 이 발휘 하 는 역할 과 매우 비슷 합 니 다.그 차 이 는 JVM 스 택 이 자바 방법 으로 서 비 스 를 제공 하 는 것 에 불과 하고 로 컬 방법 스 택 은 Native 방법 으로 서 비 스 를 제공 합 니 다.어떤 가상 컴퓨터(예 를 들 어 Sun HotSpot 가상 컴퓨터)는 심지어 로 컬 방법 스 택 과 가상 컴퓨터 스 택 을 하나 로 합 친다.
모든 스 레 드 는 각각 독립 된(가상 컴퓨터)스 택,PC 레지스터 와 로 컬 방법 스 택 을 가지 고 있 습 니 다.쌓 기와 방법 구역 은 모든 라인 이 공유 된다.
마지막 으로 자바 프로그램 이 실 행 될 때 메모리 의 변 화 를 작은 예 로 이해 합 니 다.
public class Person
{
int id; int age; Person(int id1, int age1)
{
id = id1; age = age1;
}
public static void main(String[] args)
{
Person Tom = new Person(1, 25);
}
}
우선,stack 에 메모 리 를 신 청 했 습 니 다.이 메모리 구역 의 이름 은 Tom 입 니 다.이 구역 에 저 장 된 내용 은 null 입 니 다.이 어 Person 의 구조 방법 을 호출 하고 방법의 매개 변 수 는 부분 변수 에 속 하기 때문에 stack 에 각각 id1 과 age 1 을 저장 합 니 다.
구조 방법 을 통 해 Person 의 대상 이 새로 나 올 수 있 습 니 다.이 대상 은 구성원 변 수 를 연결 하여 힙 에 저 장 됩 니 다.구성원 변수 id 와 age 의 값 은 stack 에 저 장 된 부분 변수 id 1 과 age 1 에 의 해 부 여 됩 니 다.
마지막 으로 이 대상 의 인용 값(주소 와 유사)을 Tom 에 전달 하고 인용 값 을 통 해 이 대상 을 찾 을 수 있 습 니 다.
(메모:stack 에 있 는 id1 과 age 1 은 구조 적 방법 호출 이 끝나 면서 사라 집 니 다.여 기 는 전 과정 을 잘 표현 하기 위해 그림 에 보관 합 니 다.)
창고 와 더미 에 대한 기타 지식
자바 프로그램 실행 과정 및 메모리 메커니즘 에 대한 자세 한 설명 은 여기까지 입 니 다.더 많은 자바 프로그램 실행 과정 및 메모리 메커니즘 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!
자바 프로그램 실행 과정 및 메모리 메커니즘 에 대한 자세 한 설명 은 여기까지 입 니 다.더 많은 자바 프로그램 실행 과정 및 메모리 메커니즘 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.