본문 바로가기
Java

[Java] int 형 변환할 때 parseInt()와 valueOf()의 차이점 정리

by _yoonie 2026. 4. 17.

여느 때와 같이 기계적으로 코드를 짜다가 문득 의문이 들었다.

Integer.parseInt(String s)
Integer.valueOf(String s)

String에서 int형으로 변환할 때 parseInt와 valueOf의 차이는 뭘까.

비슷해보이지만 반환 타입내부 동작이 다르다.

 


1. 반환 타입

parseInt()는 int 를 반환하고, valueOf()는 객체형인 Integer를 반환한다.

 

2. 내부 동작 차이

valueOf는 객체형을 반환하기 위해, 내부적으로 다음과 같이 동작한다.

즉, parseInt() + 객체 변환 까지 한 번에 처리되는 것이 valueOf()

Integer a = Integer.valueOf("100");

🔻 실제로 동작
int tmp = Integer.parseInt("100");
Integer obj = Integer.valueOf(tmp);

📑 핵심 차이점과 사용 시점 정리

구분 parseInt valueOf
반환 타입 primitive  int 객체 Integer
객체 생성 없음 있거나, 캐싱 사용
성능 더 빠름 약간 느림
null 처리 *NFE 발생 NFE 발생
언제 써야할까? 계산하거나, DB 값을 처리하는 대부분의 상황 컬렉션에 넣는 등 객체가 필요하거나
null을 허용해야 할 때

* NFE : Number Format Exception (숫자로 변환 불가능)

728x90