단 하나의 값을 저장할 수 있는 메모리상의 공간
하나의 변수에 단 하나의 값을 저장할 수 있으므로 새로운 값이 저장되면 기존의 값은 사라진다.
int age;
변수타입(int) : 변수에 어떤 타입이 저장될 것인지 정해주는 것
❓ 변수(variable)의 타입?
값은 문자와 숫자로 나뉘며 숫자는 정수와 실수로 나뉜다.
- 자료형(data type) : 값(data)의 종류(type)에 따라 값이 저장될 공간의 크기와 저장형식을 정의한 것이다. 이는 크게 기본형과 참조형으로 나뉜다.
- 기본형(primitive type)
논리형(boolean, 1byte), 문자형(char, 2byte), 정수형(byte(1byte), short(2byte), int(4byte), long(8byte)), 실수형(float, double)으로 계산을 위한 실제 값을 저장한다. 모두 8개이다.- 참조형(reference type)
객체의 주소를 저장한다. 8개의 기본형을 제외한 나머지 타입을 말한다.
참조변수는 클래스 이름을 타입으로 하기 때문에 클래스이름 변수이름;으로 입력해야 한다.Data today = new Date(); //Date객체를 생성해서, 그 주소를 today로 저장
변수이름(age) : 메모리 공간에 이름을 붙여주는 것
변수가 선언되면 메모리의 빈 공간에 "변수타입"에 알맞는 크기의 저장공간이 확보되고 이렇게 생긴 저장공간을 "변수이름"을 통해 사용이 가능하다.
int age = 25;
변수를 선언한 이후엔 반드시 '초기화(initialization)'를 해주어야 한다. 메모리는 여러 프로그램이 공유하는 자원이므로 변수에 쓰레기값이 남아있을 수 있기 때문이다.
int a, b;
int x = 0, y = 0;
변수타입이 같은 경우 콤마(,)를 사용해 한꺼번에 선언하고 초기화할 수 있다.
package test_1;
public class HelloWorld {
public static void main(String[] args) {
int year = 0; //변수 year을 0으로 초기화
int age = 14; //변수 age를 14로 초기화
System.out.println(year); //변수 year 출력
System.out.println(age); //변수 age 출력
year = age + 2000; //변수 year를 age+2000으로 초기화
age = age + 1; //변수 age를 age + 1 값으로 초기화
System.out.println(year);
System.out.println(age);
}
}
0
14
2014
15
x, y 두 변수의 값을 교환하려면 변수 x에 y의 값을 저장하고 y에 x의 값을 저장하면 될 것같지만 그렇게 한다면 두 변수의 값이 같아져버린다.
따라서 별도의 x값을 임시로 저장할 변수(tmp)가 필요하다.
package test_1;
public class HelloWorld {
public static void main(String[] args) {
int x = 10, y = 20; //x와 y값 선언 및 초기화
int tmp = 0; //tmp 선언 및 초기화
System.out.println("x:" + x + "y:" + y);
tmp = x; //tmp에 x값을 저장
x = y; //x값에 y값 20을 저장
y = tmp; //y값에 x를 임시저장한 tmp값을 저장
System.out.println("x:" + x + "y:" + y);
}
}
x:10y:20
x:20y:10
프로그래밍에서 사용하는 모든 이름들을 식별자(identifier)라고 부른다. 식별자는 같은 영역 내에서 구분되어야 하며 다음 규칙을 따라야한다.
- 대소문자가 구분되며 길이에 제한이 없다.(True=/=true)
- 예약어를 사용해서는 안된다.(true는 예약어므로 사용 금지)
- 숫자로 시작해서는 안된다.(top10⭕ 10top❌)
- 특수문자는 '_'와 '💲'만을 허용한다.(💲harp⭕ S#harp❌)
다음은 필수는 아니지만 프로그래머에게 권장하는 규칙이다.
- 클래스의 첫 글자는 항상 대문자로 한다.
- 변수와 메서드의 이름의 첫글자는 항상 소문자로 한다.- 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다.
- 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 '_'로 구분한다.
- 변수의 이름은 의미있는 것으로 지정한다.