클래스에서의 변수는 세 종류로 나눌 수 있는데, 이들을 구분하는 기준은 '변수의 선언된 위치'라고 할 수 있다.
변수의 종류 | 선언위치 | 생성시기 |
클래스변수 | 클래스 영역 | 클래스가 메모리에 로딩될 때 |
인스턴스변수 | 인스턴스가 생성될 때 | |
지역변수 | 클래스 영역 이외 | 변수 선언문이 수행되었을 때 |
인스턴스변수
인스턴스변수는 클래스 영역에 선언되며 클래스의 인스턴스를 생성할 때 만들어진다. 그러니 항상 인스턴스를 먼저 만들어야한다. 모든 인스턴스는 각자의 고유한 저장공간을 가져 자신만의 값을 가질 수 있다.(다른 인스턴스로부터 독립적)
클래스변수
변수 앞에 static 키워드를 붙이고 선언한다. 클래스변수는 인스턴스변수와 반대로 모든 인스턴스들이 공통적으로 공유하는 변수이다. 만들어지는 시점은 클래스가 메모리에 로딩될 때이며 프로그램이 종료될 때 까지 유지된다.
앞에 public을 붙이면 프로그램내 어디에서든 접근할 수 있는 전역변수의 성격을 가진다.
지역변수
메서드 내에 선언되어 메서드 내부 스코프에서만 사용이 가능하다. 메서드가 사라지면 소멸된다.
* 자바의 정석 책을 보고 기술하였습니다.
읽어주셔 감사합니다.
잘못된 부분이나 부족한 부분이 있어 알려주신다면 감사하겠습니다
'언어와 프레임워크 > Java' 카테고리의 다른 글
[JAVA] Intellij JDK 한글 깨짐 (Open JDK18 이전, 이후 나눔) (1) | 2022.07.14 |
---|---|
[JAVA] java 입장에서 call by value와 call by reference의 짧은 고찰. (0) | 2022.06.26 |
[JAVA] 클래스 메서드와 인스턴스 메서드 (0) | 2022.06.25 |
[JAVA] JVM의 메모리 구조 (0) | 2022.06.25 |
국내 웹시장에선 왜 Java 그리고 Spring이 많이 쓰일까에 대하여. (0) | 2022.05.30 |
댓글