데이터 타입이란 해당 데이터가 메모리에 어떻게 저장되고, 어떻게 처리되어야하는지를 알려준다.
자바에서 타임은 크게 Primitive type, Reference type 두가지로 나뉜다.
Primitive Type(기본형 타입)
- 자바에서의 기본 타입은 모두 8종류가 제공되며, 크게 정수형, 실수형, 문자형, 논리형으로 나뉜다.
- 기본값이 존재하기때문에 Null이 존재하지 않는다.
- 실제 연산에 사용하는 값들을 말한다ㅣ
- 컴파일 시점에 담을 수 있는 크기를 벗어나면 컴파일 에러가 발생한다.
- 실제 값을 저장하는 공간으로 Stack에 저장된다.
1. 정수형 타입
- 부호를 가지며, 소수가 없는 수를 의미한다.
- byte(1byte), short(2byte) ,int(4byte), long(8byte)
- 주의해야할 점은 데이터 타입을 결정할때는 사용하고자는 하는 데이터의 최대 크기를 고려해야한다. 해당 타입이 표현할수 있는 범위를 벗어난 데이터를 저장하면 오버플로우(overflow)가 발생해 전혀 다른 값이 저장되기 때문이다.
- 오버플로우? : 컴퓨터의 정수 연산의 계산 결과가 허용 범위를 초과할 때 발생하는 오류
2. 실수형 타입
- 소수점을 가지며, 정수보다 더 넓은 표현 범위를 가진다.
- float(4byte), double(8byte)
3. 문자형 타입
- 작은 정수나 문자 하나를 표현할 수 있는 타입을 의미한다.
- char(2byte)
- 컴퓨터는 2진수밖에 인식하지 못해서 문자도 숫자로 표현해야 인식한다.
- 참고로 자바는 유니코드를 사용해 문자를 표현한다. 이 유니코드는 각 나라의 모든 언어를 표현할 수 있으며 문자하나를 16비트로 표현하므로 , 총 2의 16승 65536개의 문자를 표현할 수 있다.
4. 논리형 타입
- 참(true)과 거짓(false) 중 한가지 값만을 가질 수 있는 타입을 의미한다.
- boolean(1byte)
- 기본값은 false이며 , 기본 타입 중 가장 작은 크기인 1바이트의 크기를 가진다.
Reference Type(참조형 타입)
- 기본형 타입을 제외한 타입들이 모두 참조형타입이다.
- stack에는 변수에 주소값을 저장하고, 실제 데이터는 heap에 저장한다.
- 클래스를 정의하고 new 키워드를 통해 객체를 생성할수 있다.
- 참조형 변수끼리는 연산이 되지 않고 실제로는 기본형끼리의 연산만 가능함.
- 빈 객체를 의미하는 Null이 존재한다. 크게 나눠보자면,
- 문자열(String)
- 배열(array[])
- 열거(enum)
- 클래스(class)
- 인터페이스 (interface) etc..
즉, primitive type은 스택영역에서 직접 값을 갖고 있지만, reference type은 스택영역에서 힙 영역 객체의 주소를 가진다.
'Java' 카테고리의 다른 글
[JAVA] 다차원 배열 (0) | 2023.12.06 |
---|---|
[Java] String 배열 (0) | 2023.12.06 |
[Java] 배열(Array) (1) | 2023.12.06 |
객체지향 설계 5원칙 - SOLID (0) | 2023.02.23 |
JVM과 자바의 실행 과정 (0) | 2023.02.16 |