'변수' 란?
단 하나의 값을 저장할 수 있는 메모리 상의 공간
변수의 선언
int age; // age라는 이름의 변수 선언 ( int : 변수 유형 / age : 변수명)
=> 변수 유형(int) 변수명(age); 로 선언
변수의 초기화
변수를 선언한 이후부터는 변수를 사용하기 전에는 반드시 변수 '초기화'를 해야 한다.
메모리는 여러 프로그램이 공유하는 자원이기 때문에 다른 프로그램에 의해 저장된
알 수 없는 값이 남아있을 수 있기 때문
변수의 명명 규칙
변수 명에도 규칙이 있다.
1. 대소문자가 구분되며 길이에 제한이 없다. -> true와 Ture는 다른 것으로 간주된다.
2. 예약어를 사용해서는 안 된다. -> true는 예약어지만 True는 아니기 때문에 사용할 수 있다.
3. 숫자로 시작해서는 안 된다. -> top 10은 되지만 10 top은 안 된다.
4. 특수문자는 '_'와 '$'만을 허용한다.
변수의 타입
값의 종류에 따라 값이 저장될 공간의 크기와 저장 형식을 정의한 것이 '자료형'이다.
자료형 - 기본형 - 논리형 (boolean)
- 문자형 (char)
- 정수형 (byte short int long)
- 실수형 (float double)
- 참조형 (객체의 주소를 저장한다. 기본형 8개를 제외한 전부)
위와 같이 나뉜다.
기본형은 실제 값을 저장받고 참조형은 값이 저장되어 있는 주소를 값으로 저장받는다.
참조형 변수를 선언할 때에는 변수 타입으로 클래스의 이름을 사용하므로 클래스의 이름이
참조 변수 타입이 된다.
기본형
기본형에 대해서 좀 더 깊게 알아보자면,
논리형 ( boolean ) : true와 false 중 하나의 값을 가진다. (1byte)
문자형 ( char ) : 문자를 저장하는 데 사용되며 변수에 하나의 문자만 저장할 수 있다. (2byte)
정수형 ( byte short int long ) : 정수를 저장하는 데 사용되고 주로 int가 사용된다.
byte는 이진 데이터를 다룰 때 사용되며 short는 C언어와의 호환을 위해서 추가되었다.
(순서대로 1byte 2byte 4byte 8byte)
실수형 ( float double ) : 실수를 저장하는 데 사용되며 주로 double이 사용된다. (순서대로 4byte 8byte)
상수와 리터럴
상수 : 변수와 마찬가지로 값을 저장할 수 있는 공간이지만 변수 타입 앞에 final을 붙이고 값을 변경할 수 없다.
또 선언과 동시에 초기화를 시켜야 한다.
일반 변수를 사용하지 않고 상수를 사용하는 이유는
면적을 구하는 공식에서 삼각형과 사각형의 값을 수정하고 싶다면 여러 곳을 수정해야 합니다.
하지만 상수를 사용하면
상수의 값만 변경하면 간편하게 원하는 값을 구할 수 있다.
리터럴 : 12, 123, 3.14, 'A'와 같은 값은 모두 상수인데 바로 위에서
상수란 '값을 한번 저장하면 변경할 수 없는 저장 공간'으로 정의하였기 때문에 구분하기 위해서 상수를
리터럴이라고 부른다.
리터럴의 접미사
정수형과 실수형에 여러 타입이 존재하기 때문에 리터럴에 접미사를 붙여 타입을 구분한다.

float pi의 리터럴 3.14는 float형의 범위에 속한 값임에도 불구하고 F나 f를 빼고 사용하면 오류가 납니다.

타입의 불일치
변수의 타입은 저장될 리터럴의 값의 타입과 일치하는 것이 보통이지만
타입이 달라도 넓은 타입에 좁은 타입의 값을 저장하는 것은 허용됩니다.

3.14는 3.14d에서 접미사 d가 생략된 double타입이기 때문에 float형 타입으로 표현할 수는 있지만(3.14f)
접미사 f 없이 float타입의 변수에 저장할 수 없습니다.
이처럼 넓은 타입에 좁은 타입의 값을 저장하는 것은 가능하지만 좁은 타입에 넓은 타입의 값을 저장할 수 없다.
문자 리터럴과 문자열 리터럴
'A'와 같이 작은따옴표로 문자 하나를 감싼 것을 '문자 리터럴(char형)'이라고 하고
"Java"와 같이 큰 따옴표로 문자열을 감싼 것을 '문자열 리터럴(String형)'이라고 한다.

char타입의 변수는 단 하나의 문자만 저장할 수 있기 때문에
여러 문자(문자열)를 저장하기 위해서는 String타입을 사용해야 합니다.

String타입의 변수를 초기화할 때 "" 안에 문자를 넣지 않아도 됩니다. 이를 빈 문자열이라고 합니다.
하지만 char타입의 변수를 초기화할 때 ''의 안에 반드시 하나의 문자가 있어야 합니다.
그 문자가 공백이어도 초기화가 됩니다.