-
[Java] Primitive type과 Reference typeJava 2022. 1. 3. 16:58
자바에서 타입을 크게 두 가지로 분류할 수 있다.
하나는 원시 타입(primitive type), 또 다른 하나는 참조 타입(reference type)이다.
원시 타입: boolean(1 byte), char (2 bytes), byte(1 byte), short(2 bytes), int(4 bytes), long(8 bytes), float(4 bytes), double(8 bytes)
참조 타입: Integer, Long, Double 등 new 연산자로 생성할 수 있는 객체
원시 타입 vs 참조 타입
원시 타입과 참조 타입의 기능적 차이는 크게 2가지가 있다.
1. null을 담을 수 있는가 ❔
원시 타입은 null을 담을 수 없지만 참조 타입은 null을 담을 수 있다.
int i = null; // 불가능 Integer integer = null; // 가능
2. 제네릭 타입에서 사용할 수 있는가 ❔
원시 타입은 제네릭 타입에서 사용할 수 없지만 참조 타입은 제네릭 타입에서 사용할 수 있다.
List<int> i; // 불가능 List<Integer> integer; // 가능
그렇다면 원시 타입의 장점은 무엇인가 ❔❔
원시 타입은 참조 타입과 비교해 성능의 이점이 있다.
1. 접근 속도
원시 타입은 메모리 상 스택 영역에 값이 존재하는 반면, 참조 타입은 스택 영역에 참조값만 있고, 실제 값은 힙 영역에 존재한다. 그래서 값이 필요할 때마다 언박싱 과정을 거쳐야 하기 때문에 원시 타입과 비교해 접근 속도가 느리다.
출처:&amp;amp;nbsp;https://www.baeldung.com/java-primitives-vs-objects 2. 메모리
원시 타입에 비해 참조 타입이 차지하는 메모리 양이 훨씬 많다.
원시 타입 참조 타입 boolean - 1 bit Boolean - 128 bits bypte - 8 bits Byte - 128 bits short, char - 16 bits Short, Character - 128 bits int, float - 32 bits Integer, Float - 128 bits long, double - 64 bits Long, Double - 192 bits
Reference
https://siyoon210.tistory.com/139
Java에서 원시타입 vs 참조타입 어떤 걸 사용해야 할까?
[개요] 자바에서 숫자를 다루기 위한 타입들은 크게 두 가지로 분류할 수 있습니다. 하나는 '원시 타입(primitive type)'이고, 또 다른 하나는 참조 타입(reference type)'입니다. 원시 타입은 (int, double, boo
siyoon210.tistory.com
https://www.baeldung.com/java-primitives-vs-objects
'Java' 카테고리의 다른 글
[Java] Serialization과 Deserialization (0) 2022.01.03 [Java] String, StringBuffer, StringBuilder (0) 2022.01.03 [Java] Identity와 Equality (0) 2022.01.03 [Java] Shallow copy와 Deep copy (0) 2022.01.02 [Java] Error와 Exception (1) 2022.01.02