용어 정의
scope(스코프)와 lifetime(라이프타임) 용어 자체에 대한 설명이 필요하겠네요. 변수의 스코프란 해당 변수를 사용 가능한 범위를 말합니다. 저번에 다룬 값의 범위가 아닌 영역의 범위라고 생각해주세요. 저는 스코프랑 라이프타임이 비슷한 용어라고 생각했는데, 조금 다르더라구요. 라이프타임의 경우 메모리에서 변수가 언제까지 살아있는가에 대한 것을 다룹니다. 변수는 어디에서 어떻게 선언하냐에 따라 스코프가 3가지로 나뉘는데 이에 대해서 알아봅시다.
사실 저는 이전에 변수에 관한 포스팅을 하면서 변수 세 타입에 대해서 다룬 적이 있습니다. 그래서 이번에는 스코프와 라이프타임 위주로만 정리해보겠습니다.
2021.03.10 - [Java] - [java] 변수
Instance variable
클래스 내에서 선언되지만 메서드 및 블록 외부에 선언되는 변수를 인스턴스 변수라고 합니다.
스코프 : 정적 메서드(static method)를 제외한 모든 클래스에
라이프타임 : 클래스의 객체가 메모리에 남아 있을 때까지 살아있습니다.
Class variable
1. 클래스 안에서 선언
2. 어떠한 메서드나 블럭안에서 선언되지 않았으며
3. static 키워드가 포함되어 선언된
이 세가지 상태를 만족하면 클래스 변수라고 부릅니다.
스코프 : 클래스 전체
라이프타임 : 프로그램 종료할 때까지
Local variable
인스턴스 변수나 클래스 변수가 아닌 모든 변수
스코프 : 변수가 선언된 block 내부
라이프타임 : 변수가 선언된 block 내부에 프로그램이 도는 동안
출처
www.learningjournal.guru/article/programming-in-java/scope-and-lifetime-of-a-variable/
해당 글을 번역해서 포스팅했습니다. 오역이 있다면 댓글로 남겨주세요. 바로 수정하겠습니다.
'Java' 카테고리의 다른 글
[JAVA] 배열 선언하기 및 타입 추론 (0) | 2021.04.09 |
---|---|
[JAVA] 타입 변환 (0) | 2021.04.08 |
[JAVA] 자바 원시 타입 (0) | 2021.04.05 |
[JAVA] JDK와 JRE의 차이 (0) | 2021.04.04 |
[JAVA] JVM 구성 요소 (0) | 2021.03.29 |