>  기사  >  Java  >  메모리에서 Java 메소드 호출의 실행 프로세스는 무엇입니까?

메모리에서 Java 메소드 호출의 실행 프로세스는 무엇입니까?

PHPz
PHPz앞으로
2023-04-18 17:13:031685검색

1. 전제조건

1. 스택 메모리 회로도

메모리에서 Java 메소드 호출의 실행 프로세스는 무엇입니까?

2. JVM은 어떻게 메소드를 실행하나요???

  • 1. 해당 메소드에 해당하는 코드 조각을 메모리 영역의 메소드 영역에 배치하여 다음에 해당 메소드를 호출할 때 해당 메소드를 사용할 수 있도록 합니다.

  • 2. 실행 프로세스 중에 JVM은 메서드 호출 순서와 메서드에 있는 명령문의 실행 순서에 따라 메서드의 코드 블록을 메모리의 스택 공간에 푸시합니다. 위에서 아래로, 위에서 아래로) 내부 및 외부) 스택 팝핑 및 실행 작업을 수행합니다

2. 호출(실행) 프로세스

1. 메소드 호출 규칙

메소드

가 호출될 때 처음, 해당 메소드는 클래스 로더를 통해 로드됩니다. 코드 블록은 메모리의 메소드 영역에 로드됩니다

메서드가 호출될 때마다 스택 푸시 프로세스

와 동일합니다. (스택이 팝되지 않으면 어느 시점에서 스택 오버플로 예외가 발생합니다)2. 샘플 코드

public class Practice {
    public static void main(String[] args) {
        System.out.println("main 开始");
        show1();
        System.out.println("main 结束");
    }
    public static void show1(){
        System.out.println("show1 开始");
        show2();
        System.out.println("show1 结束");
    }
    public static void show2(){
        System.out.println("show2 开始");
        System.out.println("show2 结束");
    }
}

3. 의 전체 프로그램

3.1 JVM은 자동으로 메인 메소드를 호출하므로 메인 메소드가 먼저 스택에 푸시된 다음 메인 메소드의 명령문을 순서대로 실행합니다

메모리에서 Java 메소드 호출의 실행 프로세스는 무엇입니까?3.2 show1() 메서드를 사용하면 show1() 메서드가 스택에 푸시되고 show1 메서드에 있는 명령문이 실행됩니다

메모리에서 Java 메소드 호출의 실행 프로세스는 무엇입니까?3.3 실행 show1 메서드에 있는 명령문을 실행할 때 show2()가 실행되면 show1 메서드가 일시 중지된 다음 show2 메서드를 스택에 푸시한 다음 show2 메서드의 내용을 실행합니다. show1 메소드에서 show2 메소드가 호출된 위치로 반환됩니다. 반환 값에 대한 할당 연산이 없으면 다음 명령문이 실행됩니다.

메모리에서 Java 메소드 호출의 실행 프로세스는 무엇입니까?3.5 show1 메소드를 실행한 후 show1 메서드는 스택을 팝하고 show1 메서드가 호출된 위치로 돌아온 후 show1 메서드 호출과 다음 명령문을 실행합니다

4 실행 중인 샘플 코드의 스크린샷메모리에서 Java 메소드 호출의 실행 프로세스는 무엇입니까?

위 내용은 메모리에서 Java 메소드 호출의 실행 프로세스는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제