[JAVA] 원시타입 vs 참조타입 and Wrapper Class

김아름·2022년 9월 20일
0

JAVA

목록 보기
2/2

원시타입 ( Primitive type )

  • 실제 데이터 값을 저장
    ex) int, long, short, byte, float, double, char, boolean



참조타입 ( Reference type )

  • 객체(Object)의 주소를 저장
  • 원시타입을 제외한 타입
    ex) 문자열, 배열, 열거형, 상수, 클래스, 인터페이스



원시타입과 참조타입의 차이

1. null 포함 가능 여부

  • 원시타입은 null을 담을 수 없지만, 참조타입은 가능
  • 원시타입은 값이 없으면 디폴트 값을 반환하기 때문
    ex) int는 0, boolean은 false

2. 제네릭 타입 사용가능 여부

  • 원시타입은 제네릭 타입 사용 불가, 참조타입은 가능






Wrapper Class

  • Wrapper Class는 Primitive type을 객체화 한 것

int primitive = 10;
Integer wrapper = 10;

wrapper = null;  // null 값이 들어갈 수 있습니다.
String str = wrapper.toString();  // 메서드를 사용할 수 있습니다.
ArrayList<Integer> integerList = new ArrayList();  // 제네릭에 사용할 수 있습니다.
  • int는 단순히 숫자로만 사용할 수 있지만
    Integer는 객체형태로 생성되어 null을 넣을 수 있고 toString 메소드를 사용할 수 있고 <Integer>의 형태로도 사용할 수 있음

  • 굳이 객체가 필요한 경우가 아니거나 null값을 반환 할 필요가 없다면 원시타입을 쓰는 것이 메모리 측면에서 효율적

  • 객체는 equals() 메소드로 값 비교
    <--> ==연산은 두 객체의 주소값을 비교


1. Boxing

  • 원시타입을 Wrapper Class로 변환
int primitive = 30;
Integer wrapper = new Integer(primitive);

2. UnBoxing

  • Wrapper Class을 원시타입로 변환
Integer wrapper = new Integer(30);
int primitive = wrapper.intValue();



참고

profile
쿄쿄쿄

0개의 댓글