본문 바로가기
Java

Java - 데이터 타입

by project100 2023. 4. 9.

기본타입

값의 종류 기본타입 메모리 사용크기 저장되는 값의 범위
정수 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