728x90
Java에서 기본 타입과 참조 타입의 차이
기본 타입(Primitive Type)이란?
== 원시 타입
우리가 실제로 데이터 값을 저장할 때에 사용하는 값이다.
- 정수형
- int, long, short, byte ...
- 실수형
- float, double
- 문자형
- char
- 논리형
- boolean
참조 타입(Reference Type)이란?
이름에서 알 수 있듯, 객체의 번지를 참조하는 타입이다.
즉 객체의 주소를 저장하고, 이를 참조하여 사용하는 타입이라 할 수 있다.
String, Long, Integer ...
배열, Enum, 클래스, 인터페이스 등을 사용해서 선언한 변수는 메모리 값을 가지게 되는데, 이런 애들을 참조 타입이라 한다.
둘 간의 간단한 차이
- 저장 장소의 차이
기본 타입은 스택 영역에, 참조 타입은Heap영역에 저장된다. - 속도와 메모리 사용 측면 차이
기본 타입은 스택 영역에서 그냥 들고오면 되는데, 참조 타입은 힙 메모리에서 가져와서 언박싱해야 한다..따라서 통상적으로 기본 타입이 접근 속도와 메모리 사용 측면에서 훨씬 효율적이다.
다만, 어어어엄청 큰 숫자를 가져오는 경우는 참조타입이 더 효율적일수도 있긴하다. - Null 허용 여부
기본 타입은 null이 허용되지 않고, 참조 타입은 null을 담을 수 있다. - 제너릭 타입에서의 사용
기본 타입은 제너릭 타입에서 사용이 불가능하지만, 참조 타입은 사용 가능하다.
참고로 우리는 웹개발을 할 때에 DTO나 Request, Response 등을 사용하게 될 텐데, 원시 타입은 null을 받을 수 없고 참조 타입은 null을 받을 수 있다.
메모리 효율이 좋다고 덮어높고 기본 타입 쓰다가 피볼수 있으니 주의하자.
'이론 정리 > java' 카테고리의 다른 글
java의 volatile (0) | 2022.12.06 |
---|---|
자바에서 public static void가 메인메소드로 시작하는 이유가 뭘까? (0) | 2022.11.06 |
List와 Set의 차이점, 활용 (0) | 2022.04.06 |
abstract class와 interface에 관하여 (0) | 2022.04.06 |
Java의 Optional 클래스 (0) | 2022.04.03 |