본문 바로가기
컴퓨터/JAVA

[Java] 자바의 형변환/묵시적 형변환 암시적 형변환

by 도도새 도 2023. 6. 19.

자바 형변환

 

형변환이란?

 

형변환은 변수나 값의 자료형을 다른 자료형으로 변경하는 것을 의미한다.

자바에서 형변환은 크게 두 가지 유형으로 나눌 수 있다. 바로 묵시적 형변환과 명시적 형변환이다.

자바에서 지원하는 기본 자료형은 아래와 같다.

자료형 크기 (바이트)
byte 1
short 2
int 4
long 8
float 4
double 8
boolean 1
char 2

 

묵시적 형변환

  • 작은 크기의 데이터 타입에서 큰 크기의 데이터 타입으로 변환될 때 발생
  • 데이터 손실 없이 자동으로 형변환이 이루어짐

ex)

public class Main {
    public static void main(String[] args) {
        float a;
        a = 12;

    System.out.printf("%f", a);
    }
}

dobule은 int를 포함할 수 있다!

 

명시적 형변환(강제 형변환)

  • 데이터 타입의 크기를 신경쓰지 않고 변환한다.
  • 데이터의 손실이 발생할 수 있다. 명시적 변환 연산자()를 사용한다.

 

ex)

public class Main {
    public static void main(String[] args) {
        double s1 = 3.14;
        int num = (int)s1;
        System.out.print(num);//3
    }
}

 

3.14에서 소수점 이하가 버려졌다!

 

래퍼 객체 사용

 

래퍼 객체의 메서드를 사용하여 명시적 형변환을 진행 할 수도 있다.

 

public class Main {
    public static void main(String[] args) {
        String s1 ="12345";
        int sNum = Integer.parseInt(s1);
        System.out.println("Integer " + sNum);

        int sNum2 = 4567;
        String s2 = Integer.toString(sNum2);
        System.out.println("String "+ sNum2);

    }
}

 

출력값:

Integer 12345
String 4567

*Inter.toStirng같이 메소드를 new키워드를 사용해 객체를 생성하지 않고 사용할 수 있는 이유는 아래와 같다.

  • 정적 팩토리 메소드이기 때문이다.
  • 정적 팩토리 메소드를 이용하면 메소드 안에서 객체를 생성해 리턴할 수 있다.

 

parse 메소드 정리

자료형 parse 메서드
byte Byte.parseByte(String)
short Short.parseShort(String)
int Integer.parseInt(String)
long Long.parseLong(String)
float Float.parseFloat(String)
double Double.parseDouble(String)
boolean Boolean.parseBoolean(String)
char 없음(charAt() 사용 가능

 

예를 들어 Integer.parseInt(”123”)은 123이라는 int형을 반환한다.

댓글