[JAVA] chap02 변수와 타입_변수 선언
컴퓨터 메모리(RAM)는 수많은 번지들로 구성된 데이터 공간이다.
변수는 하나의 값을 저장할 수 있는 메모리 번지에 붙여진 이름으로 변수를 통해 프로그램은 번지에 값을 저장하고 읽을 수 있다.
변수 = 하나의 값을 저장할 수 있는 메모리 번지에 붙여진 이름
자바의 변수는 다양한 타입의 값을 저장할 수 없다.
정수형 변수에는 정수값만, 실수형 변수에는 실수값만 저장이 가능하다.

변수를 사용하기 위해선 변수 선언이 필요하다.
변수 선언은 어떤 타입의 데이터를 저장할 것인지 그리고 변수 이름은 무엇인지를 결정한다.

변수 이름은 첫 번째 글자가 문자여야 하며 중간부터는 문자, 숫자, $, _를 포함할 수 있다.
또한 첫 번째 문자를 소문자로 시작하되 *캐멀 스타일로 작성하는 것이 관례다.
| ※ 캐멀(camel) 스타일 코드를 작성할 때 여러 단어를 혼합하여 명명하는 경우 낙타의 등처럼 대소문자가 섞여있도록 작성하는 스타일을 말한다. 자바 소스 파일명과 변수명을 작성할 때 관례적으로 사용한다. 1. 자바 소스 파일명(클래스명)은 대문자로 시작하는 것이 관례 Week.java MemberGrade.java ProductKind.java 2. 변수명은 소문자로 시작하는 것이 관례 score mathScore sportsCar |
변수가 선언되면 값을 저장할 수 있는데 이때 대입 연산자인 =를 사용한다.
수학에서 등호(=)는 '같다'는 의미지만 자바에서는 우측 값을 좌측 변수에 대입하는 연산자로 사용된다.

변수 선언은 저장되는 값의 타입과 이름만 결정한 것이지 아직 메모리에 할당 된것은 아니다.
변수에 최초로 값이 대입될 때 메모리에 할당되며, 해당 메모리에 값이 저장된다.

변수의 값에 최초로 값을 대입하는 행위를 변수 초기화라고 하며 이때의 값을 초기값이라고 한다.
초기값은 변수를 선언함과 동시에 대입할 수도 있다.
int score = 90;
초기화되지 않은 변수는 아직 메모리에 할당되지 않아 변수를 통해 메모리 값을 읽을 수 없다.
int value; // 변수 value 선언
int result = value + 10; // 변수 value 값을 읽고 10을 더햇서 변수 result에 저장
위의 코드 중 value가 선언되었지만 초기화되지 않았기 때문에 value+10에서 value 변수값을 읽어올 수 없다.
변경하면 아래와 같다.
int value = 30; // 변수 value가 30으로 초기화 됨
int result = value+10; // 변수 value 값(30)을 읽고 10을 더해서 result에 저장
아래의 예제는 초기화되지 않은 변수를 연산식에 사용할 경우 컴파일 에러가 발생하는 것을 보여준다.

변수는 출력문이나 연산식에 사용되어 변수값을 활용한다.
아래 예시는 문자열과 결합 후 출력하거나 연산식에서 활용하는 모습을 보여준다.

변수는 또 다른 변수에 대입되어 메모리 간에 값을 복사할 수 있다.

1~3번 내용을 순서대로 정리해보면 아래와 같다.
