일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Project
- frontend
- pymongo
- javascript
- github
- get
- beautifulsoup
- synology
- backend
- flask
- CRUD
- fetch
- Crawling
- atlas
- Algorithm
- venv
- mysql
- openapi
- body
- flaskframework
- NAS
- CSS
- portfolio
- requests
- OOP
- POST
- PYTHON
- java
- mongodb
- json
Archives
- 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
* 강제적 형변환(명시적 형변환 - Explicit Conversion / Casting)
(타입) 을 지정하여 강제로 변환함
* 암시적 형변환(Implicit Conversion)
타입별 크기byte1>short2>int4>long8>flaot4>double8
(타입)을 지정안해도 크기에 따라 보다 큰 크기로 형변환이 자동으로 되는 것
'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 |