자바 가상 컴퓨터 스 택 운영 지식 총화

운행 원리
1.서로 다른 스 레 드 에 포 함 된 스 택 프레임 은 서로 참조 할 수 없습니다.
2.현재 방법 이 다른 방법 을 호출 하면 방법 이 돌아 올 때 현재 스 택 프레임 은 이 방법의 실행 결 과 를 현재 스 택 바늘 에 전달 하고 가상 기 회 는 현재 스 택 프레임 을 버 려 서 이전 스 택 프레임 을 현재 스 택 프레임 으로 다시 만 듭 니 다.
3.자바 방법 은 두 가지 함수 반환 방식 이 있 는데 하 나 는 정상 적 인 함수 반환 이 고 return 명령 을 사용 합 니 다.다른 하 나 는 이상 을 던 지 는 것 이다.어떤 방식 을 사용 하 든 스 택 프레임 이 팝 업 될 수 있 습 니 다.
실례

public class StackFrameTest {
    public static void main(String[] args) {
        StackFrameTest stackFrameTest = new StackFrameTest();
        stackFrameTest.method1();
    }
 
    public void method1(){
        System.out.println("method1()    ");
        method2();
        System.out.println("method1()    ");
    }
    public int method2(){
        System.out.println("method2()    ");
        int i = 100;
        int m = (int)method3();
        System.out.println("method2()    ");
        return i + m;
    }
    public double method3(){
        System.out.println("method3()    ");
        double j = 3.1;
        System.out.println("method3()    ");
        return j;
    }
}
지식 포인트 확장:
1.자바 스 택 은 가상 스 택 이 라 고도 부 릅 니 다.즉,우리 가 흔히 말 하 는 스 택 입 니 다.자바 스 택 은 자바 방법 으로 실 행 된 메모리 모델 입 니 다.
2.자바 스 택 에 저 장 된 것 은 스 택 프레임 입 니 다.스 택 프레임 마다 호출 되 는 방법 에 대응 합 니 다.스 택 프레임 에는 부분 변수 표(Local Variables),작업 스 택(Operand Stack),현재 방법 에 속 하 는 클래스 의 운행 상 당량 탱크(운행 상 당량 탱크 의 개념 은 방법 구역 부분 에서 회담)의 인용(Reference to runtime constant pool)을 포함 합 니 다.방법 은 주소(Return Address)와 추가 정 보 를 되 돌려 줍 니 다.스 레 드 가 하나의 방법 을 실행 할 때 이에 대응 하 는 스 택 프레임 을 만 들 고 스 택 프레임 을 스 택 합 니 다.방법 이 실 행 된 후에 스 택 프레임 을 스 택 에서 꺼 냅 니 다.그래서 방법 에 대해 서 는 자원 회수 설 이 존재 하지 않 는 다.
3.부분 변수 표 는 말 그대로 설명 할 필요 가 없 을 것 입 니 다.그 역할 을 알 고 계 시 겠 죠?방법 에 있 는 부분 변 수 를 저장 하 는 것 입 니 다.기본 데이터 형식의 변 수 는 그 값 을 직접 저장 하고 인용 유형의 변 수 는 대상 을 가리 키 는 인용 을 저장 합 니 다.부분 변수 표 의 크기 는 컴 파일 러 에서 크기 를 확인 할 수 있 기 때문에 프로그램 이 실행 되 는 동안 부분 변수 표 의 크기 는 변 하지 않 습 니 다.
4.스 택 을 조작 할 때 데이터 구조 에서 스 택 을 배 웠 을 것 입 니 다.스 택 의 친 구 는 표현 식 의 값 을 구 하 는 문제 가 낯 설 지 않 을 것 입 니 다.스 택 의 가장 전형 적 인 응용 은 표현 식 에 대한 값 을 구 하 는 것 입 니 다.하나의 스 레 드 실행 방법 을 생각 하 는 과정 에서 사실은 문 구 를 계속 집행 하 는 과정 이 고 결국은 계산 하 는 과정 이다.따라서 프로그램의 모든 계산 과정 은 조작 수 에 의 한 것 이 라 고 할 수 있다.
이상 은 자바 가상 머 신 에서 스 택 의 운영 지식 을 정리 한 상세 한 내용 입 니 다.자바 가상 머 신 에서 스 택 의 운영 원리 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 하 시기 바 랍 니 다!

좋은 웹페이지 즐겨찾기