강제 타입 변환(캐스팅:casting)
원래는 작은 타입에서 큰 타입으로만 자동 형변환이 가능한데, 큰 허용 범위 타입에서 작은 허용 범위 타입으로 변환하고싶을 때 사용하는 방법입니다.
작은 허용 범위 타입 = (작은 허용 범위 타입) 큰 허용 범위 타입
int intValue = 10;
byte byteValue = (byte) intValue; // 강제 타입 변환
위와 같은 형식으로 사용합니다.
byte x = 10;
byte y = 20;
byte result = x + y; // (x) -> 연산이 이루어지면서 변수 x, y는 int형으로 변환되기 때문에 byte형 변수에 담을 수가 없다.
int result = x + y; // (o)
피연산자 중 하나가 문자열일 경우에는 나머지 피연산자도 문자열로 자동 변환됩니다.
String str1 = 10 + 2 + "8";
String str2 = "8" + 10 + 2;
System.out.println(str1);
System.out.println(str2);
/* 실행 결과:
128
8102
❗️❗️순서대로 연산하기 때문에, 숫자가 먼저일 경우 숫자에 대한 연산이 먼저 이루어진 다음 문자열로 변환됩니다.
문자열이 먼저 등장한다면, 그 뒤에 숫자들의 연산이 있어도 단일 숫자마다 문자열로 변환이 먼저 이루어지기 때문에 실행 결과가 다르게 됩니다.
✅ exmaple
// String -> int
int value = Integer.parseInt(str);
✅ example
// 기본타입값 -> String
String str = String.valueOf(기본타입값);