변수와 객체와 메모리의 관계

라영진·2023년 9월 6일
0

Java 학습일지

목록 보기
31/35

애플리케이션은 어떻게 실행되는가?

애플리케이션:일반 사용자가 사용할 기능을 제공하는, 컴퓨터가 실행할 수 있는 명령어들의 집합

메모리:실행된 애플리케이션이 상주하는 곳

CPU:명령어를 실행하는 주체

ex)
public class Main{
public static void main(String[] args){
int a = 7;
int b = 3;
int c = a + b;
}
}

runtime 환경에서 cpu랑 메모리에 어떻게 저장되는지 알아보자

메모리 구조

  • 애플리케이션에 할당되는 메모리는 내부적으로 여러 영역으로 나뉜다
  • 그 중에 stack 메모리와 heap 메모리가 있다
  • stack 메모리란 함수나 메서드의 지역 변수(local variable)와 매개 변수(parameter)가 저장됨. 함수나 메서드가 호출될 때마다 스택 프레임(stack frame)이 쌓인다.
  • heap 메모리: 객체가 저장됨

Heap 메모리 예시

public class Main{
public static void main(String[] args)
Counter c = new Counter();
two(c);
int count = c.get();
}
public static void two(Counter c){
c.increment();
c.increment();
}
}
public class Counter {
private int state = 0;
public void increment() { state++; }
public int get(){ return state; }
}

profile
보더콜리 2마리 키우는 개발자

0개의 댓글