*자동 형변환 (묵시적 형변환)
(=Promotion, implicit casting, implicit conversion, Upcasting)
- JVM이 자동적으로 데이터형의 크기가 작은 것을 큰 것으로 바꿔주는 동작.
- int의 하위 데이터형에대해서 자동 형변환
(byte, short, char)
- 리터럴을 줄여주는 자동 형변환
ex) byte b = 10; // int크기의 literal크기를 줄여서 byte로 만든 후 b에 할당.
short s = 10; // 마찬가지
- 연산에 대한 자동 형변환
: 작은 데이터형과 큰 데이터형이 연상되면 작은 데이터형이 큰 데이터형으로 변경된 후 연산된다.
ex) byte + byte = int //int의 하위 데이터형이 연산되어 결과를 int로 형변환
byte + short = int //byte가 short로 변경되어 연산 후 결과를 int로 형변환
short + short = int
short + int = int //short가 int로 변경되어 연산 후 결과를 int로
char + char = int //int의 하위 데이터형이 연산되어 결과를 int로 형변환
float + double = double
int + long = long
* 강제 형변환 (명시적 형변환)
(=explicit casting, explicit convension, Demotion, Downcasting)
- 개발자가 데이터형의 크기가 큰 것을 작은 것으로 변환하려고 하는 것.
- 기본, 참조 데이터형 모두 사용 가능 (참조형에서 주로 사용됨)
- 값 손실이 발생할 수 있다.
ex) double d = 12.27;
int i = (int)d; //8byte -> 4byte로 형변환.
//0.27 값손실, 12->i에 할당.
- 기본형 데이터형이 참조형 데이터형으로 (또는 그 반대) 변환되지 않는다.
- 변수, 상수 앞에 사용될 수 있다.
(변환할 데이터 형)변수명;
(변환할 데이터 형)상수;
'Java' 카테고리의 다른 글
상속 (inheritance) (0) | 2022.01.19 |
---|---|
java.lang.Math 주요 method (0) | 2022.01.19 |
자바 문서 주석 (0) | 2021.12.28 |
JAVA 동작과정 (0) | 2021.12.24 |
JDK 버전별 특징 (0) | 2021.12.24 |