원시(Primitive) 타입과 참조(Reference) 타입

2022. 2. 11. 15:00·Programming/Java


primitive type

- 실제 데이터 값을 저장하는 타입

- 스택에 값 존재

 

reference type

- 인스턴스 번지 값(주소 값)을 저장하는 타입

- 스택에 번지 값 존재

- 힙에 실제 값(인스턴스) 존재

 

reference 타입을 사용하는 이유는?

1. null을 담을 수 있는가?

- primitive type: X

- reference type: O 

2. 제네릭 타입을 사용할 수 있는가?

- primitive type: X

- reference type: O

 

primitve 타입을 사용하는 이유는? 

1. 접근 속도

primitive type: 스택에 메모리 존재

reference type: 참조 값은 스택, 실제 값은 힙에 존재. 실제 값 필요할 때마다 언박싱 과정 필요. 

2. 차지하는 메모리 양

primitive type<< reference type


결론

성능과 메모리 장점이 있는 primitive 타입을 먼저 고려한다. 만약 null을 다뤄야 하거나, 제네릭 타입이 사용되어야 한다면 reference 타입을 사용한다.

 

주의

참조 변수는 비교 연산 시 주의가 필요하다. 참조 변수는 객체 번지 값을 가지고 있기 때문에, value 비교가 의도라면 ==가 아닌 equals()를 사용해야 한다.

 

'Programming > Java' 카테고리의 다른 글

Generic Class (Basic)  (0) 2022.02.22
Collection  (0) 2022.02.11
Default Method in Interface  (0) 2021.11.22
JAVA 25(3) 어노테이션  (0) 2021.09.17
JAVA 22(2) 제네릭 2  (0) 2021.08.14
'Programming/Java' 카테고리의 다른 글
  • Generic Class (Basic)
  • Collection
  • Default Method in Interface
  • JAVA 25(3) 어노테이션
사랑우주인
사랑우주인
  • 사랑우주인
    lovelyAlien
    사랑우주인
  • 전체
    오늘
    어제
  • 글쓰기
    관리
    • 분류 전체보기 (207)
      • Programming (4)
        • Spring (28)
        • Java (46)
        • JPA (2)
        • 디자인 패턴 (5)
        • 개발&아키텍처 (0)
      • Network (12)
      • OS (19)
      • Database (1)
      • Kubernetes (0)
      • Kafka (2)
      • Algorithm (49)
        • BaekJoon (1)
        • Programmers (19)
        • Algorithm (5)
        • Socar (2)
        • LeetCode (19)
      • Interview (2)
      • Issues (2)
      • DotJoin (1)
      • Git (4)
      • 독서 (3)
      • 끄적끄적 (1)
      • 외부활동 (26)
        • 항해플러스 (2)
        • JSCODE 네트워크 (19)
        • JSCODE 자바 (5)
      • SQL (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • GitHub
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    디자인 패턴
    @JsonProperty
    추상화 클래스
    Climbing Stairs
    LinkedList
    wildcards
    pacific atlantic water flow
    clone graph
    Oauth2
    fcfs
    algorithm
    minimum number of arrows to burst balloons
    Process
    Reorder List
    RR
    Thread
    runner 기법
    트랜잭션
    rotting oranges
    준영속 엔티티
    socar
    OS
    @JsonNaming
    lower bounded wildcards
    Generic
    제네릭
    JSCode
    AuthenticationSuccessHandler
    BFS
    운영체제
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
사랑우주인
원시(Primitive) 타입과 참조(Reference) 타입

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.