java에서 변수가 차지하는 메모리의 크기를 알 수 있나요?

조회수 1823회

원시타입 변수와 레퍼타입 변수의 메모리 사용을 비교하고 싶은데요. 가령:

short a = 1;
Short b = 1;

일 때 a와 b가 메모리 사용에 얼마나 차이가 있는지 알고 싶습니다. 인스턴스 변수, 클래스(스태틱) 변수, 메서드 내 로컬 변수 모두요.

방법이 있나요?

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    둘 다 4바이트를 사용합니다.

    jvm내 runtime area내 메소드의 지역변수들이 저장되는 local variable section 이라는 곳이 있습니다.

    4바이트 단위로 저장되고 long 이나 double 같은 대형 타입의 경우에는 8 바이트를 사용합니다.(자바의 데이터 타입을 보면 알겠지만 프리미티브 타입들은 8바이트보다 큰 것은 없습니다.)

    boolean 도 4바이트를 사용합니다. 그리고 jvm에서는 boolean 형이라는 것은 없고 그냥 int 0 혹은 1 입니다.

    아 레퍼런스형도 당연히 4바이트 사용합니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)