형변환(Casting)
정의
- 값(Data)의 자료형을 바꾸는 것이다. (boolean은 제외한다.)
즉, 데이터의 타입을 바꾸는 것
<컴퓨터의 값 처리 원칙>
- 대입 연산자를 기준으로 왼쪽과 오른쪽은 같은 자료형이어야 한다. 즉, 같은 자료형에 해당하는 값만 대입이 가능하고 다른 자료형의 값을 대입하고자 할 때는 형변환이 필수다.
- 같은 종류의 자료형만 대입 가능
- 같은 종류의 자료형만 계산(연산)가능 ex. 10 + 13.5 (X)
- 계산(연산)의 결과도 같은 종류의 자료형이 나와야 한다.
→ 이러한 원칙이 지켜지지 않을 경우에 형 변환을 사용한다.
형변환의 예시
(int) 123456789 ▶ (double) 123456789.0
(char) 'A' ▶ (int) 65
(float) 3.14f ▶ (int) 3
형변환을 하고자 하는 값과 그 값의 자료형의 표현 범위에 따라서 형변환의 방법이 나뉜다.
형변환의 종류
01. 자동 형변환(묵시적 형변환)
byte(1byte) → short / char(2byte) → int(4byte) → long(8byte) → float(4byte) → double(8byte)
- 자동으로 형변환이 이루어지기 때문에 개발자가 형변환을 시켜줄 필요가 없다.
값의 범위(데이터의 표현 범위)가 작은 자료형을 값의 범위가 큰 자료형으로 변환한다. (자료형의 사이즈를 의미하는 것이 아니다.)
컴파일러가 연산을 할 때 자료형을 보고 판단해서 자동으로 자료형을 바꿔준다.
단, byte와 short의 자료형 값의 계산 결과는 무조건 int로 처리한다.
'값의 손실이 없이 그대로 보존된다' 는 뜻은 값의 변화가 없다는 말이다.
02. 강제 형변환(명시적 형변환)
값의 범위가 큰 자료형을 값의 범위가 작은 자료형으로 변환한다.
이 때, 형변환 연산자(cast 연산자)를 사용해야 한다.
값(데이터)의 손실이 발생할 수 있다. == 데이터의 변형과 손실을 감수하고 강제로 변환한다.
(바꿀 자료형) 값;
-> 해당하는 값이 바꾸고 싶은 자료형으로 바뀐다.
double temp;
int name = **(int)**temp;
*여기서 사용 된 int는 "형변환 연산자" 가 된다.
'Programming > Java' 카테고리의 다른 글
DAY 98. JAVA - 람다식(lambda) (0) | 2021.11.25 |
---|---|
DAY 33. [JAVA] 변수 (0) | 2021.09.19 |
DAY 15. [JAVA] 변수와 Static / Heap / Stack 메모리 구조 (0) | 2021.08.31 |
DAY 1. [JAVA] 상속(Inheritance) / 포함(Composite) (0) | 2021.08.18 |
[JAVA] 패키지(package) / 제어자 (0) | 2021.08.08 |