래퍼(wrapper)클래스
객체가 아닌 8개의 기본형을 객체로 다뤄야할 때 사용하는 클래스
public final class Integer extends Number implements Comparable {
private int value;
}
래퍼클래스의 생성자는
char -> Character
int -> Integer
이 2개를 제외하고는 대문자로만 바꾸면 된다
Number클래스
숫자와 관련된 래퍼 클래스들은 모두 Number클래스의 자손이다
기본형 외에도 BigInteger과 BigDecimal이 포함되어 있다
문자열을 숫자로 변환하기
문자열을 숫자로 변환할 때는 아래의 방법 중 하나를 사용한다
int I = new Integer(“100”).intValue(); //floatValue(), longValue(),
int i2 = Integer.parseInt(“100”); //주로 이 방법을 사용
Integer i3 = Integer.valueOf(“100”);
n진법의 문자열을 숫자로 변환
int i4 = Integer.parseInt("100", 2); //100(2) -> 4
오토박싱&언박싱
JDK 1.5이전에는 기본형과 참조형 간의 연산이 불가능하여
래퍼 클래스로 기본형을 객체로 만들어 연산해야 했다
이후 버전에는 컴파일러가 자동으로 변환하는 코드를 넣어준다
컴파일 전 | 컴파일 후 |
int i = 5; Integer iObj = new Integer(7); int sum = i + iObj; |
int i = 5; Integer iObj = new Integer(7); int sum = i + iObj.intValue(); |
오토박싱 : 기본형 값을 래퍼 클래스의 객체로 자동변환하는 것
언박싱 : 래퍼 클래스의 객체를 기본형으로 변환
int(기본형) –오토박싱-> Integer Integer –언박싱-> int(기본형)