본문 바로가기

언어공부/Java

자바 자료형과 형 변환(cast, 암시적 형 변환(자동 형 변환), 명시적 형 변환)

자바의 자료형에 대해서는 이전에 썼던 글과 같이 수치형(정수형, 실수형), 문자형, 논리형이 있다.

 

정수형 자료형

 

유형 크기 최소값 최대값 비고
byte 1 Byte (8 bit) -128 127  
short 2 Byte (16 bit) -32768 32767  
int 4 Byte (32 bit) -2147483648 2147483647  
long 8 Byte (64 bit) -9223372036854775808 9223372036854775807 값 뒤에 L 붙여야함.
(long var=128L)

 

실수형 자료형

 

유형 크기 최소값 최대값 비고
float 4 Byte (32 bit) 약 ±3.4x(10^-38)
(유효숫자 7개)
약 ±3.4x(10^+38)
(유효숫자 7개)
값 뒤에 F 붙여야함.
(float var=0.43F)
double 8 Byte (64 bit) 약 ±3.4x(10^-308)
(유효숫자 15개)
약 ±3.4x(10^+308)
(유효숫자 15개)
 

 

문자형

 

유형 크기 최소값 최대값 비고
char 2 Byte (16 bit) 0 65535 작은 따옴표('') 사용.
단일문자 저장.
char var='A';//정수값 65.

 

*char는 단일문자('A')일 때 사용하며, String은 문자열("HELLO!")일 때 사용한다. char는 기본형(실제 값 저장), String은 참조형(실제 객체를 가리키는 주소 저장)이다. 

 

논리형

 

유형 크기 비고
boolean 1 Byte (8 bit) true(참)와 false(거짓) 값만 가진다.
boolean var=true;

 

자료형의 역할

 

자료형은 저장되는 값의 형태 및 메모리 사이즈를 결정한다. 자료형 마다 할당되는 메모리크기가 다르며, 해당 메모리에 따라서 변수에 저장할 수 있는 값의 허용범위가 달라진다.

ex) byte a=128; // 메모리 크기에 오버되므로 컴파일 에러;

 

형 변환(cast)

 

상황에 따라 자료형의 타입이 변환되기도 하며, 형 변환(cast)이라고 한다. 형 변환은  암시적인 형 변환(자동 형 변환)명시적인 형 변환으로 나눌 수 있다.

 

암시적인 형 변환(자동 형 변환)

 

자바는 필요할 때 마다 자동적으로 형 변환을 한다. 수식에서 서로 다른 자료형이 등장하면 자바 컴파일러는 그 중에서 가장 큰 타입으로 자동적으로 변환한다.

ex) byte y=124;// byte 타입 y변수에 1243 값 저장.

int x=23463;// int 타입 x변수에 23463 값 저장.

x=y;// int x에 byte y 값 대입 >> x가 y보다 자료형이 크기 때문에 가능. 반대인  y=x;는 컴파일 에러이다.

 

명시적인 형 변환

 

명시적인 형 변환은 변환되는 값의 왼쪽에 원하는 타입을 소괄호로 둘러싸서 적어주면 된다.

여기서 확대 변환과 축소변환으로 나눌 수 있다.

 

(확대변환)

더 큰 크기의 자료형에 값을 대입하는 변환으로, 일반적으로 안전한 변환이다.

ex.) int y=40;// int 타입 y변수에 40 값 저장.

double x=35.32;// double 타입 x변수에 35.32 값 저장.

x=(double)y;// int형인 y값을 double로 형 변환하여 x에 대입. x에는 40.00값이 대입된다.

 

(축소변환)

더 작은 크기의 자료형에 값을 대입하는 변환으로, 정밀한 숫자나 큰 숫자를 나타내는 정보를 잃을 가능성이 있다.

ex.)byte y=124;// byte 타입 y변수에 1243 값 저장.

int x=23463;// int 타입 x변수에 23463 값 저장.

y=(byte)x;//int타입 x를 보다 크기가 작은 byte로 형 변환했기 때문에 오버플로우가 발생해 값 손실이 일어난다.