본문 바로가기

수업 복습하기/Java

Day 02 - 형 변환 (Type Casting) 01

728x90
728x90

저번 포스팅에서 배웠던 내용 복습하기)

 

- 데이터의 크기

# byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)

+) int a = 1;

Byte b = 2;

B= (byte)a;

Short(2) char(2) 2로 같지만 형이 달라서 강제적으로 캐스팅을 걸어줘야 한다

 

실제로의 종류는 총 9개 (바이트의 순서는 작은 것에서부터 큰 것으로)

Byte short int long float double Boolean char String

(빨간색으로 칠해진 것을 중점으로 외우고, 나머지를 추가적으로 암기하기 시작하면 좋다)

추가적으로 float은 4 바이트인데 왜 long보다 크냐!

그 이유는 정수보다는 실수가 소숫점 단위로 표현 할 수 있는 수가 많기 때문입니다.

 

데이터 형 변환 (Type Casting)

형 변환은 크게 2가지의 유형이 있습니다. 

자동 형 변환 / 명시적 형 변환 입니다.

 

자동 형변환의 포인트!

자동 형 변환의 원칙은 표현범위가 좁은 데이터 타입에서

넓은 데이터 타입으로의 변환만 허용된다는 것이다.

 

한마디로 박스안에 딱 맞는 내용물을 예시로 들어보겠습니다.

byte 라는 박스의 내용물은 더 큰 short 박스에 들어갈 수 있지만,

short 박스의 내용물은 더 작은 byte 박스에 들어갈 수 없는 것입니다.

 

자동 형변환의 예시를 들어봅시다!

명시적 형변환은 큰 데이터 유형 -> 작은 데이터 유형 형변환이 이루어집니다.

명시적 형변환이 필요한 이유는 위에 박스로 들었던 예시와 같이, 

큰 박스에 들어있는 내용물을 작은 박스에 넣기 위해서,

그 작은 박스 크기에 맞춰서 내용물을 맞게 잘라내기 위함입니다.

 

실질적인 사유는, 명시적 형변환 해야되는 아이들을, 자동 형변환을 해버리면, 데이터가 손실 될 수 있기 때문입니다.

 

위 사진 제일 아래쪽 부분 //예외인 경우를 확인 해봐야합니다.

같은 2byte의 유형이지만, char는 양수만 표현이 가능하며, short는 음수와 양수 둘다 표현하기 때문에

저 두 경우에도 명시적 형변환을 해주어야 합니다.

 

우선 기본 형변환 완료!

728x90