1. 해당 메소드에 해당하는 코드 조각을 메모리 영역의 메소드 영역에 배치하여 다음에 해당 메소드를 호출할 때 해당 메소드를 사용할 수 있도록 합니다.
2. 실행 프로세스 중에 JVM은 메서드 호출 순서와 메서드에 있는 명령문의 실행 순서에 따라 메서드의 코드 블록을 메모리의 스택 공간에 푸시합니다. 위에서 아래로, 위에서 아래로) 내부 및 외부) 스택 팝핑 및 실행 작업을 수행합니다
가 호출될 때 처음, 해당 메소드는 클래스 로더를 통해 로드됩니다. 코드 블록은 메모리의 메소드 영역에 로드됩니다
메서드가 호출될 때마다 스택 푸시 프로세스와 동일합니다. (스택이 팝되지 않으면 어느 시점에서 스택 오버플로 예외가 발생합니다)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.2 show1() 메서드를 사용하면 show1() 메서드가 스택에 푸시되고 show1 메서드에 있는 명령문이 실행됩니다
3.3 실행 show1 메서드에 있는 명령문을 실행할 때 show2()가 실행되면 show1 메서드가 일시 중지된 다음 show2 메서드를 스택에 푸시한 다음 show2 메서드의 내용을 실행합니다. show1 메소드에서 show2 메소드가 호출된 위치로 반환됩니다. 반환 값에 대한 할당 연산이 없으면 다음 명령문이 실행됩니다.
3.5 show1 메소드를 실행한 후 show1 메서드는 스택을 팝하고 show1 메서드가 호출된 위치로 돌아온 후 show1 메서드 호출과 다음 명령문을 실행합니다
4 실행 중인 샘플 코드의 스크린샷
위 내용은 메모리에서 Java 메소드 호출의 실행 프로세스는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!