Wrapper(포장) 클래스
포장 객체
- 기본 타입의 값을 내부에 두고 포장
- 포장하고 있는 기본 타입 값은 외부에서 변경할 수 없음
- byte, char, short, int, long, float, double, boolean 기본 타입 값을 갖는 객체

Boxing과 Unboxing
- 박싱: 기본 타입의 값을 포장 객체로 만드는 과정
- 언박싱: 포장 객체에서 기본 타입의 값을 얻어내는 과정

- 생성자 이용하지 않고 각 포장 클래스마다 가진 정적
valueOf() 메소드 활용
Integer obj = Integer.valueOf(1000);
Integer obj = Integer.valueOf("1000");
- '기본 타입 이름+Value()' 메소드를 호출하여 언박싱

자동 박싱과 언박싱
- 포장 클래스 타입에 기본값이 대입될 경우 자동 박싱 발생
Integer obj = 100;
- 포장 타입에 포장 객체가 대입되는 경우 및 연산에서 자동 언박싱 발생
Integer obj = new Integer(200);
int value1 = obj;
int value2 = obj + 100;
문자열을 기본 타입 값으로 변환
- 포장 클래스로 문자열을 기본 타입 값으로 변환
- 'parse+기본 타입 이름' 정적 메소드

포장 값 비교
- 포장 객체는 내부 값 비교하기 위해
== 및 != 연산자 사용하지 않는 것이 좋음
아래 연산 결과 false
Integer obj1 = 300;
Integer obj2 = 300;
System.out.println(obj1 == obj2);
- 박싱된 값이 아래 표에 나와 있는 범위의 값이 아닌 경우 언박싱한 값 얻어 비교해야 함

Math 클래스
- 수학 계산에 사용

- Math.random() 메소드는 0.0 이상 1.0 미만 범위에 속하는 하나의 double 타입 리턴
0.0 <= Math.random() < 1.0
- 활용: 1부터 10까지의 임의의 정수 난수 얻기

정리
- Object 클래스: 자바의 최상위 부모 클래스, Object 클래스의 메소드는 모든 자바 객체에서 사용 가능
- System 클래스: 운영체제의 일부 기능 이용할 수 있음. 정적 필드와 정적 메소드로 구성
- Class 클래스: 클래스와 인터페이스의 메타 데이터가 Class 클래스로 관리됨.
- String 클래스: String 클래스의 다양한 생성자 이용하여 직접 String 객체를 생성 가능
- Wrapper 클래스: 기본 타입의 값 갖는 객체를 포장 객체라 함. 기본 타입의 값을 포장 객체로 만드는 것을 박싱, 반대의 과정을 언박싱이라 함.
- Math 클래스: 수학 계산에 사용할 수 있는 메소드 제공하며, Math 클래스가 제공하는 메소드는 모두 정적 메소드이므로 Math 클래스로 바로 사용 가능