Java 형변환에 대한 이해

박현우·2023년 12월 19일

1. 형변환
1-1. 형변환

  • 변수의 자료형이 변환되는 것을 의미한다.
  • 특정 자료형의 값을 다른 자료형의 변수에 대입할 수 있다.
  • 암묵적 형변환(Upcasting)과 명시적 형변환(Downcasting)의 두 종류가 있다. 데이터의 손실이 있느냐 여부에 따라 다름.

1-2. 암묵적 형변환(Upcasting)

  • 서로 다른 자료형을 연산 혹은 대입하는 경우, Java컴파일러가 자료형을 통일한다. 이 과정에서 발생하는 형변환을 암묵적 형변환이라고 한다.

    	long a = 100; // 정수형
    	float b = a; // 정수형을 실수형에 대입시키게 됨

=> 즉, 암묵적형변환은 어떤 변수가 더 큰 범위의 변수로 대입가능함을 의미함.

1-3. 암묵적 형변환이 허용되는 범위

  • 암묵적 형변환은 데이터의 손실이 발생하지 않는 범위 내에서만 이루어진다.
  • double형 데이터 20.5를 int에 대입하는 경우에는 0.5에 대한 데이터 손실이 불가피하므로, 에러가 발생한다.

1-4. 명시적 형변환

  • 데이터의 손실을 감수하더라도, 강제로 형변환시키는 형태

    	자료형 b = (변환할 자료형)a;
  • 실수형을 정수형으로 변환하는 경우, 소수점 이하 자리는 버려진다.

    	double a = 3.14d;
    	int b = (int)a;   // 결과는 3
  • 아스키 코드에 대한 숫자값을 char형으로 변환하면, 해당 글자로 변환이 된다.

    	int a = 97;
    	char b = (char)a;      // 결과는 'a'

0개의 댓글