-
Java에 원시타입(primitive type)이 존재하는 이유Java 2022. 5. 28. 13:17
한 줄 요약하자면 다음과 같습니다.
원시 타입이 참조 타입에 비해 메모리 및 CPU 처리 측면에서 더 가볍고 효율적이기 때문입니다.
원시 타입과 참조 타입
자바에서는 데이터 타입을 크게 두 가지 원시 타입과 참조 타입이 있습니다.
원시 타입은 정수, 실수, 문자, 논리 등의 실제 데이터 값을 저장하는 타입입니다.
참조 타입은 객체의 주소를 저장하는 타입으로 메모리 번지 값을 통해 객체를 참조하는 타입입니다.
최근에 Java는 왜 Pure OOP가 아닐까?라는 질문에 대답을 하는 과정에서 원시 타입을 지원하고 있기 때문에라고 대답했습니다.
https://junuuu.tistory.com/286?category=968252
자바는 Wrapper Class를 제공하여 박싱과 언박싱을 할 수 있습니다.
그러면 자바는 굳이 왜 원시 타입을 지원하는 걸까요?
원시 타입은 null을 다루지도 못하고, 제네릭에 담기지도 못합니다.
하지만 성능상의 이점이 존재합니다.
원시 타입은 스택 메모리에 값이 존재합니다.
반면에 참조 타입은 스택 메모리에 참조값이 존재하고 실제 값을 힙 메모리에 존재합니다.
따라서 참조 타입을 사용하면 접근 속도가 느려지게 되고 차지하는 메모리 양도 많아지게 됩니다.
출처
https://stackoverflow.com/questions/14477743/why-are-there-primitive-datatype-in-java
'Java' 카테고리의 다른 글
책임 연쇄 패턴이란? (0) 2022.07.19 불변객체란 무엇인가? (0) 2022.05.29 전략 패턴이란? (0) 2022.05.25 Java는 왜 Pure OOP가 아닐까? (0) 2022.05.10 객체지향 5원칙 : SOLID (0) 2022.04.22