본문 바로가기

develop

변수의 Scope와 Lifetime -초보개발자-

1. Lifetime 이란?

Lifetime은 해당 변수가 메모리에 언제까지 살아있는지를 의미한다.

 

 

2. Scope 이란?

변수의 스코프란 해당 변수를 사용할 수 있는 영역범위를 뜻한다.

변수는 지역변수, 매개변수, 인스턴스 변수, 클래스 변수에 따라 라이프 타임이 나뉘게 된다.

 

 

클래스 변수와 인스턴스 변수는 '클래스 영역'

지역 변수는 '클래스 영역 이외의 영역'

 

 

 

   '지역변수'는 블록 안에 변수를 선언하고 블록이 끝나기 전까지 유효하다. 

 

 

 

✓  '매개변수'는 메소드 괄호 안에 선언하고 메소드가 끝나기 전까지 유효하다.

 

 

 

 

   '인스턴스 변수'는

 

   클래스 선언 시 static 키워드 없이 선언된 필드이다. 이 필드는 인스턴스 별로 다른 값을 가질 수 있기 때문에, 인스턴스 변수라고 불린다.

   static method를 제외한 모든 클래스 영역이다.

 

 

 

 

   '클래스 변수'는

 

   변수에 static 키워드를 붙여 사용하고 JVM이 클래스를 로딩할 때 초기화되고,

   프로그램이 종료되기 전까지 유효하다.