값을 저장할 수 있는 공간
변수의 타입은 크게 기본형과 참조형으로 나뉜다.
총 8개의 기본형 타입이 있다.
기본형을 제외한 나머지 타입
int score = 100; // score는 변수, 100은 리터럴, 타입은 int
final int MAX = 200; // MAX는 상수, 200은 리터럴, 타입은 int
String str = "ABC" // str은 변수, "ABC"는 (객체)리터럴, 타입은 String
변수의 각 타입들은 각자의 기본값을 가진다.
값의 타입을 다른 타입으로 변환시키는 것을 말한다.
byte > short > int,char > long > float > double
int i1 = 65;
char ch1 = (char)i1; // 'A' (유니코드 65는 A이다.)
char ch2 = 'A';
int i2 = (int)ch2; // 65
int i3 = 10;
long l1 = i3; // 10L (왼쪽(int)에서 오른쪽(long)으로 생략 가능)
float f2 = l1; // 10.0f (외쪽(long)에서 오른쪽(float)으로 생략 가능)
float f3 = 20.0f;
long l2 = (long)f3; // 20L (오른쪽(float)에서 왼쪽(long)으로 생략 불가능)
int i4 = (int)l2; // 20 (오른쪽(long)에서 왼쪽(int)으로 생략 불가능)
기본형 타입은 String(문자열) 타입과 "+"연산을 하면 String(문자열)이 된다.
char ch1 = 'A';
String str1 = "BB";
System.out.println(ch1 + str1); // "ABB"
문자(char)에는 빈문자 리터럴로 초기화 할수 없다.
char ch2 = ''; // Error! 빈문자 리터럴 불가능
char ch3 = ' '; // OK! 공백은 가능하다.