wisePocket

[JAVA] 기초문법 - 타입 형변환(Type Conversion) - 10 본문

Java & Algorithm/Java

[JAVA] 기초문법 - 타입 형변환(Type Conversion) - 10

ohnyong 2023. 7. 25. 17:04

형 변환(Type Conversion)이란 데이터의 타입을 변경하는 것이다. 형변환(type conversion)은 캐스팅(casting) 이라고도 하며 명시적(explicit) 또는 묵시적(implicit)으로 자료의 형식을 변환하는 것을 말한다.

 

인터넷에 Conversion, Casting, Promotion, Explicit, Implicit 등 혼용되고 있어서 Oracle의 공식 문서를 살펴 봤다. 일단 형변환의 종류만해도 20개 가까이 된다.

 

전반적으로 빠르게 살펴 봤는데 

  • 정수, 실수와 관련된 암시적 변환은 Widening Primitive Conversion
  • 기본형 타입을 할당하는 대입 변환은 Assignment Conversion
  • 참조형 타입인 배열과 관련된 내용은 Casting
  • Boxing 하는 것은 Boxing Conversion
  • bit, hex 등 숫자의 진법과 관련된 것은 Promotion이라는 표현이 자주 등장한다.

따라서 기본적으로 Conversion의 카테고리내에 있기 때문에 대명사처럼 사용해도 크게 문제는 없을 것 같지만 Casting, Promotion은 조금 구분해야 할 것 같다.

 

오히려 깊게 들어가면 시간이 너무 오래 걸리고 당장 중요한 것은 명시적(Explicit Conversion)인지, 암시적(Implicit Conversion)인지 구분하고 변환 하는 순간 어떤 것인지 공식 문서로 확인해보는 것이 더 중요하다. 

 

우선 링크를 걸어두고 필요할 때 하나씩 정확하게 살펴봐야겠다.

https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.5

 

Chapter 5. Conversions and Promotions

class Point { int x, y; } interface Colorable { void setColor(int color); } class ColoredPoint extends Point implements Colorable { int color; public void setColor(int color) { this.color = color; } } final class EndPoint extends Point {} class Test { publ

docs.oracle.com

 

* 강제적 형변환(명시적 형변환 - Explicit Conversion / Casting)

(타입) 을 지정하여 강제로 변환함

 

* 암시적 형변환(Implicit Conversion)

타입별 크기byte1>short2>int4>long8>flaot4>double8
(타입)을 지정안해도 크기에 따라 보다 큰 크기로 형변환이 자동으로 되는 것

 

inPA

 

☕ JAVA 타입 형변환 원리 & 방법 - 완벽 정리

타입 변환 (Type Conversion) 하나의 타입을 다른 타입으로 바꾸는 것을 타입 변환 혹은 형변환 이라고 한다. 예를 들어 byte 타입을 int 타입으로 변환하거나 반대로 int 타입을 byte 타입으로 변환하는

inpa.tistory.com