[JAVA 문법 종합반 1일차-형변환]

김동규·2023년 5월 23일
0

형변환

변수의 타입을 바꾸는 방법
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 강제 형변환

  • **작은 타입 > 큰 타입 형변환시 (자동 형변환)**
    • 더 큰 표현범위를 가진 타입으로 변환되는것이라 값의 손실이 없습니다.
    • 값의 손실없이 변환이 가능하기 때문에 컴파일러가 자동으로 형변환을 해줍니다.
  • **큰 타입 > 작은 타입 형변환시 (강제 형변환 = 캐스팅)**
    • 더 작은 표현범위를 가진 타입으로 변환된는것이라 값의 손실이 생깁니다.
    • 값의 손실이 생기기 때문에 자동으로 형변환을 해주지 않고 개발자가 선택하여 형변환을 합니다.
profile
안녕하세요~

0개의 댓글