728x90
반응형
인프런 강의를 듣는 중 long이 아닌, Long을 쓰시는 이유를 듣고 추가로 찾아서 기록함.
1. long과 Long의 타입 차이
long : 원시 타입(Primitive Type)
- 실제 메모리에 데이터 값을 직접 저장하는 타입으로 일반적인 자료형을 떠올리면 됨.
Long : 참조 타입(Reference Type)
- 메모리 주소 값을 통해 객체를 참조하는 타입(객체 주소를 저장).
- 원시 타입 제외한 문자열, 배열, enum, 클래스, 인터페이스가 해당.
2. NULL 값 지정 가능 여부
long(원시 타입) : 불가
▶ 넣으려면 Boxed Primitive Type인 Wrapper Class를 사용해야 함(역시 참조 타입).
Long(참조 타입) : 가능
3. 성능의 효율성
long(원시 타입) : 직접 값을 할당하므로 성능이 좋고, 속도도 빠르다.
값의 위치가 다르기 때문이다.
직접 할당하는 원시 타입은 <Stack>영역에 존재하고,
참조 타입은 <Stack>에는 주소 정보가, 실제 데이터는 <Heap>영역에 있다.
당연히, 원시 타입이 빠르다. 약 3배 정도 실행 속도 차이가 나는 것을 확인했다고 함.
여러 면에서 원시 타입인 long을 쓰는 것이 좋아 보이지만,
DB에 Null이 들어갈 가능성을 고려하여 참조 타입 Long을 쓰는 선택지를 새로 알게 되었다.
'[JAVA]' 카테고리의 다른 글
| 자료형 정리 (2) | 2023.10.31 |
|---|---|
| try-catch-finally 말고 try-with-resources 사용법 (0) | 2023.06.10 |
| 객체 / 객체지향 프로그래밍의 특징 (0) | 2021.09.13 |
| Anonymous Class - 익명 클래스, 무명 클래스 (0) | 2021.09.13 |
| 화면으로부터 입력 받기 - Scanner, string 객체, equals() (0) | 2021.08.31 |