Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발새발

스택 본문

자바기초 다시보기

스택

개발하는후추 2023. 12. 21. 15:03

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