본문 바로가기

Java

형변환(Casting)

*자동 형변환 (묵시적 형변환)

(=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