변수와 메소드 그리고 메모리
애플리케이션의 실행
- 애플리케이션: 프로그램 사용을 위한 명령어 집합
- 메모리: 애플리케이션이 있는 곳
- cpu: 애플리케이션을 실행시키는 곳
메모리 구조
- 애플리케이션에 할당되는 메모리는 다양함
- Stack
- 실행 중인 매개변수, 지역변수가 저장됨
- 메소드가 종료되면 stack에서 변수 삭제
- Heap
- 객체의 정보(객체 변수 등) 저장
- Stack의 참조값으로 조회가능
메모리 저장 과정
- main 실행 -> Stack에 변수 저장
- main에서 객체를 생성
- 객체의 메소드가 실행되는 동안은 Stack
- 객체 참조값은 Stack에 저장
- 객체는 힙에 생성
- 객체의 변수 값을 main에서 가져 올때
- Heap에서 변수 값을 가져와서 Stack에 저장
- 메소드가 종료 될 경우 stack에서 삭제
쓰레기 객체
- 더 이상 쓰이지 않는 객체
- java 또는 C#같은 언어는 내부에서 알아서 치워줌
- C언어 계열은 개발자가 관리해야함