java는 데이터를 관리하기 위하여 기본 데이터 타입을 지원하지만, 클래스를 통해서 만들어진 객체를 통한 데이터 관리도 가능하다.
그러나 어떤 상황에서는 기본 데이터 타입의 변수를 객체 형태로 사용해야 하는 경우가 있는데, 이때 기본형 타입을 객체로 포장할 필요가 있다.
특정 기본형 타입을 나타내는 용도로 사용된다.
초창기 java언어는 기본 자료형의 연산보다도 Warpper클래스를 사용한 연산이 더 많이 이루어 졌으나, java언어가 발전함에 따라서 기본 자료형과 Wrapper 클래스간의 연산에 차이가 없어졌다.
최근의 java언어는 Wrapper 클래스와 기본 자료형을 구분하지 않고 사용하기 때문에 객체로서의 특별한 의미가 없어졌다고 볼 수 있다.
int num = 1;와 Integer wrapper = new Integer(num);는 같은 의미이다.-기본 자료형 과 Wrapper Class 클래스간에 서로 암묵적 형변환이 가능하다.
기본 자료형에서 Wrapper Class로의 형변환
int num = 100; Integer wrapper = num;Wrapper Class에서 기본 자료형으로의 형변환
Integer wrapper = new Integer(100); int num = wrapper;
int min = Integer.MIN_VALUE;기본 자료형과 문자열 데이터간의 연산에서는 기본 자료형 데이터가 문자열로 변환된 후 문자열간에 연산된다.
int a = 1;
String b = "1";
System.out.println(a+b);
// "11" 출력
모든 프로그램 플랫폼에서 사용자의 입력값은 String 으로 처리된다.
만약, 인터넷 뱅킹에서 2개의 계좌로 송금할 금액을 각각 입력하였을 때, 총 금액을 계산한다면 다음과 같이 처리될 것이다.
String money1 = "5000"; String money2 = "3000"; String total = money + money2; // 50003000
바로 위와 같은 문제를 해결하기 위해 데이터타입을 변환해줄 필요가 있다. Wrapper 클래스에서는 기본 자료형의 모양을 띄고 있는 문자열 데이터를 실제 기본 자료형으로 변환시키는 기능이 포함되어 있는데 자바에서의 Wrapper Class의 가장 큰 의미가 바로 이 부분이다.
String으로 파싱해온 문자열 데이터를 기본 자료형으로 변화해주어야 (정상적인 의미의) 데이터연산이 가능하다.
String money1 = "5000"; String money2 = "3000"; int m1 = Integer.parselnt(money1); int m2 = Integer.parselnt(money2); System.out.println(m1+m2); // 8000