본문 바로가기
개발/JAVA

자바 변수의 생명주기

by chansungs 2020. 6. 14.
728x90
반응형

변수의 생명주기

// 변수의 생명주기
// - 전역변수 : 클래스의 변수
// - 지역변수1 : 메소드 내부에 선언된 변수
//           : 메소드의 시작과 동시에 메모리에 적재
//           : 메소드가 종료되면 메모리에서 소멸
// - 지역변수2 : 메소드의 특정 제어문 블럭 내부에서 생성된 변수
//           : 일반적인 지역변수와 다르게 메소드의 종료 지점까지 유지되지 않는 변수
//           : 제어문의 영역(블럭)이 종료되면 바로 소멸되는 변수
public class Variable_01_LifeCycle {
	public static void main(String[] args) {	
		// 지역변수의 선언(main 메소드에 선언된 변수)
		int i;
		
		i = 10;
		
		System.out.printf("i = %d\n", i);
		
		// 지역변수의 선언(main 메소드에 선언된 변수)
		int j;
		
		j = 20;
		
		// 모든 지역변수들은 메소드의 종료 전까지 사용할 수 있는 변수
		System.out.printf("i = %d, j = %d\n", i, j);
		
		// 일반적인 지역변수는 메소드의 종료 지점까지 유효하기 때문에
		// 동일한 이름으로 변수를 생성할 수 없음
		// int j;
		
		// 지역변수 타입 2의 선언
		// - 반복문 내부에서 선언된 변수
		// - 해당 반복문의 실행까지만 유효한 변수
		// - 반복문이 종료되면 k 변수는 소멸됩니다.
		for( int k = 1; k < 3 ; k++ )
			System.out.println(k);
		
		// 제어문 내부에서 선언된 변수는 제어문이 종료되면 소멸되기 때문에
		// 동일한 이름의 변수를 다시 사용할 수 있습니다.
		for( int k = 1; k < 3 ; k++ )
			System.out.println(k);
				
		// 임의의 영역(블럭)을 지정하여 잠시동안 사용할 변수를 활용하는 방법
		// - 스플레쉬 윈도우와 같은 임시적인 작업을 처리할 때 사용
		{
			int k = 100;
			System.out.println(k);
		}
		
		// 특정 제어문 또는 영역에서 생성된 변수는 해당 영역이 종료되면
		// 소멸되기 때문에 외부에서는 사용할 수 없음.
		// System.out.println(k);
		
	}
}
728x90
반응형

'개발 > JAVA' 카테고리의 다른 글

자바 레퍼런스 변수 (참조형 변수)  (0) 2020.06.14
자바 스택(Stack) 메모리  (0) 2020.06.14
반복문 while , do ~ while 문제  (0) 2020.06.14
자바 반복문 do ~ while문  (0) 2020.06.14
자바 - 반복문 while문  (0) 2020.06.14