변수란 프로그램에 의해 이름을 할당받은 데이터를 저장 할 수 있는 메모리 공간 을 의미합니다.
ex) 사람의 나이, 학생의 학년, 사원의 수
변수 선언 방법은 변수에 맞는 자료형과 변수 이름으로 선언합니다.
public class VariableEx {
public static voic main(String[] args) {
int age;
age = 11;
System.out.println(age);
}
}
// 결과 : 11
public class VariableEx {
public static voic main(String[] args) {
int age = 11;
System.out.println(age);
}
}
//결과 : 11
변수의 이름은 영문자(대소문자), 숫자를 사용함(단 숫자로 시작할 수 없다.)
ex) 1level = X
변수의 이름은 특수문자 중에 '_'
와 '$'
만 사용가능 함
변수의 이름 사이에는 공백을 포함할 수 없음
변수의 이름으로 java에서 미리 정의 한 키워드 즉 예약어(reserved word)는 사용 할 수 없음
변수의 이름은 그 쓰임에 맞는 이름으로 명명하는 것이 가독성에 좋음
변수를 선언하는 것은 해당 자료형의 크기 만큼의 메모리를 사용하겠다는 것이다.
변수는 기본적으로 메모리의 주소를 기억하는 역할을 합니다.
여기서 메모리 주소란 물리적인 메모리 공간을 서로 구분하기 위해 사용되는 일종의 식별자입니다.
즉 메모리 주소란 메모리 공간에서의 정확한 위치를 식별하기 위한 고유 주소를 의미합니다.
변수를 참조할 때는 메모리의 주소를 참조하는 것이 아닌 해당 주소에 저장된 데이터를 참조하게 됩니다.
따라서 변수는 데이터가 저장된 메모리의 주소뿐만 아니라 저장된 데이터의 길이와 형태에 관한 정보도 같이 기억해야 합니다.
아래의 그림은 메모리상에 변수가 어떤 식으로 저장되는지를 보여줍니다.
위의 그림처럼 하나의 메모리 공간에는 8개의 비트로 이루어진 1바이트의 데이터가 저장됩니다.
따라서 메모리의 주소 또한 1바이트씩 증가되며, 낮은 주소부터 차례대로 데이터가 저장됩니다.
위의 그림에서 변수의 길이가 총 4개의 메모리 공간을 포함하므로 해당 변수에는 4바이트의 데이터가 저장되어 있습니다.
이때 변수의 이름은 첫번째 메모리 주소인 0x10만을 가리키게 됩니다.
따라서 변수의 길이가 4입니다.