변수(variable, 變數)란 이름 그대로 변할 수 있는 것을 말한다.

주로 Programming Language에서는 값을 저장할 수 있는 메모리상의 공간을 의미한다.

즉 변수를 선언함으로써 메모리에 공간을 할당할 수 있다.

변수를 선언하는 방법은 아래와 같다.

변수타입 변수이름;

  int number;

위 소스코드와 같이 선언할 수 있다.

여기서 사용한 int 라는 변수타입은 정수를 저장할 수 있는 변수타입이다.

단, 자바에서 변수이름(identify)는 아래와 같은 룰을 지켜야 된다.

  1. 대소문자는 구분하며 길이에 제한이 없음
  2. 예약어(keyword)를 사용해서는 안됨
  3. 숫자로 시작하면 안됨
  4. 특수문자는 _ 와 $ 만 허용

위 4가지의 규칙을 일컬어 명명규칙(Naming Convention)이라고 한다.

1번 규칙을 보면 대소문자를 구분한다고 되어 있는데 Java는 변수의 대소문자를 구분하기 때문에 대소문자에 따라 전혀 다른 변수로 인식을 하기 때문이다.

이에 CamelCase라는 규칙이 있는데 이것으로 추후 배울 메소드와 클래스, 변수를 구분한다.

  1. 클래스(class)는 대문자로 시작하여 의미가 있는 단어의 시작은 대문자로 시작 ex) MyName
  2. 메소드(method)와 변수(variable)는 소문자로 시작하여 의미가 있는 단어의 시작은 대문자로 시작한다. ex) public void myName(); char myName;

변수를 선언하였으면 변수를 초기화 시켜주어야 하며 변수의 타입(data type)에 따라 초기화 하는 방식이 다르다.

변수의 종류에는 기본형(primitive type)과 참조형(reference type)이 있으며 메모리에 저장되는 방식도 다르다.

기본형(primitive type)은 메모리에 초기화한 실제 값을 저장을 하며

참조형(reference type)은 메모리에 객체의 주소값을 저장한다.

변수의 초기화(initialize)는 다음과 같다.

  number = 5;

그럼 앞에서 선언한 변수 number에 5가 저장된다.

이 방법 외에도 변수를 선언과 동시에 초기화를 할 수 있는 방법이 있는데 다음과 같다.

변수타입 변수이름 = 값;

  int number = 5;

위와 같은 방법을 사용해 변수의 선언과 동시에 초기화를 함으로써 2줄로 나눠서 하던 변수의 선언과 초기화를 더 간편하게 사용할 수 있다.