개발 일기

Primitve vs Reference 본문

Tech/Interview

Primitve vs Reference

flow123 2022. 2. 8. 15:01

각 변수 타입이 몇 byte인지, primitive type과 reference type의 차이와 활용

 

변수타입을 알아야 하는 이유: 메모리에는 제약이 있기 때문이다. 메모리를 효율적으로 사용하기 위해 가장 적합한 자료형을 찾자.  

똑같은 데이터를 저장하더라도, 변수 타입에 따라서 메모리 사용량이 다르다.

즉 어떤 숫자를 저장하느냐에 따라서 사용하는 메모리의 크기가 달라지는 것이 아니고, 어떤 데이터 타입으로 변수를 선언했느냐에 따라서 사용하는 메모리의 크기가 달라진다. 

 

표현 가능 범위를 넘어서는 수를 부여하면, 오류가 뜬다. 

정수형

데이터 타입 메모리의 크기 표현 가능 범위
byte 1 byte (8bits) -128 ~ 127 (2의 8승 즉 256만큼의 수를 표현할 수 있다)
short 2 byte (16 bits) -32,768 ~ 32,767
int 4 byte (32 bits) -2,147,483,648~2,147,483,647
long 8 byte (64 bits)  -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

실수형

float 4byte ±(1.40129846432481707e-45 ~ 3.40282346638528860e+38)
double 8byte ±(4.94065645841246544e-324d ~ 1.79769313486231570e+308d)

문자

char 2byte 모든 유니코드 문자

자바에서는 문자와 문자열이 다르다. 문자(character)는 글자 하나를 의미하고, 문자열은 글자들의 집합을 의미한다. 그럼 문자열은 메모리를 얼마나 사용할까? 문자열은 문자의 집합이라고 했다. 문자는 char 형이고, char는 2byte의 메모리를 사용한다. 따라서 6글자를 담고 있는 String 타입의 변수는 12바이트의 공간을 차지하게 된다. 

 

참고 

https://cselabnotes.com/kr/2021/10/25/202/

https://opentutorials.org/course/2517/13987

'Tech > Interview' 카테고리의 다른 글

접근자의 종류와 기능  (0) 2022.02.09
Overriding vs Overloading  (0) 2022.02.09
Comments