값을 저장할 때는 '대입 연산자' (=) 를 통해 우변의 값을 좌변의 공간에 복사하여 저장하게 됩니다.이때 좌변 변수의 자료형과 값의 자료형이 일치하여야만 대입이 실행됩니다.
public class Type{
public static void main(String[] args) {
int a = 10; // case 1. 정수값을 정수형 변수에 저장(O)
long b = 20; // case 2. 정수값을 정수형 변수에 저장(O)
byte c = 30; // case 3. 정수값을 정수형 변수에 저장(O)
short d = 40000; // case 4. 정수값을 정수형 변수에 저장 but 변수가 수용할 수 있는 크기 초과(X)
char e = (char)1.2; // case 5. 실수값을 정수형 변수에 저장, 데이터의 일부 손실이 발생(X)
double f = 3; // case 6. 정수값을 실수형 변수에 저장, 크기초과도 없고 손실도 없음(O)
}
}
case 4
case 5
여기서 필요한 개념이 '타입변환' 입니다.'타입 변환' 이란 서로 다른 타입을 하나의 타입으로 일치시켜주는 작업인데 여기에는 '묵시적 타입 변환'과 '명시적 타입 변환'의 방식이 존재합니다.
'묵시적 타입 변환' 은 위에서 나온 'case 6' 의 경우를 지칭합니다.해당 작업 수행 시 별다른 문법을 적용하지 않아도 서로 다른 자료형 변수에 저장됩니다.
'명시적 타입 변환' 은 저장할 변수의 값을 직접 변환해주어야 합니다.(방식은 다음과 같습니다.)
int num = 1
double pnum = 3.14;
int sum = 0;
sum = num + (int)pnum; // '(변경할 자료형)다른 자료형 변수'