프로그래밍 기초

int와 Integer의 차이

hs-archive 2022. 11. 5. 17:07

우선 원시 타입과 참조 타입에 대해 알아보면 int와 Integer의 차이를 더 쉽게 이해할 수 있다.

 

 

원시 타입 vs 참조 타입

https://mari-mo.tistory.com/54

 

원시 타입

    - stack에 값이 그대로 저장되는 타입을 말한다.

    - 어딜 참조하고 있는게 아니므로 보다 빠르게 값에 접근할 수 있다.

참조 타입

    - stack에 값이 그대로 저장되어 있지 않다.

    - stack에는 heap의 어딘가를 가리키는 주소가 저장되어 있다. 해당 주소를 따라가면 값을 찾을 수 있다.

    - 실제 값이 stack에 저장되어 있는 것이 아니라 stack을 갔다가 heap을 가서 해당 값을 찾아야하므로 원시 타입에 비해 데이터 접근 속도가 느리다.

 

  • 참조 타입은 보통 원시 타입에 비해 기능을 더 많이 제공해준다. 그래서 메모리를 더 많이 잡아먹는다.
  • 자바에서 원시 타입은 제네릭 타입을 사용할 수 없지만 참조 타입은 가능하다.

 

 

int와 Integer의 차이

int는 원시 타입이고 Integer는 int를 감싸서 만든 참조 타입이다.

따라서 int는 그냥 stack에 그 값이 저장되어 있지만 Integer는 stack에 heap을 가리키는 주소 값이 존재한다.

위에서 설명한 것처럼 int를 사용하는 것이 계산 속도와 메모리 사용 측면에서 이점이 있다.

 

단, java에서 int는 null을 넣을 수 없지만 Integer는 null을 처리할 수 있다. 그리고 Integer는 int를 감싸서 만든 것이므로 int를 갖고 할 수 있는 여러 메서드들을 제공해준다.

 

참고: ""과 new String()의 차이

 

 

 

 

 


https://mari-mo.tistory.com/54

 

원시 자료형과 참조 자료형(Primitive type & Reference type)

원시 자료형(primitive data type) 객체가 아니면서 method를 가지지 않는 6가지의 타입: number, string, bigint, boolean, null, undefined; number: 숫자 2 string: 문자열 "hi" bigint: 이의 제약 없이 정수를 다룰 수 있게

mari-mo.tistory.com

'프로그래밍 기초' 카테고리의 다른 글

CI/CD  (2) 2023.05.14
클린 아키텍처 번역  (0) 2023.03.28
커플링(coupling), 디커플링(decoupling) - 번역  (0) 2022.10.22
의존성 주입(dependency injection) - 번역  (0) 2022.10.22
dist 폴더  (0) 2022.10.13