[TIL] 변수와 메모리: 변수! 너 어디 있니?

hyo_·2021년 1월 7일
0

JAVA 

목록 보기
4/20

※ 본 글은 아래 도서를 공부한 후 정리한 내용입니다.

📚 스프링 입문을 위한 자바 객체지향의 원리와 이해


예제 코드의 T메모리 변화를 살펴보면서 변수와 메모리 관계가 어떠한지 알아보자!

(T메모리 -> TIL : 다시 보는 main() 메서드: 메서드 스택 프레임 참고)

Study2.java 파일

1 public Class Study2 {
2 	public static void main(String[] args){
3		int i;   
4		i = 10;
5		double d = 20.0;
6	}
7 } 

① Study2.java도 2번째 줄까지 실행했을 때 Study.java와 다르지 않음

② 3번째 줄인 int i를 실행 했을 때 아래 그림 처럼 main 스택 프레임 안에 밑에서부터 공간을 생성

  • 3번째 줄 까지는 i 값 안에 해당 공간의 메모리를 사용했던 다른 프로그램이 남긴 값을 그대로 가지고 있음.

    이런 상황에서 만약 변수 i를 선언만 하고 초기화 하지 않고 사용 한다면 컴파일러의 “The local variable I may not have been initialized” 경고를 받게 된다.

③ 4번째 줄 i=10; 입력 되었을 때

double d = 20.0;

⑤ 이후 과정은 study.java의 9-11과정과 동일
(TIL : 다시 보는 main() 메서드: 메서드 스택 프레임 참고)



🌞 Check it!! 🌞

  • 변수 생성 시 해당 스택 프레임 안 밑에서부터 차곡차곡 공간 생성
    ➡ 자세한 내용은 TIL : 지역 변수와 메모리: 스택 프레임에 갇혔어요! 참조

  • 변수 선언만 하면 쓰레기 값이 들어있음. ➡ 초기화 꼭!!

profile
🎓의지적인 삶을 살자!😊

0개의 댓글