Java - 면접질문(기본형과 참조형, wrapper class)

면접 대비를 해보자

Posted by Yan on September 28, 2021

Primitive Type 기본형 타입

  • 변수에 값 자체를 저장한다. stack영역에 생성된다.
  • 사용하기 전에 반드시 선언되어야 한다.
  • 초기화를 하지 않으면 자료형에 맞는 기본 값이 들어간다.
  • OS에 따라 자료의 길이가 변하지 않는다.
  • 비객체 타입이다. null을 가질 수 없다.
  • 정수 byte, short, int, long
  • 실수 double, float
  • 문자 char
  • 논리 boolean

Reference Type 참조형 타입

  • 기본형을 제외한 것을 참조형이라고 한다.
  • 메모리 상에서 객체가 존재하는 주소를 저장한다. heap영역에 저장한다.
  • 클래스형, 인터페이스형, 배열형이 있다.

Wrapper Class란 무엇이고 Primitive Type과의 차이는 무엇인가요?

Wrapper Class

  • 기본형 타입 -> 객체 타입의 자료형으로 변환이 필요할 때 주로 사용

용도

  • 객체로 저장해야할 때
  • 매개변수로 객체가 들어가야 하는 경우(제네릭, Collection의 타입 등) -> 제네릭이나 컬렉션에서 사용할 경우 기본형을 쓸 수 없기 때문에 wrapping한 형태로 사용해야 한다.
  • 객체 간의 비교가 필요한 경우

특징

  • 산술 연산을 위한 클래스가 아니기 때문에 불변 Immutable하다. -> 값에 대한 변경 불가. 새로운 값 할당이나 참조만 가능하다.

박싱 Boxing / 언박싱 UnBoxing

  • Boxing : 기본자료형을 Wrapper Class로 만드는 것
  • UnBoxing: 반대로 Wrapper Class -> 기본 자료형 (ex. intValue())

코드 예시

  • 문자를 int로 바꿀 때 : int num = Integer.parseInt("500");
  • 문자를 Integer로 바꿀 때 : int num = Integer.valueOf("500");
reference

[Java] Wrapper Class