자바의 기본형과 참조형의 차이
기본형(Primitive Type)은 리터럴을 할당할 수 있는 형을 의미합니다.
참조형(Reference Type)은 기본형을 제외한 모든 형을 의미하며, 실제 저장된 값이 아닌 값이 저장된 메모리 공간의 주소값을 할당하는 형입니다.
자료형(Data Type)
: 변수를 담을 공간을 의미합니다.
기본형(Primitive Type)
: 리터럴을 할당할 수 있는 형을 의미합니다.
/*
리터럴
: 문자 그대로의 의미를 지닌 값으로, 예를 들면, 1, 2, 3은 정수이기에 정수를 의미합니다. 그리고 0.1, 0.2, 0.3은 소수, 'a', 'b', 'c'는 문자, "hello"는 문자열이기에 문자열을 의미합니다. 이러한 값을 리터럴이라고 합니다.
*/
>기본형 종류
: 각각의 Type마다 할당할 수 있는 종류의 리터럴 값, 그리고 메모리 공간을 차지하는 바이트가 있습니다.
Type | 값 | 바이트 |
---|---|---|
boolean | 참과 거짓, true & false | 1 바이트 |
char | 문자 | 2 바이트 |
byte | 정수 | 1 바이트 |
int | 2 바이트 | |
long | 4 바이트 | |
float | 실수 | 4 바이트 |
double | 8 바이트 |
참조형(Reference Type)
: 기본형을 제외한 모든 형을 의미하며, 실제 저장된 값이 아닌 값이 저장된 메모리 공간의 주소값을 할당하는 형입니다.
: 자바에서 정의되어 있는 클래스, 인터페이스 혹은 사용자가 정의한 클래스 등 자바의 모든 객체가 참조형이 될 수 있습니다. (아래 예시 참고)
//자바에서 정의된 클래스를 참조형으로 사용한 경우
Stack<Integer> stc = new Stack<>(); //참조형: Stack<Integer>
//자바에서 정의된 인터페이스를 참조형으로 사용한 경우
Queue<Integer> que = new LinkedList<>(); //참조형: Queue<Integer>
//사용자가 임의로 정희한 Type 클래스를 참조형으로 사용한 경우
Type var = new Type(); //참조형: Type
/*
주소와 주소값
: 자바를 실행할 때, 운영체제로부터 메모리 공간을 할당 받고, 변수, 클래스 등과 같은 자바의 데이터들은 제공받은 메모리 공간에 각각 저장됩니다. 그리고 이 메모리 공간에 저장될 때, 데이터의 종류에 따라 필요한 크기의 방을 만들어 저장하는데, 이를 주소라고 합니다. 그리고 주소값은 그 주소를 찾아가기 위한 명패라고 생각하면 좋습니다.
*/
'Memo > 확장 메모' 카테고리의 다른 글
객체지향 프로그래밍(OOP) (0) | 2022.10.05 |
---|