Java에 원시타입(primitive type)이 존재하는 이유
한 줄 요약하자면 다음과 같습니다.
원시 타입이 참조 타입에 비해 메모리 및 CPU 처리 측면에서 더 가볍고 효율적이기 때문입니다.
원시 타입과 참조 타입
자바에서는 데이터 타입을 크게 두 가지 원시 타입과 참조 타입이 있습니다.
원시 타입은 정수, 실수, 문자, 논리 등의 실제 데이터 값을 저장하는 타입입니다.
참조 타입은 객체의 주소를 저장하는 타입으로 메모리 번지 값을 통해 객체를 참조하는 타입입니다.
최근에 Java는 왜 Pure OOP가 아닐까?라는 질문에 대답을 하는 과정에서 원시 타입을 지원하고 있기 때문에라고 대답했습니다.
https://junuuu.tistory.com/286?category=968252
Java는 왜 Pure OOP가 아닐까?
Pure OOP란? 말 그대로 순수하게 완전히 OOP를 지향하고 관련 기능을 지원하는 언어를 말합니다. 프로그래밍 언어가 Pure OOP를 지원하기 위해서는 7가지 특성이 충족되어야 합니다. Encapsulation/Data Hidi
junuuu.tistory.com
자바는 Wrapper Class를 제공하여 박싱과 언박싱을 할 수 있습니다.
그러면 자바는 굳이 왜 원시 타입을 지원하는 걸까요?
원시 타입은 null을 다루지도 못하고, 제네릭에 담기지도 못합니다.
하지만 성능상의 이점이 존재합니다.
원시 타입은 스택 메모리에 값이 존재합니다.
반면에 참조 타입은 스택 메모리에 참조값이 존재하고 실제 값을 힙 메모리에 존재합니다.
따라서 참조 타입을 사용하면 접근 속도가 느려지게 되고 차지하는 메모리 양도 많아지게 됩니다.
출처
https://stackoverflow.com/questions/14477743/why-are-there-primitive-datatype-in-java
why are there Primitive datatype in Java?
Possible Duplicate: When we have wrappers classes, why primitives are supported? If there are Wrapper classes which make Java pure object-oriented language, then why are there Primitive dataty...
stackoverflow.com
원시타입이 있는 이유
자바에서는 데이터 타입에 크게 두 가지 원시 타입(Primitive Type)과 참조타입(Reference Type)이 있다. 원시 타입은 쉽게 말해, 정수, 실수, 문자, 논리 리터럴등의 실제 데이터 값을 저장하는 타입이
gona.tistory.com