JAVA_캐스팅(Casting)

뚱이아저씨·2023년 1월 16일
0

자바

목록 보기
3/15
post-thumbnail

타입변환(Casting)

자동타입 변환(Implicit Casting)

작은 타입에서 큰 타입으로 변환 할때는
자동타입 변환이 사용 된다.
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) : 작은 타입에서 큰 타입으로 데이터 타입 변환
//말 그대로 작은 타입에서 큰 타입으로 변환 할 때는자동으로 타입변환이 일어 난다.

강제 타입 변환(Explicit Casting)

큰 타입에서 작은 타입으로 변환 할때는 강제
타입 변환이 사용 된다.
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만 남았다.
profile
뚱이아빠의 개발자도전기

0개의 댓글