...
변수의 기본형 & 참조형 타입
변수(variable)란 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미한다. 그리고 자바에서 말하는 데이터 타입(자료형)이란, 변수에 적재할 데이터가 메모리에 어떻게 저장되고 프로그램에서 어떻게 처리되어야 하는지를 명시적으로 알려주는 키워드 이다.
이 데이터 타입(자료형)은 크게 기본형 타입 과 참조형 타입으로 구분 된다.
- 기본형(primitive type) : 계산을 위해 실제 값을 저장한다.
- 참조형(reference type) : 객체의 주소를 저장한다. null 또는 객체의 주소(4byte, 0x0 ~ 0xffffffff)를 갖는다.
기본형 타입 (Primitive Type)
기본형 타입에는 크게 논리형 (boolean), 문자형 (char), 정수형 (byte, short, int, long) 실수형 (float, double) 으로 나뉜다.
기본형 타입에 대한 특징으로는 다음과 같다.
- 모두 소문자로 시작된다
- 비객체 타입이므로 null 값을 가질 수 없다. (기본값이 정해져 있음)
- 변수의 선언과 동시에 메모리 생성
- 모든 값 타입은 메모리의 스택(stack)에 저장됨
- 저장공간에 실제 자료 값을 가진다
타입 | 할당되는 메모리 크기 | 기본값 | 데이터의 표현 범위 | ||
논리형 | boolean | 1 byte | false | true, false | |
정수형 | byte | 1 byte | 0 | -128 ~ 127 | |
short | 2 byte | 0 | -32,768 ~ 32,767 | ||
int(기본) | 4 byte | 0 | -2,147,483,648 ~ 2,147,483,647 | ||
long | 8 byte | 0L | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | ||
실수형 | float | 4 byte | 0.0F | (3.4 X 10-38) ~ (3.4 X 1038) 의 근사값 | |
double(기본) | 8 byte | 0.0 | (1.7 X 10-308) ~ (1.7 X 10308) 의 근사값 | ||
문자형 | char | 2 byte (유니코드) | '\u0000' | 0 ~ 65,535 |
int age = 25;
double price = 100.5;
char score = 'A';
참조형 타입 (Reference Type)
참조형 타입은 간단히 말하자면, 위의 8가지 자료형(primitive type)을 제외한 나머지를 말한다고 보면 된다. 기본적으로 제공하는 클래스, 프로그래머가 스스로 만든 클래스, 배열, 열거 타입 등을 모두 참조형이라고 한다.
참조형 타입 특징으로는 다음과 같다.
- 기본형 과는 달리 실제 값이 저장되지 않고, 자료가 저장된 공간의 주소를 저장한다.
- 즉, 실제 값은 다른 곳에 있으며 값이 있는 주소를 가지고 있어서 나중에 그 주소를 참조해서 값을 가져온다.
- 메모리의 힙(heap)에 실제 값을 저장하고, 그 참조값(주소값)을 갖는 변수는 스택에 저장
- 참조형 변수는 null로 초기화 시킬 수 있다
타입 | 기본값 | 할당되는 메모리 크기 |
배열(Array) | Null | 4 byte (객체의 주소값을 저장하니까) |
열거(Enumeration) | Null | |
클래스(Class) | Null | |
인터페이스(Interface) | Null |
String name = "홍길동";
String[] hobby = new String() {"독서", "게임", "등산"};
Date date = new Date();
# 참고자료
https://m.blog.naver.com/dkfm214/221912369571
https://samdo0812.tistory.com/1
인용한 부분에 있어 만일 누락된 출처가 있다면 반드시 알려주시면 감사하겠습니다
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.