1
방법이 있으면이 링크 (first link, second link 및 third link)에서 이해할 수있는 스택 블록이 만들어집니다. 그러나, 내가 혼동스러워하는 것은 작업과 int에 관한 것입니다. 그들은 스택의 맨 위로 갈 것인가, 아니면 내가이 web site에서 int의 연산에 대해서 읽었 기 때문일까? "value1과 value2는 int 유형이어야하며 값은 피연산자 스택에서 팝됩니다. 결과는 value1 + value2입니다. 결과는 피연산자 스택에 푸시됩니다."작업 및 변수가 스택 맨 위에 만들어 집니까?
public static int bar (int x1, int x2, int x3, int x4, int x5, int x6, int x7, int x8, int x9, int x10, int x11, int x12, int x13, int x14, int x15, int x16, int x17, int x18, int x19, int x20){
int y = x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12+x13+x14+x15+x16+x17+x18+x19+x20;
return y;
}
이 술집() 스택 블록이 가장 아래로 생성된다는 것을 의미 않고, 다음 (19) 동작은 스택 등의 위에있는 추가
I 코드의 유형이 가정 잘 20 정수로? "y"변수를 반환하면 bar() 메서드 스택 블록이 팝됩니까? 제발 고쳐주세요. 고맙습니다.
감사합니다. 이것이 "x1 + x2"가 add() 스택 블록으로 간주되어 bar() 스택 블록 위에 푸시되었음을 의미합니까? 20 값을 가지고 있기 때문에, 나는 19 개의 add() 스택 블록이 있다는 것을 의미합니까? 또는 그들은 어느 시점에 갑자기 나타 납니까? –
'스택 블록'이 무슨 의미인지 모르겠지만이 경우 스택에 두 개 이상의 항목이 없다는 의사 바이트 코드를 볼 수 있습니다. – EJP
감사합니다. 늦은 답변 죄송합니다. 나는 당신이 당신의 대답을 편집 한 후에 당신이 이미 의미했던 것을 이해합니다. 또한 Activation Record Stack에 대한이 링크 (http://web.engr.oregonstate.edu/~sinisa/courses/OSU/CS261/CS261_Textbook/Chapter06.pdf)를 참조했습니다. 그것은 당신이 옳았 던 것과 유사합니다. –