memostack
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형

목표

Integer.parseInt()Integer.valueOf()의 차이를 알아본다.

 

차이점

문자열로 된 숫자를 parseIntvalueOf를 사용하여 타입 변환을 해보고 출력해보면 같은 결과가 나온다.

public class Main {
    public static void main(String[] args) {
        String angel = "1004";

        // 출력
        System.out.println(Integer.parseInt(angel)); // 1004
        System.out.println(Integer.valueOf(angel)); // 1004
    }
}
1004
1004

 

타입을 찍어보면, parseInt의 경우는 getClass()라는 메소드가 없어서 오류가 발생한다.

반면, valueOfgetClass().getName()이 있다.

 

왜냐하면 parseInt는 primitive 타입의 int를 반환하고, valueOf는 Integer 객체를 반환하기 때문이다.

public class Main {
    public static void main(String[] args) {
        String angel = "1004";

        // 출력
        // System.out.println(Integer.parseInt(angel)); // 1004
        // System.out.println(Integer.valueOf(angel)); // 1004

        // 타입 확인
        // System.out.println(Integer.parseInt(angel).getClass().getName()); // 오류
        System.out.println(Integer.valueOf(angel).getClass().getName()); // java.lang.Integer
    }
}

 

구현부 살펴보기

parseInt는 반환값으로 int 타입을 반환한다.

public static int parseInt(String s) throws NumberFormatException {
    return parseInt(s,10);
}

 

valueOf는 반환값으로 Integer 객체를 반환한다.

public static Integer valueOf(String s) throws NumberFormatException {
    return Integer.valueOf(parseInt(s, 10));
}

 

반응형
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
profile

memostack

@bluemiv_mm

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!