작동 원리
1. 서로 다른 스레드에 포함된 스택 프레임은 서로 참조할 수 없습니다.
2. 현재 메서드가 다른 메서드를 호출하는 경우 메서드가 반환되면 현재 스택 프레임은 이 메서드의 실행 결과를 현재 스택 바늘로 반환하고 가상 머신은 현재 스택 프레임을 삭제하여 이전 스택을 만듭니다. 프레임이 다시 현재 스택 프레임이 됩니다.
3. Java 메서드에는 함수를 반환하는 두 가지 방법이 있습니다.
하나는 일반적인 함수 반환이고, 다른 하나는 예외를 발생시키는 것입니다. 어떤 방법을 사용하든 스택 프레임이 팝됩니다.
인스턴스
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; } }
위 내용은 Java 가상 머신의 스택 작동 원리 분석 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!