Scope

알파로그·2023년 3월 13일
0

Computer Science

목록 보기
9/17

✏️ Scope

Memory 에 올라온 각 상수나 변수등의 요소들이 허용된 영역, 또는 범위를 Scop 라고 한다.

✏️ Memory

Program 을 실행시키기 위한 작업 공간

  • Program 을 실행시키기 위해선 Process 가 필요로 하는 재료가 Memory 에 올라와 있어야 한다.

📍 Memory 의 저장 공간 분할

  1. Code

    • 실행 명령을 포함하는 Program 의 코드가 저장되는 공간
  2. Data (Method Area)

    • Class 정보, Static, Global, 전역변수 등 정적 변수들이 저장되는 공간
    • 코드가 컴파일 될 때 Data 에 저장될 변수의 크기만큼 공간이 할당되고,
      Process 가 종료될 때 까지 변화되지 않는다.
    • Data 에 저장된 정적 Class 의 정적 변수들은 Class 의 객체를 생성하지 않아도 코드내의 어디든 선언될 수 있다.
    • 모든 쓰레드에서 정보가 공유된다.
  3. Heap

  • 동정 메모리가 저장되는 공간
  • new 연산자로 생성한 객체가 저장된다.
    • 그 객체를 변수에 담으면 변수는 Heap 이 아닌 Stack 에 저장된다.
    • Stack 에 저장된 변수는 Heap 에 저장된 객체를 가르키는 주소값을 가지고 저장된다.
    • 마찬가지로 배열의 index 값들은 Heap 에 저장되고, 배열을 담는 변수는 Stack 에 저장되 Heap 을 참조하는 구조를 갖고있다.
  • Heap 에 저장된 data 는 가비지 컬렉터가 처리하지 않는 이상 소멸되지 않는다.
  • 모든 쓰레드에서 정보가 공유된다.
  1. Stack
    • 지역변수, 매개변수, 반환갑 , Heap 에 있는 data 를 호출하는 method 등
      일시적인 data 가 저장되는 공간
    • 작동되고있는 코드 구절이 끝나면 가비지 컬렉션에 의해 관리가 된다.
    • 쓰레드 마다 하나씩 존재한다.
profile
잘못된 내용 PR 환영

0개의 댓글