기본타입
값의 종류 | 기본타입 | 메모리 사용크기 | 저장되는 값의 범위 | |
정수 | byte | 1byte | 8bit | -27~(27-1), -128 ~ 127 |
char | 2byte | 16bit | 0~216-1유니코드 u\0000 ~ u\FFFF, 0~65535 | |
shori | 2byte | 16bit | -215~(2-15-1), -32,768 ~32,767 | |
int | 4byte | 32bit | -231~(231-1)-2,147,483,648 ~ 2,147,483,647 | |
long | 8byte | 64bit | -263 ~(263-1) | |
실수 | float | 4byte | 32bit | (+/-)1.4E-45 ~ (+/-)3.4028235E38 |
double | 8byte | 64bit | (+/-)4.9E-324 ~ (+/-)1.7976931348623157E308 | |
논리 | boolean | 1byte | 8bit | true, false |
타입 변환
데이터 타입을 다른 데이터 타입으로 변환하는 것을 말한다.
1. 자동 형 변환
작은 크기 타입은 큰 크기 타입에 대입이 자동으로 변환되어 대입될 수 있다.
작은 그릇의 물을 큰 그릇의 물에 옮긴다고 보면 된다.
큰 크기 타입 = 작은 크기 타입
크기별 타입
byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)
※ float(4)의 크기를 long(8)보다 더 크게 보는 이유는 long(정수)보다 float(실수)가 표현 범위가 더 크기 때문이다.
☆ 자동변환 예외
char(2)의 범위는 0 ~ 65535이므로 음수가 저장될 수 없어 byte타입은 char로 변환될 수 없다.
2. 강제 형 변환
큰 크기의 타입은 작은 크기의 타입으로 자동변환될 수 없다.
대신에 큰 크기의 타입을 조각 내어 한 조각만 작은 크기 타입에 담을 수는 있다.
강제적으로 큰 데이터 타입을 작은 데이터 타입으로 쪼개어서 저장하는 것을 강제 타입변환 Casting이라고 한다.
강제 타입 변환은 캐스팅 연산자를 () 사용하는데 괄호 안에 들어가는 타입은 쪼개는 단위이다.
작은 크기 타입 = (작은 크기타입) 큰 크기 타입
int 타입은 char 타입으로 자동 변환되지 않기 때문에 강제 타입 변환을 해야 한다.
실수타입(float, double)은 정수타입(byte, short, int, long) 으로 자동변환되지 않기 때문에 강제 타입 변환해야한다. 이 경우 소수점 이하 부분은 버려지고, 정수 부분만 저장된다.
※ 사용자로부터 입력받은 값을 변환할 때 값의 손실이 발생하면 안 된다.
'Java' 카테고리의 다른 글
Java - 변수(Variable) (0) | 2023.04.09 |
---|---|
Java - 설치 확인, 실행문, 주석 (0) | 2023.04.08 |