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

1. 목표

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

 

2. 차이점

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

<java />
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 } }
<java />
1004 1004

 

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

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

 

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

<java />
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 } }

 

2.1. 구현부 살펴보기

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

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

 

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

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

 

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

memostack

@bluemiv_mm

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