프로그래밍에서 변수란, 값을 저장할 수 있는 메모리 상의 공간을 의미한다.
변수 : 단 하나의 값을 저장할 수 있는 메모리 공간
int name;
변수타입: 변수에 저장될 값이 어떤 '타입'인지를 지정.
변수이름: 변수에 붙인 이름.
변수를 선언하면, 메모리의 빈 공간에 변수타입에 맞는 크기의 저장공간이 확보되고 앞으로 이 저장공간은 변수이름을 통해 사용 가능하다.
int name = 10;
변수를 사용하기 전에는 반드시 변수를 초기화해야 한다.
처음 공부할 때는 당연히 그래야 마땅한 것이라고만 생각했는데, 변수를 초기화해줘야 하는 이유는 무엇일까?
현재 어떤 프로그램도 사용하지 않는 공간이 할당되기는 하지만, 컴퓨터 메모리는 운영체제 및 여러 프로그램이 함께 공유하는 자원이므로 다른 프로그램이 사용하면서 남긴 '알 수 없는 값= 쓰레기 값'이 남아있을 수 있기 때문이다.
자료형(data type) : 값(data)의 종류(type)에 따라 값이 저장될 공간의 크기와 저장형식을 정의한 것
자료형은 크게 기본형과 참조형 두 가지로 나뉜다.
java는 c언어와는 달리 참조형 변수간 연산을 할 수 없다.
-> c언어에서는 포인터 연산이 가능.
따라서 실제 연산에는 오직 기본형 변수만이 사용된다.
상수는 변수와 마찬가지로 '값을 저장할 수 있는 공간'이지만 변수와 달리 값이 한 번 저장되면 그 값을 다른 값으로 변경할 수 없다.
상수를 선언하는 방법은 변수 타입 앞에 키워드 final을 붙여주면 된다.
final int MAX_LENGTH=100;
우리가 아는 일반적인 상수, 2, 3.14, 'C' 등등의 값 자체를 의미한다.
변수(variable) : 하나의 값을 저장하기 위한 공간
상수(constant) : 값을 한 번만 저장할 수 있는 공간
리터럴(literal): 그 자체로 값을 의미하는 것
변수에 타입이 있는 것처럼 리터럴에도 타입이 있다.
변수의 타입은 '그 변수에 저장할 값'(=리터럴)의 타입에 의해 결정되므로, 즉 리터럴 타입에 따라 변수의 타입을 결정한다고 볼 수 있다.