하나의 타입, 하나의 값을 저장할 수 있는 메모리 공간
int var = 0;
int는 변수의 타입, var는 변수 메모리 공간의 이름
자바는 강타입 언어로 타입을 명확히 한다.
변수의 초기화
메모리는 자바 프로그램 뿐만아니라 모든 프로그램이 공유하는 h/w자원이다.
따라서 그 공간에 잔여 값이 남아 있을 수도 있다.
변수 초기화란 변수 사용 전에 처음으로 값을 저장하는 것을 말한다.
public class Var {
static int classVariable;
int instanceVariable;
//main()도 메서드이므로 로컬영역이다.
public static void main(String[] args) {
VarEx1 instance = new VarEx1();
int localVariable;
System.out.println(classVariable);
System.out.println(instance.instanceVariable);
// System.out.println(localVariable);
}
}
기본형 인스턴스 변수와 클래스 변수는 각각 정해진 기본값으로 초기화가 자동으로 된다.
기본형 지역변수는 선언과 동시에 초기화를 반드시 해야한다.
두 변수의 값 교환하기
현실의 사고방식으로는 바꿔치지를 생각할 수 있지만 여기는 기계속이다. 불가능하다.
- 먼저 a를 temp에 임시 저장한다
- a 자리에 b 값을 넣는다.
- b 자리에 temp 값을 넣는다.
물컵 두 잔에 내용물을 바꾼다고 생각하면 쉽다.
아니면 실제로 코드상으로 변수 2개로만 바꿀려고 시도해보자. 그러면 왜 temp가 필요한지 이해가 잘된다.
변수명 규칙
- 대소문자 구분한다/ 길이제한 없다
- 예약어를 사용하면 안된다
- 숫자로 시작하면 안된다
- 특수문자는 _ , $ 만 허용한다
예약어는 대부분 자바 문법상 사용하는 단어들이다. 따라서 외울 생각을 할필요가 없다
int, long, for, ....
다만 예약어가 포함되어 있다고 사용이 다 불가능하지 않다. intSum 이런 것은 된다.
즉, 딱 그 예약어 단어 사용이 불가능하다.
추가 권장사항
- 클래스 이름은 첫 글자를 대문자로한다
- 여러 단어 이름은 단어 첫 글자를 대문자로 한다
- 상수의 이름은 대문자로만 사용하며 단어 구분은 _ 로 한다