둘 다 문자열을 정수로 변환하는 JAVA 메서드로 주요 차이점은 반환되는 값의 형태이다.
문자열 s를 int 타입의 기본 타입으로 변환
문자열에 해당하는 기본 타입의 정수(int).
주어진 문자열이 유효한 정수로 변환될 수 없는 경우 NumberFormatException 예외가 발생
문자열을 단순히 int 타입으로 변환할 때 사용된다. 이 경우, 메모리 효율이 좋고, 불필요한 객체 생성이 없음.
문자열 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 사이의 값에 대해 캐싱이 적용됨 |
| 사용 예시 | 기본적인 숫자 연산에 적합 | 객체로서 정수 값을 다뤄야 할 때 적합 |
| 성능 | 더 빠름 | 상대적으로 느림 |
기본 타입(예: int, char, boolean 등)을 대응되는 래퍼 클래스(예: Integer, Character, Boolean 등)의 객체로 자동 변환하는 과정.
int x = 5;
Integer y = x; // int -> Integer (박싱)
래퍼 클래스 객체를 기본 타입으로 변환하는 과정.
Integer a = 10;
int b = a; // Integer -> int (언박싱)