JAVA

JAVA 타입 변환

MoonjuLee 2022. 6. 11. 15:19

JAVA에 타입 변환 유형

  • 자동 타입 변환 : 작은 범위에 타입이 큰 범위의 타입에 담기면 말 그대로 자동으로 타입이 변환되는 일을 의미한다.
int num1 = 10;
double num2 = num1;
이 경우 num2는 10.0 으로 자동 변환됨

 

  • 강제 타입 변환 :  큰 범위에 타입을 작은 범위의 타입에 담으면 변환되지 않으므로, 강제적으로 타입을 변환시켜주는 것 
double num1 = 10.123;
int num2 = (int) num1;
(int) 가 강제 타입 변환을 위한 Casting(강제 타입 변환) 연산자이다.
이 결과 num2는 10이 출력된다.

 

 

  • 정수 연산에서의 자동 타입 변환
산술 연산식에서 int타입 변수 보다 작은 byte, char, short타입 변수로 연산을 한다면 
int 타입으로 자동 변환되어 연산을 수행한다. int보다 큰 long 타입 변수를 사용한다면 
long 타입 변수에 저장하여야 한다. 

ex) byte num1 = 10;
    byte num2 = 20;
    byte result = num1 + num2; (X)
    int result = num1 + num2;(O)

 

 

  • 실수 연산에서의 자동 타입 변환 
위에 정수 연산에서의 자동 타입 변환과 비슷하게 실수 연산에서는 같은 타입의 변수를 사용하면
해당 타입으로 연산되지만 하나라도 double 타입이라면 double로 자동 타입 변환이 된다. 

ex) float num1 = 1.5f;
    double num2 = 4.0;
    float result = num1 + num2; (X)
    double result = num1 + num2; (O)

 

 

  • '+' 연산에서의 문자열 자동 타입 변환 
숫자와 문자열을 더하면 숫자인 문자열이 된다. 밑에는 옆에 말에 대한 연산 과정을 하나씩 보여준다.
String str = 1 + 2 + "3"; -> 3 + "3" -> "33"

특정부분을 먼저 연산하고 싶다면 () 기호를 이용하면 된다. 
String str1 = 1 + (2 + "3"); -> 1 + "23" -> "123"

 

 

  • 문자열을 기본 타입으로  강제 변환, 기본 타입을 문자열로 강제 변환
문자열 -> 기본타입 

String str = "123.456";
double num1 = Double.parseDouble(str);
예를 든 double 말고도 다른 기본 타입(byte, short, char, int, long, boolean)도 가능 하다. 

기본타입 -> 문자열 

int num1 = 45;
String str = String.valueOf(num1);
위와 마찬가지로 다른 기본 타입도 가능하다.

 

 

★ 생각해볼 것 

int x = 1;
int y = 2;
double result = x / y; 
result의 값은?

 

JAVA 에 타입변환을 포스팅한 이유는 연산 과정에서 변수가 무슨 값으로 저장되어 있고, 무슨 값으로 출력되는지 확실히 알기 위해서 이다. 제가 느끼는 부분은 타입 변환에 관련된 알고리즘 문제를 풀고 넘어가시길 추천드립니다!