[JAVA] Integer.parseInt() vs Integer.valueOf()

김다은·2024년 9월 2일

JAVA

목록 보기
9/14
post-thumbnail

둘 다 문자열을 정수로 변환하는 JAVA 메서드로 주요 차이점은 반환되는 값의 형태이다.

Integer.parseInt()

기능

문자열 s를 int 타입의 기본 타입으로 변환

반환 값

문자열에 해당하는 기본 타입의 정수(int).

예외 처리

주어진 문자열이 유효한 정수로 변환될 수 없는 경우 NumberFormatException 예외가 발생

용도

문자열을 단순히 int 타입으로 변환할 때 사용된다. 이 경우, 메모리 효율이 좋고, 불필요한 객체 생성이 없음.

Integer.valueOf()

기능

문자열 s를 Integer 객체로 변환

반환 값

Integer 객체 (래퍼 클래스). 내부적으로는 int 타입의 값을 감싸는 객체이다.
즉, int형의 boxing한 Integer 타입으로 반환

예외 처리

주어진 문자열이 유효한 정수로 변환될 수 없는 경우 NumberFormatException 예외가 발생

용도

정수 값을 객체로 처리해야 할 때 사용된다. 예를 들어, null을 다루어야 하거나, Integer 객체로서 컬렉션에 저장해야 할 때 사용됨.

비교 및 차이점

특징Integer.parseInt(String s)Integer.valueOf(String s)
반환 타입int (기본 타입)Integer (객체 타입)
기본 동작문자열을 기본 타입 int로 변환문자열을 Integer 객체로 변환
메모리 사용적용되지 않음다소 비효율적 (객체 생성 필요)
캐싱 (Caching)int (기본 타입)-128에서 127 사이의 값에 대해 캐싱이 적용됨
사용 예시기본적인 숫자 연산에 적합객체로서 정수 값을 다뤄야 할 때 적합
성능더 빠름상대적으로 느림

박싱(boxing)과 언박싱(unboxing)

박싱(Boxing)

기본 타입(예: int, char, boolean 등)을 대응되는 래퍼 클래스(예: Integer, Character, Boolean 등)의 객체로 자동 변환하는 과정.

int x = 5;
Integer y = x;  // int -> Integer (박싱)

언박싱(Unboxing)

래퍼 클래스 객체를 기본 타입으로 변환하는 과정.

Integer a = 10;
int b = a;  // Integer -> int (언박싱)
profile
꾸준함으로 성취하는 개발자

0개의 댓글