*JAVA*

[java] 전역변수/ 지역변수

깐부로부터 2021. 10. 25. 23:39

필드 : 클래스를 구성하는 요소 중 하나!!
        클래스 내부지만 메소드밖에 영역의 정의함!
        어떠한 데이터를 저장하기 위한 역할(변수)
 

변수 구분
- 전역변수 : 클래스 영역에 바로 선언하는 변수!(public static) => 클래스내 어디서든 사용가능! 
- 지역변수 : 클래스 영역내의 특정한 구역({ }) => 메소드, for문 등등...
                for(int i = 0; 조건식; 증감식;) {} => 초기식에서 선언된 i도 지역변수

1. 전역변수
 - 멤버 변수 (인스턴스변수, 필드)
    생성시점 : new 키워드 사용하면 해당객체를 생성하는 순간 메모리영역에 할당! => heap영역!
    소멸시점 : 객체가 소멸될 때 => 가비지컬렉터
 

- 클래스 변수 (static 변수) : static이라는 예약어가 붙은 변수!
     생성시점 : 프로그램 실행과 동시에 static 영역에 할당!
                          => 해당 객체가 생성이 안되도 무조건 프로그램 실행과 동시에 할당이됨! * 
     소멸시점 : 프로그램이 끝날 때 소멸


2. 지역변수

    생성시점 : 특정한 구역({ }) 실행시 메모리 영역에 할당 => stack 영역에 할당
    소멸시점 : 특정한 구역({ }) 종료시 소멸