리그캣의 개발놀이터

[Java] 변수의 스코프와 라이프타임 본문

개발 공부/Java(Android)

[Java] 변수의 스코프와 라이프타임

리그캣 2020. 11. 21. 15:35

타이핑 하며 작성한 문서이기에 오타가 있을 수 있습니다. 오타나 잘못된것은 아래 댓글로 지적해주세요

pre

변수란?
https://league-cat.tistory.com/410

변수의 스코프(영역)이란?

변수에 접근하거나 접근할 수 있는 유효 범위/영역

개발자는 자신이 선언한 또는 선언된 변수에 접근할 수 있는 영역에 대해서 이해해야한다.

일반적인 규칙은 변수가 선언된 블록내에서만 액세스 할 수 있다는 것이다.
블록은 왼쪽 중괄호 {로 시작하고 오른쪽 줄괄호 }로 끝난다.

변수(variable)의 라이프타임(lifetime)?

변수가 메모리에서 살아있는 기간

자바에서 변수의 스코프와 라이프 타임

Instacne Variables

정의
클래스 내부와 모든 메소드 및 블록 외부에서 선언된 변수

scope
정적 메서드를 제외한 클래스 전체

라이프타임
객체가 메모리에 남아있을 때까지.

예시

x와 y의 scope

Class Variables

정의
클래스 내부, 모든 블록 외부에서 선언되고 static으로 표시된 변수

scope
클래스 전체

라이프타임
프로그램이 끝날때까지 또는 클래스가 메모리에 로드 되는 동안

예시

result(class variable)의 scope

Local Variables

정의
인스턴스 및 클래스 변수가 아닌 모든 변수

scope
선언된 블록 내에 있음

라이프타임
컨트롤이 선언 된 블록을 떠날때까지

예시

a, b (local variable)의 scope

ref

Comments