-
Java - Primitive Type & Reference TypeLanguage/Java 2022. 2. 19. 12:05
Primitive Type(기본형 타입)
Primitive Type의 종류
- Java에서는 총 8가지의 primitive type을 미리 정의하고 제공한다.
- Java에서 primitive type을 사용하기 위해서는 선언이 필요하다.
- OS에 따라 자료형의 길이가 변하지 않는다.
- 비 객체 타입이기 때문에, null 값을 가질 수 없다. 만약 primitive type에 null을 넣고 싶다면 wrapper class를 활용해야 한다.
- 메모리의 Stack 영역에 저장된다.
boolean
- 논리형인 boolean의 기본값은 false이며, 참과 거짓을 저장하는 타입이다.
- boolean은 실제로 1bit면 충분하지만, 데이터를 다루는 최소 단위가 1byte이므로 메모리 크기가 1byte이다.
char
- char는 문자를 다루기 위한 타입이며, Java에서 유일하게 제공되는 unsigned 형태이다.
byte
- byte는 주로 이진 데이터를 다루는 데 사용되는 타입이다.
short
- short는 C언어와의 호환을 위해 사용되는 타입으로 잘 사용되지는 않는 타입이다.
int
- int는 Java에서 정수 연산을 하기 위해 기본 타입이다.
- 따라서, byte 혹은 short의 변수가 연산을 하면 연산의 결과는 int가 된다.
long
long l = 2147483648; // 컴파일 에러 발생 long l = 2147483648L; // 정상 컴파일
- 수치가 큰 데이터를 다루는 프로그램(은행 및 우주와 관련된 프로그램)에서 주로 사용된다.
- long 타입의 변수를 초기화할 때는 정수 값 뒤에 알파벳 L을 붙여서 long 타입의 정수 데이터임을 명시해줘야 한다.
- 만약 int의 저장 범위를 넘는 정수 값에서 L을 붙이지 않는다면 컴파일 에러가 발생한다.
float, double
float f = 1234.567; // 컴파일 에러가 발생합니다. float f = 1234.567F; // 정상 컴파일
- 실수를 가수와 지수 형식으로 저장하는 부동소수점의 방식을 사용하는 타입이다.
- 가수를 표현하는 데 있어 double 형이 float 형보다 표현 가능 범위가 더 크기 때문에, double 형이 보다 정밀하게 표현할 수 있다.
- Java에서 실수의 기본 타입은 double 형이므로 float 형에는 알파벳 F를 붙여서 float 형임을 명시해야 한다.
Reference Type (참조형 타입)
Reference Type의 종류
- Java에서 primitive type을 제외한 타입들이 모두 reference type이다.
- Class Type, Interface Type, Array Type, Enum Type 등이 존재한다.
- reference type은 java에서 최상위 클래스인 java.lang.Object 클래스를 상속받는다.
- 빈 객체를 의미하는 null 값을 가질 수 있지만, null 값으로 초기화된 객체를 컴파일했을 때 에러가 나므로, 변수값을 넣어줘야 한다.
- new로 인하여 생성된 객체는 메모리의 Heap 영역에 저장이 되고, Heap 영역에 생성된 객체의 접근을 위하여 Stack 영역에 존재하는 Frame에 일종 포인터인 참조값을 가지고 객체를 제어한다.
728x90'Language > Java' 카테고리의 다른 글
Java - 문자열 클래스 (0) 2022.02.19 Java - Boxing & Unboxing (0) 2022.02.19 Java - 인터페이스 (0) 2021.12.08 Java - 객체지향언어 (0) 2021.12.07 Java - 가비지 컬렉션(Garbage Collection) (0) 2021.11.15