변수(variable)란 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미한다. 즉, 변수란 데이터(data)를 저장할 수 있는 메모리 공간을 의미하며, 이렇게 저장된 값은 변경될 수 있다.
💎 변수의 이름 생성 규칙
1. 변수의 이름은 영문자(대소문자), 숫자, 언더스코어(_), 달러($)로만 구성할 수 있습니다.
2. 변수의 이름은 숫자로 시작할 수 없습니다.
3. 변수의 이름 사이에는 공백을 포함할 수 없습니다.
4. 변수의 이름으로 자바에서 미리 정의된 키워드(keyword)는 사용할 수 없습니다.
자바에서 변수는 타입에 따라 다음과 같이 구분할 수 있습니다.
1-1. 기본형(primitive type) 변수 : 실제 연산에 사용되는 변수
💎 실제값이 그대로 메모리에 저장된다.
- 정수형 : byte, short, int, long
- 실수형 : float, double
- 문자형 : char
- 논리형 : boolean
1-2. 참조형(reference type) 변수 : 기본형 변수를 사용하여 사용자가 직접 만들어 사용하는 변수
💎 실제값이 아닌 주소값이 저장된다
종류 : String , StringBuffer ,List, 개인이 만든 클래스 등
기본형 변수는 Stack영역에서 실제 값을 그대로 저장하지만
참조형 변수는 먼저 Stack영역에 공간을 생성하고 Heap영역에 새로운 공간을 생성해
실제 값을 저장한 다음에 그 공간의 주소 값을 불러와 Stack영역의 공간에 저장한다.
💎 변수의 선언 방법
1. 변수를 선언만 하는 방법
- 이 방법은 먼저 변수를 선언하여 메모리 공간을 할당받고, 나중에 변수를 초기화하는 방법이다. 하지만 이렇게 선언만 된 변수는 초기화되지 않았으므로, 해당 메모리 공간에는 알 수 없는 쓰레깃값만이 들어가 있다. 따라서 선언만 된 변수는 반드시 초기화한 후에 사용해야한다.
예제)
int num; // 변수의 선언
System.out.println(num); // 오류 발생
num = 20; // 변수의 초기화
System.out.println(num); // 20
2. 변수를 선언과 동시에 초기화하는 방법
- 자바에서는 변수의 선언과 동시에 그 값을 초기화할 수 있다.
또한, 선언하고자 하는 변수들의 타입이 같다면 이를 동시에 선언할 수도 있다.
선언하고자 하는 변수의 타입이 서로 다르면 동시에 선언할 수 없습니다.
예제)
int num1, num2; // 같은 타입의 변수를 동시에 선언함.
double num3 = 3.14; // 선언과 동시에 초기화함.
double num4 = 1.23, num5 = 4.56; // 같은 타입의 변수를 동시에 선언하면서 초기화함.
상수(constant)란 변수와 마찬가지로 데이터를 저장할 수 있는 메모리 공간을 의미한다. 하지만 상수가 변수와 다른 점은 프로그램이 실행되는 동안 메모리에 저장된 데이터를 변경할 수 없다는 점이다.
💎 상수의 규칙
1. 상수는 변수와 마찬가지로 이름을 가지고 있는 메모리 공간으로, 이러한 상수는 선언과 동시에 반드시 초기화해야한다.
2. 자바에서 상수의 이름은 일반적으로 모두 대문자를 사용한다.
3. 여러 단어로 이루어진 이름의 경우에는 언더스코어(_)를 사용하여 구분한다.
자바에서 상수를 만드는 일반적인 방식은 다음과같다.
final int AGES = 30;