논리타입과 문자타입 그리고 타입 변환
논리타입
논리 타입의 종류는 boolean형 한 가지뿐입니다.
boolean isRainy = true;
boolean isAdult = false;
문자타입
문자 타입은 2byte 크기의 char형 한 가지뿐입니다.
char letter1 = 'a';
char letter2 = 'ab'; // 에러 : 단 하나의 문자만 할당할 수 있습니다.
char letter3 = "a" // 에러 : 작은따옴표를 사용해야 합니다.
자바는 유니코드로 문자를 저장합니다.
char letter = 65;
System.out.print(letter); // 출력 결과 : A
타입 변환
boolean을 제외한 기본 타입 7개는 서로 타입을 변환할 수 있습니다.
자동 타입 변환
바이트 크기가 작은 타입에서 큰 타입으로 변환할 때 (예 : byte → int)
덜 정밀한 타입에서 더 정밀한 타입으로 변환할 때 (예 : 정수 → 실수)
수동 타입 변환
차지하는 메모리 용량이 더 큰 타입에서 작은 타입으로는 자동으로 타입이 변환되지 않습니다.
수동으로 타입을 변환해 주어야만 합니다. 이를 캐스팅(casting)이라고 합니다.
//int 타입으로 선언된 변수 intValue를 더 작은 단위인 byte로 변환합니다.
int intValue = 128;
byte byteValue = (byte)intValue;
System.out.println(byteValue); // -128
byte형의 표현 범위는 -128 ~ 127이므로, 128을 byte형으로 변환하면 표현 범위를 벗어나게 되어 오버플로우가 발생합니다. 따라서 최종적으로 저장되는 값은 -128이 됩니다.