변수의 타입을 바꾸는 방법
ex) 문자열 → 숫자 , 정수 → 실수 , 실수 → 정수 등...
public class Main {
public static void main(String[] args) {
int intNumber = 10;
double doubleNumber = (double)intNumber;
float floatNumber = (float)intNumber;
System.out.println("intNumber => " + intNumber);
System.out.println("doubleNumber => " + doubleNumber);
System.out.println("doubleNumber) => " + doubleNumber);
정수형 10을 실수형 10으로 변환하여 소수점 10.0으로 나타내게 된다.
byte byteNumber = 10;
int intNumber = byteNumber;
System.out.println(intNumber);
10이 출력되면서 int를 선언하지 않았음에도 byte를 int로 형변환 되어 출력된다.
char charAlphabet = 'A';
intNumber = charAlphabet;
System.out.println(intNumber);
대문자 A는 65로 변환이 되며, 이때 65는 A의 유니코드이다.
intNumber = 100;
long longNumber = intNumber;
System.out.println(longNumber);
int값 100이 long값으로 변환되어 100이 잘 출력된다.
세 예제 모두 공통점은 작은 값의 크기가 큰 값으로 귀속되는 것이다.
1) byte(1) → int(3)
2) char(1) → int(4)
3) int(4) → long(8)
작은 크기의 타입이 큰 타입과 '계산'될 때, 자동으로 큰 크기의 타입으로 형 변환이 이뤄진다.
byte byteNumber = 1;
float floatNumber = 21.1f;
float result = byteNumber + floatNumber;
System.out.println(result);
결과 값 21.1
바이트(1)과 실수형 float(4) 를 더하게 될 경우 크기가 더 큰 float 형태로 형 변환이 이뤄진다.
🔥 자동 형변환 vs 강제 형변환
**작은 타입
> 큰 타입
형변환시 (자동 형변환)****큰 타입
> 작은 타입
형변환시 (강제 형변환 = 캐스팅)**