개발새발
스택 본문
1(넣기) → 2(넣기) → 3(넣기) → 3(빼기) → 2(빼기)- > 1(빼기)
- 후입 선출(LIFO, Last In First Out)
- 여기서 가장 마지막에 넣은 3번이 가장 먼저 나온다. 이렇게 나중에 넣은 것이 가장 먼저 나오는 것을 후입 선출이라 하 고, 이런 자료 구조를 스택이라 한다.
package memory;
public class JavaMemoryMain1 {
public static void main(String[] args) {
System.out.println("main start");
method1(10);
System.out.println("main end");
}
static void method1(int m1) {
System.out.println("method1 start");
int cal = m1 * 2;
method2(cal);
System.out.println("method1 end");
}
static void method2(int m2) {
System.out.println("method2 start");
System.out.println("method2 end");
}
}
//실행결과
main start
method1 start
method2 start
method2 end
method1 end
main end
정리
- 자바는 스택 영역을 사용해서 메서드 호출과 지역 변수(매개변수 포함)를 관리한다.
- 메서드를 계속 호출하면 스택 프레임이 계속 쌓인다.
- 지역 변수(매개변수 포함)는 스택 영역에서 관리한다.
- 스택 프레임이 종료되면 지역 변수도 함께 제거된다.
- 스택 프레임이 모두 제거되면 프로그램도 종료된다.
- 선입 선출(FIFO, First In First Out)
- 후입 선출과 반대로 가장 먼저 넣은 것이 가장 먼저 나오는 것을 선입 선출이라 한다. 이런 자료 구조를 큐(Queue)라한다.
'자바기초 다시보기' 카테고리의 다른 글
자바static (1) | 2023.12.21 |
---|---|
자바 메모리 구조 (0) | 2023.12.21 |
접근 제어 (0) | 2023.12.21 |
생성자 (Construct) (0) | 2023.12.20 |
객체 지향 프로그래밍 vs 절차 지향 프로그래밍 (1) | 2023.12.20 |
Comments