• Java에서 기본(원시) 자료형을 제외한 자료형은 "참조 자료형”
    • 참조형 타입은 모두 클래스 기반의 객체
      • 클래스와 객체에 대해서는 추후 설명
      • 여기서는 클래스가 다양한 기능들이 사전 구현돼 있는 소스코드 집합 정도로 이해
  • 기본(원시-primitive)자료형과 참조형자료형의 차이
    • 원시(기본) 자료형
      • Java에서 제공하는 기본 데이터 타입
      • int, long, double, float, boolean, char 등
    • 원시 자료형은 스택메모리에 직접 값을 저장
      • 참조형 변수는 객체의 주소(reference)를 저장. 실제 객체는 힙(heap) 메모리에 할당
    • 원시 자료형 변수는 자동으로 기본값으로 초기화
      • 참조형 변수는 null로 초기화
    • 원시 자료형 변수는 new 키워드없이 리터럴(literal)로만 값을 세팅
      • 참조형 변수는 new 키워드를 사용하여 값 세팅
      • String은 리터럴 표현식을 사용할 수 있도록 자바에서 특별 대우 해주는 참조자료형
        • 그외에도 배열, wrapper클래스도 리터럴 세팅 가능
    • 원시 자료형의 비교시에는 값 자체를 비교
      • 참조형 변수는 객체주소를 비교함으로서 동일한 객체인지를 비교
  • Wrapper클래스
    • Wrapper 클래스는 기본 자료형(primitive types)의 참조형변수 즉, 객체로 만들어진 기본자료형을 의미

    • 원시자료형의 Wrapper클래스

      • 클래스에서 정의한 다양한 기능들을 추가적으로 사용하기 위해 원시자료형을 Wrapping한 클래스가 나오게 되었다.

      Untitled

      • 사용예시
        • Integer.toString(), Integer.parseInt()등
    • 앞으로 공부할 ArrayList, HashMap, HashSet 등은 데이터 저장시 원시 자료형 대신 그에 대응하는 Wrapper 클래스들을 사용

    • 박싱, 언박싱

      • 박싱
        • 기본 자료형을 래퍼 클래스로 변환하는 과정
        • int num = 10; Integer wrappedNum = Integer.valueOf(num);
      • 언박싱
        • 래퍼 클래스를 기본 자료형으로 변환하는 과정
        • Integer wrappedNum = Integer.valueOf(20); int num = wrappedNum.intValue();
      • 오토 박싱/언박싱
        • 자바5부터 자동으로 형변환 지원
        • Integer wrappedNum = 20; // Auto-Boxing int num = wrappedNum; // Auto-Unboxing