🔨 근본없는 지식 수리하기 프로젝트
Primitive Data Type
Java는 Primitive (기본형), Reference (참조형) 두 가지의 데이터 타입이 존재하며
그 중 기본 데이터 타입은 8가지 종류가 존재하고 종류는 다음과 같다
Integer Type
- byte
- Size : 1byte ( 8bits )
- Range : -128 ~ 127 ( 2^7 )
- Default Value : 0
- Wrapper Class : Byte
- short
- Size : 2bytes ( 16bits )
- Range : -32768 ~ 32767 ( 2^15 )
- Default Value : 0
- Wrapper Class : Short
- int
- Size : 4bytes ( 32bits )
- Range : -2147483648 ~ 2147483647 ( 2^31 )
- Default Value : 0
- Wrapper Class : Integer
- long
- Size : 8bytes ( 64bits )
- Range : -9223372036854775808 ~ 9223372036854775807 ( 2^63 )
- Default Value : 0L
- Wrapper Class : Long
- 사용할 때 'l' 또는 'L'을 끝에 붙여주어야 정상적으로 작동한다
Float Type
- float
- Size : 4bytes ( 32bits )
- Range : (3.4 X 10-38) ~ (3.4 X 1038) 의 근사값
- Default Value : 0.0F
- Wrapper Class : Float
- 사용할 때 'f' 또는 'F'를 끝에 붙여주어야 정상적으로 작동한다
- double
- Size : 8bytes ( 64bits )
- Range : (1.7 X 10-308) ~ (1.7 X 10308) 의 근사값
- Default Value : 0.0
- Wrapper Class : Double
Boolean Type
- boolean
- Size : 1bit
- Range : True, False
- Default Value : False
- Wrapper Class : Boolean
Character Type
- char
- Size : 2bytes ( 16bits )
- Range : \u0000 ~ \uffff ( 0 ~ 2^15-1 )
- Default Value : '\u0000'
- Wrapper Class : Char
- 유일한 Unsigned Type
Primitive Data Type들의 특징
- 자바의 기본형 데이터 타입은 객체가 아니다 따라서 NULL 값을 가질 수 없다
- 기본형 데이터 타입은 메모리의 Stack 영역에 저장된다
- 정수형 타입 ( short, int, long ) 은 최대/최소 범위를 고려하여 사용해야 한다
- 부동소수점 타입 ( float, double ) 은 IEEE 754 표준을 따르며 오차가 존재할 수 있다
Reference Data Type
자바에서는 기본형 데이터 타입을 제외한 모든 타입이 참조형 데이터 타입이다
참조형 데이터 타입은 메모리의 주소를 참조해오는 방식을 사용하기 때문에 참조형으로 불린다
Reference Data Type들의 특징
- 자바에서 참조형 데이터 타입은 java.lang.Object를 상속받는 객체들이다
- 참조형 데이터 타입은 메모리의 Heap 영역에 저장되며 이 주소를 참조해온다
- NULL 값을 가질 수 있다!
- 산술 연산자를 사용할 수 없다
- 기본형 타입의 Wrapper Class를 사용하면 기본형 타입을 참조형처럼 사용 가능하다
String Class
String Class는 참조형 타입이지만 기본형 타입처럼 사용하며
불변하는 객체이다. String Class에는 값을 변경해주는 여러 메소드들이 존재하지만
사실 해당 메소드는 데이터를 바꾼다 해도 새로운 String 객체가 생성된다