작은 타입에서 큰 타입으로 변환 할때는
자동타입 변환이 사용 된다.
ex) byte -> in/short -> int/int -> int
타입 변환 출력 예시
public static void main(String[] args){ byte b = 10; short s = b; int i = b; long l = i; } //정수 타입의 크기 : byte -> short -> int -> long //자동 타입 변환(Promotion) : 작은 타입에서 큰 타입으로 데이터 타입 변환 //말 그대로 작은 타입에서 큰 타입으로 변환 할 때는자동으로 타입변환이 일어 난다.
큰 타입에서 작은 타입으로 변환 할때는 강제
타입 변환이 사용 된다.
ex)long -> int
타입 변환을 하는 이유 : 서로 다른 두 타입을
일치 시키기 위해서
강제 타입 변환 출력 예시
public static void main(String[] args){ long l = 200; int i = (int)l; short s = (shor)i; byte b = (byte)s; } //강제 타입 변환 : 큰 타입에서 작은 타입으로 데이터 타입을 명시해서 변환 //long타입의 변수를 int(작은 타입)으로 변환 할 수 없기 때문에 강제 타입 변환(괄호)을 사용하여 타입 변환
값 변질은 소수점에서 정수로 타입 변환을 하면
소수점 뒷자리는 전부 값 손실로 날아가고
맨앞에 정수만 남는다.
값 변질 출력 예시
double c = 1.1234; int d = (int)c; //강제 타입 변환 System.out.println(d); //출력 : 1 //double 타입은 소수점 타입인데 int(정수)타입으로 변환을 하려고 하니 //소수점 뒷자리는 다 날아아가고 1만 남았다.