일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- flask
- Algorithm
- PYTHON
- beautifulsoup
- github
- java
- CSS
- fetch
- openapi
- json
- backend
- body
- NAS
- mongodb
- synology
- pymongo
- portfolio
- get
- flaskframework
- atlas
- javascript
- POST
- frontend
- requests
- mysql
- Crawling
- OOP
- CRUD
- venv
- Project
- Today
- Total
wisePocket
[JAVA] 기초문법 - 타입 형변환(Type Conversion) - 10 본문
형 변환(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
(타입)을 지정안해도 크기에 따라 보다 큰 크기로 형변환이 자동으로 되는 것
☕ JAVA 타입 형변환 원리 & 방법 - 완벽 정리
타입 변환 (Type Conversion) 하나의 타입을 다른 타입으로 바꾸는 것을 타입 변환 혹은 형변환 이라고 한다. 예를 들어 byte 타입을 int 타입으로 변환하거나 반대로 int 타입을 byte 타입으로 변환하는
inpa.tistory.com
'Java & Algorithm > Java' 카테고리의 다른 글
[JAVA] 기초문법 - 제어문(Control Flow Statements) - 조건문(If) - 12 (0) | 2023.07.25 |
---|---|
[JAVA] 기초문법 - 연산자(Operator) - 11 (0) | 2023.07.25 |
[JAVA] 기초문법 - bit, byte, 2진수, 10진수 - 09 (0) | 2023.07.25 |
[JAVA] 기초문법 - char와 string의 차이? - 08 (0) | 2023.07.25 |
[JAVA] 기초문법 - ✅️JVM? = 공통 실행 환경(Compile-time, Run-time) - 07 (0) | 2023.07.24 |