Programming/Java

원시 타입(Primitive type)과 래퍼 클래스(Wrapper class)

d-e-v-j 2024. 7. 31. 22:09
반응형

Java에서는 데이터 타입을 두 가지로 분류한다

원시 타입(primitive type)과 래퍼 클래스(wrapper class).

원시 타입과 래퍼 클래스의 종류와 차이점에 대해 알아보자.


원시 타입 (Primitive Types):

  • 메모리 효율이 높고, 기본적으로 0, 0.0, false 등의 값을 가집니다.
  • 메서드를 지원하지 않습니다.
  • byte: 8비트 정수 타입. (-128 ~ 127)
  • short: 16비트 정수 타입. (-32,768 ~ 32,767)
  • int: 32비트 정수 타입. (-2^31 ~ 2^31-1)
  • long: 64비트 정수 타입. (-2^63 ~ 2^63-1)
  • float: 32비트 부동 소수점 타입.
  • double: 64비트 부동 소수점 타입.
  • char: 16비트 유니코드 문자 타입. ('\u0000' ~ '\uffff')
  • boolean: 논리 타입. (true 또는 false)

 


래퍼 클래스 (Wrapper Classes):

  • 객체로 다룰 수 있으며, 다양한 유틸리티 메서드를 제공합니다.
  • 기본값은 null이며, 컬렉션 클래스에서 사용 가능합니다.
  • Byte: byte 타입의 래퍼 클래스.
  • Short: short 타입의 래퍼 클래스.
  • Integer: int 타입의 래퍼 클래스.
  • Long: long 타입의 래퍼 클래스.
  • Float: float 타입의 래퍼 클래스.
  • Double: double 타입의 래퍼 클래스.
  • Character: char 타입의 래퍼 클래스.
  • Boolean: boolean 타입의 래퍼 클래스.

원시 타입(Primitive type)과 래퍼 클래스(Wrapper class) 차이점

1. 메모리 사용

  • 원시 타입: 메모리 효율이 높다. 예를 들어, int는 4바이트의 메모리를 사용
  • 래퍼 클래스: 객체이기 때문에 추가적인 메모리 오버헤드가 발생. 예를 들어, Integer는 16바이트 이상의 메모리를 사용할 수 있다.

2. 기본 값

  • 원시 타입: 기본적으로 초기화되지 않으면 0, 0.0, false, '\u0000' 등의 값
  • 래퍼 클래스: 기본적으로 초기화되지 않으면 null 값

3. 메서드 지원

  • 원시 타입: 메서드를 지원하지 않음
  • 래퍼 클래스: 메서드를 지원. 예를 들어, Integer 클래스에는 parseInt, valueOf, intValue 등의 메서드가 있다.

4. 사용 용도

  • 원시 타입: 주로 간단한 계산이나 성능이 중요한 경우 사용.
  • 래퍼 클래스: 객체가 필요하거나, 컬렉션 클래스에서 원시 타입을 사용할 수 없는 경우 사용. 예를 들어, ArrayList<Integer>는 가능하지만 ArrayList<int>는 불가능

5. Null 허용 여부

  • 원시 타입: null 값을 가질 수 없다.
  • 래퍼 클래스: null 값을 가질 수 있다. 따라서, 객체의 초기화 여부를 확인할 때 유용

 

생각보다 int와 integer의 차이를 모르고 사용하는 사람도 많다.

자주사용하는 것들인데 제대로 알고 써보자

728x90
반응형
LIST