Contents
스코프
- 변수나 함수의 접근 범위를 결정하는 범위를 의미이다.
- 같은 스코프 내에 동일한 변수 값은 못 쓴다.
- 변수나 함수가 코드의 어느 부분에서 참조될 수 있는지를 결정한다.
스코프는 두 가지 종류가 존재한다!
1. 전역 스코프(Global Scope)
→ 전역 스코프에 선언된 변수는 프로그램의 어디에서나 접근 가능합니다.
2. 지역 스코프(Local Scope)
→ 특정 코드 블럭 내에서만 변수나 함수에 접근할 수 있습니다.
스코프 예시 코드
package ex04.test; public class ScopeEx01 { int n1 = 1; static int n2 = 2; static void m1() { int n1 = 10; System.out.println("n1 : " + n1); } void m2() { System.out.println("n2 : " + n1); } // 메인 시작 전에 static에 n2 변수와 m1 메서드가 로드 되어 있음. public static void main(String[] args) { System.out.println("1"); m1(); System.out.println("2"); ScopeEx01 sc = new ScopeEx01(); System.out.println(sc.n1); sc.m2(); } }
큐
- 선형 리스트로 데이터가 ‘선입선출’ (FIFO: First In First Out)방식으로 처리된다.
- 큐는 순서대로 저장하고 실행하기 위해서 사용한다.
- 큐는 저장 공간이 아니다. (코드가 지나가는 원통 공간이라 생각해도 좋을 것 같다.)
- 큐의 역할이 끝나면 종료 되어 사라진다.
스택
- 큐의 정보를 임시로 저장된다.
- 스택은 서로 접근이 안된다. (스택은 서로 변수를 못 찾는다. - 스코프의 예시)
- 스택이 사라질 때 값을 받고 싶으면 유일한 방법이 리턴 값 반환이다.
- 큐의 역할이 끝나서 종료가 될 때 스택도 같이 종료가 되서 종료가 된다.
스택은 서로 다른 공간에서 찾을 수가 없다.
이유 → 스택이 실행 중 일 때만 볼 수 있어서 이다.
→ 이를 서로만 못 찾는게 아닌 모든 공간에서 못 찾는 다고 알면 된다.
하지만!
스태틱과 힙은 모든 스택에서 찾을 수 있다. (이유는 변수 명이 겹칠 일이 없어서!)
스태틱은 어느 공간에서든 찾을 수 있다.
하지만! 단점은 메모리를 많이 먹는다!
지역 변수! → 메서드 내부에 만든 변수 → 생명주기가 제일 짧다! 이걸~~~ 스코프라 한다!
생명 주기 → stack < heap < static (왼쪽부터 짧은 순서)
static을 메인으로 설명한 그림 자료
![notion image](https://inblog.ai/_next/image?url=https%3A%2F%2Fwww.notion.so%2Fimage%2Fhttps%253A%252F%252Fprod-files-secure.s3.us-west-2.amazonaws.com%252Fb1939378-3cd6-4f1f-9032-6c4df0711232%252F5e45f31c-88e3-4807-a39d-351a7031a44b%252FIMG_2664.jpg%3Ftable%3Dblock%26id%3D36de3dae-7fe8-49c4-8521-13a045558ef5%26cache%3Dv2&w=3840&q=75)
heap을 메인으로 설명한 그림 자료
![notion image](https://inblog.ai/_next/image?url=https%3A%2F%2Fwww.notion.so%2Fimage%2Fhttps%253A%252F%252Fprod-files-secure.s3.us-west-2.amazonaws.com%252Fb1939378-3cd6-4f1f-9032-6c4df0711232%252Fa64003e3-1ae2-4c10-9a11-7c25a7aac2e6%252FIMG_2665.jpg%3Ftable%3Dblock%26id%3Df19d718b-4c6f-422b-8c3d-abbc19ff62dd%26cache%3Dv2&w=3840&q=75)
위의 그림들은 Queue, Stack 등의 저장 공간에 따른 스코프, 자바의 코딩의 흐름에 대한 그림 설명이다.
Share article