[Java] 05. 변수
Java의 변수
Java에서 변수는 선언과 초기화 후에 사용해야한다. Java는 동적 타이핑을 사용하지 않기 때문에 선언할 때 데이터 타입을 지정해 주어야한다.
Java에서 사용되는 변수는 지역변수(local variable), 멤버변수 (instance variable), 클래스 변수 (class variable)이 있다.
1) 지역변수 (Local variable)
- 메소드({}) 내에서 선언되고 사용 후 폐기되는 변수 (파이썬에서 함수 내부에서 사용되는 parameter과 비슷함)
- 변수의 수명(life-cycle)이 가장 짧음
- Stack에 저장됨
**Stack이란: 먼저 들어온 데이터를 나중에 처리하는 구조 (FILO, 메소드를 호출할 때 사용되는 구조)
↔️ Queue: 먼저 들어온 데이터를 먼저 처리하는 구조 (FIFO, 프린트 대기열 등)
2) 멤버변수 (Instance variable)
- 클래스 내부에서 선언된 변수로 클래스를 대표하는 명사적 요소임
- 클래스가 생성됨과 동시에 멤버변수도 생성됨
- 클래스가 메모리에서 사라지면 함께 폐기됨
3) 클래스 변수 (Class variable)
- 클래스 내부에서 선언된 변수로 앞에 static 지정자가 붙은 변수
- JVM이 구동됨과 동시에 클래스 변수가 생성됨
- 클래스가 생성되지 않아도 메모리에 올라가 있어서 사용할 수 있음
- JVM이 종료되면 폐기됨
- 수명이 가장 긴 변수
타입추론
변수를 선언할 때 var 연산자를 이용해서 선언하면 타입을 지정하지 않고도 변수를 선언할 수 있다.
값이 들어오면 해당 값의 타입으로 변수 타입이 지정되고 이후에 타입이 절대 변경되지 않는다.
컴파일이 완료되면 타입이 결정되기 때문에 byte code 상태에서는 타입이 결정되어있다.
잘 쓰지는 않음..^^