본문 바로가기

IT/Programming Language

[Java] 데이터 타입, 자료형 (Data Type)

반응형

1. 기본형 (primitive type)

  • 반드시 사용하기 전에 선언(Declared)되어야 함
  • OS에 따라 자료형의 길이가 변하지 않음
  • 비객체 타입. 따라서 null 값을 가질 수 없음
Type Bits Range of Values
byte 8bits -2^7 ~ 2^7-1 (-128 ~ 127)
short 16bits -2^15 ~ 2^15-1 (-32768 ~ 32767)
int 32bits -2^31 ~ 2^31-1 (-2147483648 ~ 2147483647)
long 64bits -2^63 ~ 2^63-1 (-9223372036854775808 ~ 9223372036854775807)
float 32bits 0x0.000002P-126f ~ 0x1.fffffeP+127f
double 64bits 0x0.0000000000001P-1022 ~ 0x1.fffffffffffffP+1023
char 16bits \u0000 ~ \uffff (0 ~ 2^15-1) * 자바에서 unsgined로 동작하는 자료형
boolean 1bit true, false

 

2. 참조형 (reference type)

  • java.lang.Object를 상속 받는 경우 참조형이 됨
  • 선언한 자료형이 기본형이 아닌 경우 참조형이라고 보면 됨
  • class type, interface type, array type이 있음

 

1) Class Type

  • 객체를 참조하는 형태

String Class

String Class는 참조형에 속하지만 기본적인 사용은 기본형처럼 사용
불변하는(Immutable) 객체로, 값을 변경해주는 메소드들이 존재하지만 데이터를 바꾼다고 해도 새로운 String 클래스 객체를 만들어내는 것
일반적으로 기본형 비교는 == 연산자를 사용하지만, String 객체 간의 비교는 equals 메소드를 사용해야 함

 


Data type (primitive type) vs. wrapper class

Wrapper Class란?

  • Primitive type을 객체로 다루기 위해 사용하는 class
  • Integer는 int의 wrapper class

 

비교

Data type (primitive type) Wrapper Class
산술 연산 가능 Unboxing하지 않을 시 산술 연산 불가능함
null로 초기화 불가 null값 처리 가능

 

참고

  • Boxing : primitive type → wrapper class 변환 ( int to Integer )
  • Unboxing : wrapper class → primitive type 변환 ( Integer to int )
반응형