변수의 종류)
1. 클래스 변수
: static이 붙은 변수로 모든 인스턴스가 공통된 저장공간(변수)을 공유하게 된다.
2. 인스턴스 변수
: 인스턴스를 생성할 때 만들어지는 변수로 인스턴스마다 고유한 상태를 유지해야하는 속성의 경우 인스턴스 변수로 선언한다.
3. 지역변수
: 클래스 영역 이외의 영역에 위치되는 변수로 메서드 영역, 반복문 영역, {}(블럭) 영역안에 선언한 변수를 지역변수라고 부른다.
4. 멤버변수
: 클래스 변수와 인스턴스 변수를 묶어서 멤버변수라고 부른다.
static 붙은 것은 클래스 변수를 의미하며 static 붙지 않은 것은 인스턴스 변수이다.
변수의 생성시기)
1. 클래스 변수 : 클래스가 메모리에 올라갈 때
2. 인스턴스 변수 : 인스턴스가 생성되었을 때
3. 지역변수 : 변수를 선언했을 때
필드에서 선언된 변수는 값을 할당하지 않아도 자동으로 자료형에 대한 초기값을 갖지만, 지역변수는 자동으로 초기화가 안된다. 그래서 지역변수를 선언하고 바로 사용할 때는 반드시 초기화를 해줘야 한다.
public class Tv{
private int price; // 초기값 : 0
}
public class Home{
String name; // 초기값 : NULL
int price1; // 초기값 : 0
void getTv(){
int price2;
Tv tv = new Tv();
tv.setPrice(price1); // 지역변수는 자동초기화가 안되므로 초기화 에러 발생
tv.setPrice(price2); // 멤버변수는 자동초기화가 되므로 SET 가능
}
}
변수의 메모리상 소멸시기)
1. 전역변수(클래스, 인스턴스 변수) : 프로그램이 실행되어서 종료될 때까지 메모리상에 남아있음
---> 얼만큼의 전역변수가 사용되야지 메모리 상에 과부화를 줄 수 있을까?
2. 지역변수 : 메서드 실행이 끝난 뒤, {} 또는 반복문이 끝난 뒤
참고 : https://m.blog.naver.com/heartflow89/220956313502
https://kd3302.tistory.com/780
'프로그래밍 언어' 카테고리의 다른 글
자료형 (0) | 2022.03.19 |
---|---|
싱글스레드와 멀티스레드의 장단점 (0) | 2022.03.03 |
자바스크립트 입문 1 (async,defer) (0) | 2021.05.20 |
websocket (0) | 2021.03.16 |
람다식 (0) | 2021.03.07 |