01.기본형 참조형
자바의 데이터 타입인 기본형과 참조형에 대해 설명하시오.
#.기본형
실제 데이터 값을 저장하는 타입, stack영역에 생성된다.
초기화를 하지 않으면 자료형에 맞는 기본 값이 들어간다.
OS에 따라 자료의 길이가 변하지 않는다.
비객체 타입이다. null을 가질 수 없다.
정수 byte, short, int, long
실수 double, float
문자 char
논리 boolean
#.참조형
기본형을 제외한 것을 참조형이라고 한다.
메모리 상에서 객체가 존재하는 주소를 저장한다. heap영역에 저장한다.
종류에는 문자열, 배열, 열거, 클래스, 인터페이스(String, Array, Enumeration, Class, Interface) 가 있습니다. 또한 문자열을 제외하고는 미리 정의되어 있지 않습니다.
#.둘의 차이점
- Primitive Type은 null을 담을 수 없지만 Reference Type은 가능합니다. Primitive Type은 값이 없으면 디폴트 값을 반환하기 때문입니다.
- Reference Type은 값을 필요로 할 때마다 언박싱 과정을 거쳐야 하기에 Primitive Type에 비해서 접근 속도가 느려지는 특징이 있습니다.
Primitive Type 변수들과는 다르게 크기가 정해져 있지 않으며 프로그램 실행시 메모리에 동적으로 할당됩니다. 참조하는 변수가 없으면 자바의 가비지 컬렉터가 제거합니다.
- 가비지 컬렉터(Garbage Collector)는 메모리의 힙 영역에 할당된 더이상 사용되지 않는 객체를 제거하는 기능입니다. 이렇게 객체를 제거하며 메모리가 관리됩니다.
- Primitive Type을 Reference Type으로 변환시키는 것을 Boxing(박싱)이라 하고, Reference Type을 Primitive Type으로 변환시키는 것을 Unboxing(언박싱)이라고 합니다.
#.자바의 데이터 메모리 영역
https://geminihoroscope.tistory.com/102
[기술면접] 신입이 준비하는 JAVA 기술 면접
0. Java를 만든사람(나올지 모르겠지만 혹시 모르니까) 제임스 고슬링 RE. 취업하면서 여러 회사의 기술면접을 봤지만 절대 물어보지 않고 면접관도 모름...ㅎㅎ 1. Java의 대표적인 특징 OOP(객체
geminihoroscope.tistory.com